From 10babaed4c0a6c5ab86062886f2aa87d09b0bdff Mon Sep 17 00:00:00 2001 From: Richard Eisenberg Date: Tue, 23 May 2023 10:45:47 -0400 Subject: [PATCH] Initial implementation of layout annotations This was taken from https://github.com/ccasin/ocaml-jst/pull/1, but rebased and cleaned. There are a handful of failing tests, still, but they're all newly introduced in this patch. --- ocaml/boot/menhir/parser.ml | 38474 ++++++++-------- ocaml/parsing/ast_helper.ml | 26 +- ocaml/parsing/ast_helper.mli | 15 +- ocaml/parsing/ast_iterator.ml | 29 +- ocaml/parsing/ast_iterator.mli | 1 + ocaml/parsing/ast_mapper.ml | 30 +- ocaml/parsing/ast_mapper.mli | 1 + ocaml/parsing/asttypes.mli | 13 +- ocaml/parsing/builtin_attributes.mli | 4 +- ocaml/parsing/depend.ml | 7 +- ocaml/parsing/location.ml | 1 + ocaml/parsing/location.mli | 1 + ocaml/parsing/parser.mly | 237 +- ocaml/parsing/parsetree.mli | 20 +- ocaml/parsing/pprintast.ml | 64 +- ocaml/parsing/pprintast.mli | 5 + ocaml/parsing/printast.ml | 37 +- ocaml/testsuite/tests/letrec-check/unboxed.ml | 2 +- .../locations_test.compilers.reference | 4 +- .../tests/typing-immediate/immediate.ml | 41 +- .../tests/typing-layouts-missing-cmi/c.ml | 6 +- .../tests/typing-layouts/annots-failing.ml | 51 + .../testsuite/tests/typing-layouts/annots.ml | 357 + .../tests/typing-layouts/annots_beta.ml | 301 + .../tests/typing-layouts/basics-failing.ml | 17 + .../testsuite/tests/typing-layouts/basics.ml | 52 +- .../tests/typing-layouts/basics_alpha.ml | 92 +- .../tests/typing-layouts/basics_beta.ml | 114 +- .../tests/typing-layouts/datatypes.ml | 24 +- .../tests/typing-layouts/datatypes_alpha.ml | 24 +- .../tests/typing-layouts/datatypes_beta.ml | 24 +- .../testsuite/tests/typing-layouts/modules.ml | 92 +- .../tests/typing-layouts/modules_alpha.ml | 118 +- .../tests/typing-layouts/modules_beta.ml | 116 +- ocaml/testsuite/tests/typing-layouts/void.ml | 8 +- .../tests/typing-layouts/void_alpha.ml | 4 +- .../tests/typing-layouts/void_beta.ml | 8 +- .../testsuite/tests/typing-local/crossing.ml | 2 +- .../tests/typing-local/crossing_64.ml | 2 +- .../tests/typing-unboxed-types/test.ml | 8 +- ocaml/testsuite/tests/typing-unboxed/test.ml | 2 +- ocaml/tools/eqparsetree.ml | 20 +- ocaml/tools/ocamlprof.ml | 2 +- ocaml/typing/ctype.ml | 189 +- ocaml/typing/ctype.mli | 23 +- ocaml/typing/datarepr.ml | 6 +- ocaml/typing/layouts.ml | 39 +- ocaml/typing/layouts.mli | 10 + ocaml/typing/oprint.ml | 64 +- ocaml/typing/outcometree.mli | 15 +- ocaml/typing/primitive.ml | 2 + ocaml/typing/printtyp.ml | 219 +- ocaml/typing/printtyped.ml | 23 +- ocaml/typing/tast_iterator.ml | 9 +- ocaml/typing/tast_iterator.mli | 1 + ocaml/typing/tast_mapper.ml | 15 +- ocaml/typing/tast_mapper.mli | 1 + ocaml/typing/typeclass.ml | 4 +- ocaml/typing/typecore.ml | 11 +- ocaml/typing/typedecl.ml | 55 +- ocaml/typing/typedecl.mli | 4 +- ocaml/typing/typedtree.ml | 12 +- ocaml/typing/typedtree.mli | 19 +- ocaml/typing/types.ml | 4 + ocaml/typing/types.mli | 2 + ocaml/typing/typetexp.ml | 152 +- ocaml/typing/typetexp.mli | 13 +- ocaml/typing/untypeast.ml | 23 +- printer/printast_with_mappings.ml | 24 +- 69 files changed, 21971 insertions(+), 19424 deletions(-) create mode 100644 ocaml/testsuite/tests/typing-layouts/annots-failing.ml create mode 100644 ocaml/testsuite/tests/typing-layouts/annots.ml create mode 100644 ocaml/testsuite/tests/typing-layouts/annots_beta.ml create mode 100644 ocaml/testsuite/tests/typing-layouts/basics-failing.ml diff --git a/ocaml/boot/menhir/parser.ml b/ocaml/boot/menhir/parser.ml index 3360c15dcf0..d2b4fce3a72 100644 --- a/ocaml/boot/menhir/parser.ml +++ b/ocaml/boot/menhir/parser.ml @@ -16,7 +16,7 @@ module MenhirBasics = struct | VAL | UNDERSCORE | UIDENT of ( -# 891 "parsing/parser.mly" +# 962 "parsing/parser.mly" (string) # 22 "parsing/parser.ml" ) @@ -28,7 +28,7 @@ module MenhirBasics = struct | THEN | STRUCT | STRING of ( -# 878 "parsing/parser.mly" +# 949 "parsing/parser.mly" (string * Location.t * string option) # 34 "parsing/parser.ml" ) @@ -41,12 +41,12 @@ module MenhirBasics = struct | RBRACKET | RBRACE | QUOTED_STRING_ITEM of ( -# 882 "parsing/parser.mly" +# 953 "parsing/parser.mly" (string * Location.t * string * Location.t * string option) # 47 "parsing/parser.ml" ) | QUOTED_STRING_EXPR of ( -# 880 "parsing/parser.mly" +# 951 "parsing/parser.mly" (string * Location.t * string * Location.t * string option) # 52 "parsing/parser.ml" ) @@ -54,7 +54,7 @@ module MenhirBasics = struct | QUESTION | PRIVATE | PREFIXOP of ( -# 864 "parsing/parser.mly" +# 935 "parsing/parser.mly" (string) # 60 "parsing/parser.ml" ) @@ -64,7 +64,7 @@ module MenhirBasics = struct | PERCENT | OR | OPTLABEL of ( -# 857 "parsing/parser.mly" +# 928 "parsing/parser.mly" (string) # 70 "parsing/parser.ml" ) @@ -84,12 +84,12 @@ module MenhirBasics = struct | LPAREN | LOCAL | LIDENT of ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) # 90 "parsing/parser.ml" ) | LETOP of ( -# 819 "parsing/parser.mly" +# 890 "parsing/parser.mly" (string) # 95 "parsing/parser.ml" ) @@ -110,39 +110,39 @@ module MenhirBasics = struct | LBRACE | LAZY | LABEL of ( -# 824 "parsing/parser.mly" +# 895 "parsing/parser.mly" (string) # 116 "parsing/parser.ml" ) | INT of ( -# 823 "parsing/parser.mly" +# 894 "parsing/parser.mly" (string * char option) # 121 "parsing/parser.ml" ) | INITIALIZER | INHERIT | INFIXOP4 of ( -# 817 "parsing/parser.mly" +# 888 "parsing/parser.mly" (string) # 128 "parsing/parser.ml" ) | INFIXOP3 of ( -# 816 "parsing/parser.mly" +# 887 "parsing/parser.mly" (string) # 133 "parsing/parser.ml" ) | INFIXOP2 of ( -# 815 "parsing/parser.mly" +# 886 "parsing/parser.mly" (string) # 138 "parsing/parser.ml" ) | INFIXOP1 of ( -# 814 "parsing/parser.mly" +# 885 "parsing/parser.mly" (string) # 143 "parsing/parser.ml" ) | INFIXOP0 of ( -# 813 "parsing/parser.mly" +# 884 "parsing/parser.mly" (string) # 148 "parsing/parser.ml" ) @@ -150,7 +150,7 @@ module MenhirBasics = struct | IN | IF | HASHOP of ( -# 875 "parsing/parser.mly" +# 946 "parsing/parser.mly" (string) # 156 "parsing/parser.ml" ) @@ -164,7 +164,7 @@ module MenhirBasics = struct | FUN | FOR | FLOAT of ( -# 801 "parsing/parser.mly" +# 872 "parsing/parser.mly" (string * char option) # 170 "parsing/parser.ml" ) @@ -178,7 +178,7 @@ module MenhirBasics = struct | ELSE | DOWNTO | DOTOP of ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) # 184 "parsing/parser.ml" ) @@ -186,14 +186,14 @@ module MenhirBasics = struct | DOT | DONE | DOCSTRING of ( -# 899 "parsing/parser.mly" +# 970 "parsing/parser.mly" (Docstrings.docstring) # 192 "parsing/parser.ml" ) | DO | CONSTRAINT | COMMENT of ( -# 898 "parsing/parser.mly" +# 969 "parsing/parser.mly" (string * Location.t) # 199 "parsing/parser.ml" ) @@ -205,7 +205,7 @@ module MenhirBasics = struct | COLON | CLASS | CHAR of ( -# 780 "parsing/parser.mly" +# 851 "parsing/parser.mly" (char) # 211 "parsing/parser.ml" ) @@ -218,7 +218,7 @@ module MenhirBasics = struct | ASSERT | AS | ANDOP of ( -# 820 "parsing/parser.mly" +# 891 "parsing/parser.mly" (string) # 224 "parsing/parser.ml" ) @@ -555,8 +555,10 @@ let ppat_iarray loc elts = ~loc:(make_loc loc) (Iapat_immutable_array elts) -let expecting loc nonterm = - raise Syntaxerr.(Error(Expecting(make_loc loc, nonterm))) +let expecting_loc (loc : Location.t) (nonterm : string) = + raise Syntaxerr.(Error(Expecting(loc, nonterm))) +let expecting (loc : Lexing.position * Lexing.position) nonterm = + expecting_loc (make_loc loc) nonterm (* Using the function [not_expecting] in a semantic action means that this syntactic form is recognized by the parser but is in fact incorrect. This @@ -707,23 +709,19 @@ let lapply ~loc p1 p2 = else raise (Syntaxerr.Error( Syntaxerr.Applicative_path (make_loc loc))) -(* [loc_map] could be [Location.map]. *) -let loc_map (f : 'a -> 'b) (x : 'a Location.loc) : 'b Location.loc = - { x with txt = f x.txt } - let make_ghost x = if x.loc.loc_ghost then x (* Save an allocation *) else { x with loc = Location.ghostify x.loc } let loc_last (id : Longident.t Location.loc) : string Location.loc = - loc_map Longident.last id + Location.map Longident.last id let loc_lident (id : string Location.loc) : Longident.t Location.loc = - loc_map (fun x -> Lident x) id + Location.map (fun x -> Lident x) id let exp_of_longident lid = - let lid = loc_map (fun id -> Lident (Longident.last id)) lid in + let lid = Location.map (fun id -> Lident (Longident.last id)) lid in Exp.mk ~loc:lid.loc (Pexp_ident lid) let exp_of_label lbl = @@ -734,7 +732,8 @@ let pat_of_label lbl = let mk_newtypes ~loc newtypes exp = let mkexp = mkexp ~loc in - List.fold_right (fun newtype exp -> mkexp (Pexp_newtype (newtype, exp))) + List.fold_right (fun (name, layout) exp -> + mkexp (Pexp_newtype (name, exp, layout))) newtypes exp let wrap_type_annotation ~loc newtypes core_type body = @@ -742,7 +741,8 @@ let wrap_type_annotation ~loc newtypes core_type body = let mk_newtypes = mk_newtypes ~loc in let exp = mkexp(Pexp_constraint(body,core_type)) in let exp = mk_newtypes newtypes exp in - (exp, ghtyp(Ptyp_poly(newtypes, Typ.varify_constructors newtypes core_type))) + let vars, layouts = List.split newtypes in + (exp, ghtyp(Ptyp_poly(vars, Typ.varify_constructors vars core_type, layouts))) let wrap_exp_attrs ~loc body (ext, attrs) = let ghexp = ghexp ~loc in @@ -956,17 +956,88 @@ let mk_directive ~loc name arg = pdir_loc = make_loc loc; } -let check_layout loc id = - begin - match id with - | ("any" | "value" | "void" | "immediate64" | "immediate") -> () - | _ -> expecting loc "layout" - end; - let loc = make_loc loc in - Attr.mk ~loc (mkloc id loc) (PStr []) +(* returns both the translated layout and the string, because + the string is useful for building an Attribute *) +let check_layout loc id : (const_layout * string) with_loc = + let layout_annotation = match id with + | "any" -> Any + | "value" -> Value + | "void" -> Void + | "immediate64" -> Immediate64 + | "immediate" -> Immediate + | _ -> expecting_loc loc "layout" + in + mkloc (layout_annotation, id) loc + +(* See Note [Parsing layout annotations in types] *) +let check_layout_from_type layout_type : layout_annotation = + match layout_type.ptyp_desc with + | Ptyp_constr({ txt = Lident lay_string }, []) -> + Location.map fst (check_layout layout_type.ptyp_loc lay_string) + | _ -> expecting_loc layout_type.ptyp_loc "layout" + +(* See Note [Parsing layout annotations in types], the [Similar story] *) +let check_type_var_from_type tv_type : string with_loc = + match tv_type.ptyp_desc with + | Ptyp_var name -> mkloc name tv_type.ptyp_loc + | _ -> expecting_loc tv_type.ptyp_loc "type variable" + +(* Note [Parsing layout annotations in types] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + We wish to be able to parse [(int list : value)] as a layout annotation + in a type. This is slightly fraught, though: if we see [(int : value ...] + as we're parsing, have we seen the beginning a layout annotation, or have we + seen the beginning of a function type whose argument is labeled [int]? + + In order to build a non-conflicting parser with support for these layout + annotations, we must keep the productions for layout annotations in line + with those for labeled functions. The key action happens in the definition + of nonterminal [non_ident_atomic_type]. We have two problems to solve: + + 1. Before the COLON + + There are two different productions for layout annotations, one beginning with + [LPAREN LIDENT COLON] and the other wish [LPAREN non_ident_atomic_type COLON]. The + former nicely overlaps with the production for labeled functions (in + [strict_function_type]); this overlap allows menhir to avoid conflicts. + We similarly must be careful to avoid conflicts between these two productions, + which is why we define non_ident_atomic_type, which parses types that are + anything other than a single identifier. + + 2. After the COLON + Because we need to keep the labeled-function parser and the layout-annotations + parser lined up until the disambiguator (either an [->] or a [)]), we still + must be careful after the colon. Here, we use [tuple_type], which again + dovetails with the productions in [strict_function_type]. -# 970 "parsing/parser.ml" + Of course, a layout annotation is not quite a [tuple_type], and so + [check_layout_from_type] converts, reporting an error if the conversion + is impossible. + + The current design works well, but it is not as powerful as it could be. + In particular, the "before the colon" part accepts only non_ident_atomic_type, + meaning that e.g. [(int * bool * string : value)] cannot be parsed. If we + want to, we can extend this treatment to tuples or even function types, + but doing so seems under-motivated. + + [Similar story]: There is a similar overlap around [let f : ('a : value) ...]. + Is that the beginning of, say, a function type where ['a] is the argument? + Or is it the beginning of a list of universal variables. To avoid conflicts + in this case (the non-terminal of interest is [possibly_poly], which can't + know which side to take), we have layout-annotation case of [typevar] parse + liberally, lining up with the layout-annotation case of [non_ident_atomic_type], + checking that the variable is really a variable and the layout annotation + is really a layout annotation in [check_type_var_from_type] and + [check_layout_from_type]. +*) + + + + + + +# 1041 "parsing/parser.ml" module Tables = struct @@ -1496,22 +1567,22 @@ module Tables = struct Obj.repr () and default_reduction = - (16, "\000\000\000\000\000\000\003D\003C\003B\003A\003@\003\017\003?\003>\003=\003<\003;\003:\0039\0038\0037\0036\0035\0034\0033\0032\003$\0031\0030\003/\003.\003-\003,\003\016\003+\003*\003)\003(\003'\003&\003%\003#\003\"\003!\003 \003\031\003\030\003\029\003\028\003\027\003\026\003\025\003\024\003\023\003\022\003\021\003\020\003\019\003\018\000\000\000\000\000,\000\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\173\001\210\001\189\001\207\001\206\001\205\001\211\001\215\000\000\003\174\001\209\001\208\001\190\001\213\001\204\001\203\001\202\001\201\001\200\001\198\001\214\001\212\000\000\000\000\000\000\000\234\000\000\000\000\001\193\000\000\000\000\000\000\001\195\000\000\000\000\000\000\001\197\001\219\001\216\001\199\001\191\001\217\001\218\000\000\003\172\003\171\003\175\000\000\000\000\000\026\001g\000\200\000\000\000\228\000\229\000\000\000\000\000\000\001\241\001\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\168\000\000\003\163\000\000\000\000\003\165\000\000\003\167\000\000\003\164\003\166\000\000\003\158\000\000\003\157\000\000\000\000\001\254\001\r\003\153\000\000\0012\001\253\000\000\003\156\000\000\002f\002e\000\000\000\000\000\000\000\000\000\000\000\000\000s\000\000\000\025\000\000\000\000\000q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\195\001s\000\000\000\000\000\000\000\000\000\000\000\000\002L\000\000\000\000\000\000\000\000\000\000\000\000\000n\000\000\000\000\000\000\000\000\000\000\002\254\000\000\002\159\002\160\000\000\002\157\002\158\000\000\000\000\000\000\000\000\000\000\001\138\001\137\000\000\002\252\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\237\000\017\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001q\000\000\000\000\001t\001r\001z\000D\002\195\003\129\003\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000p\000\000\000\246\000\000\002\162\002\161\000\000\000\000\000\000\001\223\000\000\000\000\000'\000\000\000\000\000\000\001e\000\000\000\000\001y\000\000\001x\000\000\001h\001w\000\000\001f\000e\000 \000\000\000\000\001\166\000\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\152\000*\000\000\000\000\000!\000\028\000\000\000\000\000\000\000\000\003U\000\000\000\000\000\213\000\000\000\000\000\000\000\"\000\029\000\000\000\018\000\000\000\134\000\000\000\000\000\000\000\019\000\000\000\000\002W\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003J\000\000\000\023\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003L\000\000\000\000\000\000\000\000\000\000\003M\000\000\000\000\000\000\000\000\000\000\003K\000\000\003S\002u\002a\000\000\000$\000\000\002b\000\000\000\000\001\220\000\000\000\000\000\000\000\000\003\130\000\000\003\131\000\000\000\000\000#\000\000\000\000\000\000\000%\000\000\000&\000\000\000(\000\000\000\000\000)\002U\002T\000\000\000\000\000\000\000\000\000\000\000\000\000l\000\000\003\003\000o\000r\000m\002\248\003\176\002\249\002\030\002\251\000\000\000\000\003\000\002\156\003\002\000\000\000\000\000\000\003\t\003\006\000\000\000\000\000\000\002\026\002\012\000\000\000\000\000\000\000\000\002\016\000\000\002\011\000\000\002\029\003\015\000\000\000\000\000\000\000\000\001\168\000\000\000\000\002\028\003\001\000z\000\000\000\000\000y\000\000\003\n\002\250\000\000\002\022\000\000\000\000\003\r\000\000\003\012\003\011\000\000\002\018\000\000\000\000\002\014\002\r\002\027\002\019\000\000\000x\000\000\003\b\003\007\000\000\003\005\000\000\002\164\002\163\000\000\000\000\002\127\003\004\000\000\000\000\000\000\000\000\001\225\001M\001N\002\167\000\000\002\166\002\165\002\170\000\000\002\169\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\001\003\001\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\000\000\000\000\000\000\000\000\000\000\000\000\003\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\155\000\000\000\000\000\000\000\000\000\000\001\147\000\000\000\000\000\000\001p\001\154\001o\001\151\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002_\000\000\000\000\002`\002Q\002P\000\000\001\146\001\145\000\000\000\215\000\000\000\000\001\131\000\000\000\000\001\135\000\000\001\245\001\244\000\000\000\000\001\243\001\242\001\134\001\132\000\000\001\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\201\001u\002\206\002\204\000\000\000\000\000\000\002\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\247\000\000\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\001\000\000\000\000\001\000\002(\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\149\000\000\000\000\003\148\000\000\000\000\000\000\000\000\000\250\000\249\000\000\000\251\000\000\000\000\000\000\002\214\000\000\000\000\000\000\002\183\002\174\000\000\000\000\000\000\000\000\003\177\002\216\002\203\002\202\000\000\000\000\000\180\000\000\000\000\000\000\000\000\000\000\000\194\000\000\000\000\000\000\000\179\000\000\000\000\000\000\002\134\002\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\000\000\000\000\002V\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\001\n\001\006\000\000\001Q\000\000\000\000\001P\001\b\001O\001S\000\000\001R\000\000\000\000\001\t\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\000\000\000\000\001\020\000\000\000\000\001\018\001\024\000\000\000\000\000\000\000\000\000\000\000\000\003G\000\000\000\000\000\207\000\206\000\000\003H\003I\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\000\000\000\000\001\019\000\000\000\000\001\017\001\016\000\000\000\000\000\000\000\000\001\023\000\000\000\000\001\022\000\000\002\025\000\000\000\000\002%\000\000\000\000\002'\000\000\000\000\002#\002\"\002 \002!\000\000\000\000\000\000\001\014\000\000\000\000\0018\000\020\001\026\000\000\000\000\000\000\002\185\002\176\000\000\000\000\002\184\002\175\000\000\000\000\000\000\000\000\002\187\002\178\000\000\000\000\002y\000\000\000\000\002\191\002\182\000\000\000\000\002\189\002\180\002\210\000\000\000\000\000\000\000\000\000\000\002\186\000\000\000\000\000\000\000\000\000\000\002\190\000\000\000\000\000\000\000\000\000\000\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002S\002R\000\178\000\000\002\177\000\000\000\000\002\181\000\000\000\000\002\179\000\000\000\135\000\136\000\000\000\000\000\000\000\000\000\151\000\208\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\209\000\000\000\210\000\211\000\144\000\000\000\143\000\000\000\000\001U\000\000\001V\001T\002Y\000\000\000\000\002Z\002X\000\000\000\000\000\000\000\000\000\000\001#\000\000\000\000\001$\000\000\000\000\000\181\000\000\001&\001%\000\000\000\000\002\218\002\211\000\000\002\233\000\000\002\234\002\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000h\002^\002]\000\000\002\242\002O\002N\000\000\002\227\000\000\002\228\002\226\000\000\000\000\002\241\000\000\002\244\000\000\002\245\002\243\000\000\000\000\002\240\000\000\000\000\002\213\002\212\000\000\000\000\000\000\002?\000\000\001\239\000\000\000\000\000\000\002\130\002>\000\000\002\222\002\221\000\000\000\000\000\000\001v\000\000\002\193\000\000\002\194\002\192\000\000\002\220\002\219\000\000\000\000\000\000\002|\002\209\000\000\002\208\002\207\000\000\002\236\002\235\000\000\000\000\002\237\002\225\000\000\002\224\002\223\000\000\000\000\002\238\000\141\000\000\000\000\000\000\000\000\000\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\138\000\000\001}\000\000\000\000\000\000\000t\000\000\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\001\160\001\158\001\159\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\239\000\000\000\000\000\130\000\000\000\242\000\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\139\000v\000\000\000\000\002=\000\000\000\000\001\025\001\237\000\000\000\254\000\000\000\000\000\253\000\255\001!\000\000\000\196\002\231\000\000\002\230\002\229\000\000\000\000\002\239\002\205\000\000\000\000\000\000\000\000\002\196\000\000\002\198\000\000\002\197\000\000\002\172\002\171\000\000\002\173\000\000\000\000\000\000\000\000\001\252\001\246\000\000\001\251\000\000\001\249\000\000\001\250\000\000\001\247\000\000\000\000\001\248\000\000\001\186\000\000\000\000\000\000\001\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\152\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001.\003z\000\000\000\000\003y\000\000\000\000\000\000\000\000\000\000\002.\000\000\000\000\000\000\000\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\170\000\000\0024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003F\000\000\000\000\002\135\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\188\000\000\000\000\000\000\001\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\153\000\000\000\000\000\000\000\000\001\140\000\000\001\139\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0010\002\149\000\000\000\000\000\000\002\147\000\000\000\000\000\000\002\146\000\000\001\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\185\000\000\000\000\002g\000\000\000\205\000\000\002h\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\000\000\000\000\001\165\000\000\001\164\000\000\000\000\000\000\000\000\000K\000\000\000\000\000\000\002;\000\000\002:\000\000\000\000\000\000\000\000\000L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Q\000\000\000\000\000\000\000R\000P\000\000\000U\000\000\000\000\000\000\000\000\000\000\000J\000\000\000\000\000\000\000\000\000\000\000\000\000M\000\000\000T\000S\000\000\000N\000O\000\000\001A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001,\000d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000a\000\000\000c\000b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001*\002\154\002\139\000\000\002\145\002\140\002\152\002\151\002\150\002\148\001;\000\000\002\137\000\000\000\000\000\000\000\000\002\153\000\000\000\000\000\000\000\000\000\000\002L\000\000\000\000\0014\002\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\181\001\177\000\000\000\000\000\000\000\222\000\000\000\000\002B\002L\000\000\000\000\0016\002@\002A\000\000\000\000\000\000\000\000\000\000\001\184\001\180\001\176\000\000\000\000\000\223\000\000\000\000\001\183\001\179\001\175\001\173\002\142\002\138\002\155\001:\002+\002\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\156\000\000\000\000\000\000\003\180\000\000\000\000\003\182\000\000\0009\000\000\000\000\003\188\000\000\003\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\179\000\000\000\000\003\181\000\000\000\000\000\000\0026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001d\000\000\000\000\001b\001`\000\000\000:\000\000\000\000\003\191\000\000\003\190\000\000\000\000\000\000\001^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001c\000\000\000\000\001a\001_\000\000\000\000\000\000\000<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000[\000\000\000\000\000\000\000\000\000\000\000\000\0006\000\000\000\000\000Z\000\000\0004\001\029\000\000\000C\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000Y\000X\000\000\000\000\000^\000]\000\000\000\000\001\227\000\000\0008\000\000\000\000\000\000\0007\000\000\000\000\000\000\000;\000\000\000\\\000_\000\000\000=\000>\000\000\001C\000\000\000\000\000\000\000\000\000\000\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001(\003}\003t\000\000\000\000\003x\003E\003s\003|\003{\001?\000\000\000\000\003q\000\000\000\000\000\000\000\000\003\127\000\000\003u\003r\003~\002*\000\000\000\000\003o\000-\003n\000\000\000\000\000\203\000\000\000\236\000\000\000\000\001>\001=\000\000\001\129\001\128\000\000\000\000\003\014\002\253\000\000\000E\000\000\000\000\000F\000\000\000\000\002\200\002\199\000\000\000\000\000\147\000\000\000\000\0023\000\227\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\000\003w\002G\002H\002C\002E\002D\002F\000\000\000\000\000\000\000\202\000\000\000\000\002L\000\000\000\226\000\000\000\000\000\000\000\000\003v\000\000\000\199\000\000\000\000\000\000\000\000\000\000\000\000\001]\001W\000\000\000\000\001X\000\031\000\000\000\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003P\000\000\000\000\000\000\000\000\000\000\003Q\000\000\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\001\182\001\178\000\000\001\174\003\151\000\000\002L\000\000\000\225\000\000\000\000\000\000\000\000\002\144\002K\002I\002J\000\000\000\000\000\000\002L\000\000\000\224\000\000\000\000\000\000\000\000\002\143\000\000\001\142\001\141\000\000\000\024\000\000\003\183\000\000\000.\000\000\000\000\000\000\000\000\000\150\000\000\000\230\000\001\000\000\000\000\000\235\000\002\000\000\000\000\000\000\001j\001k\000\003\000\000\000\000\000\000\000\000\001m\001n\001l\000\021\001i\000\022\000\000\001\255\000\000\000\004\000\000\002\000\000\000\000\005\000\000\002\001\000\000\000\000\002\002\000\006\000\000\000\007\000\000\002\003\000\000\000\b\000\000\002\004\000\000\000\t\000\000\002\005\000\000\000\n\000\000\002\006\000\000\000\011\000\000\002\007\000\000\000\000\002\b\000\012\000\000\000\000\002\t\000\r\000\000\000\000\000\000\000\000\000\000\003\138\003\133\003\134\003\137\003\135\000\000\003\142\000\014\000\000\003\141\000\000\001E\000\000\000\000\003\139\000\000\003\140\000\000\000\000\000\000\000\000\001I\001J\000\000\000\000\001H\001G\000\015\000\000\000\000\000\000\003\170\000\000\003\169") + (16, "\000\000\000\000\000\000\003V\003U\003T\003S\003R\003#\003Q\003P\003O\003N\003M\003L\003K\003J\003I\003H\003G\003F\003E\003D\0036\003C\003B\003A\003@\003?\003>\003\"\003=\003<\003;\003:\0039\0038\0037\0035\0034\0033\0032\0031\0030\003/\003.\003-\003,\003+\003*\003)\003(\003'\003&\003%\003$\000\000\000\000\000\026\000\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\193\001\224\001\203\001\221\001\220\001\219\001\225\001\229\000\000\003\194\001\223\001\222\001\204\001\227\001\218\001\217\001\216\001\215\001\214\001\212\001\228\001\226\000\000\000\000\000\000\000\218\000\000\000\000\001\207\000\000\000\000\000\000\001\209\000\000\000\000\000\000\001\211\001\233\001\230\001\213\001\205\001\231\001\232\000\000\003\192\003\191\003\195\000\000\000\000\001\160\001Z\000\183\000\000\000\212\000\213\000\000\000\000\000\000\002\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\188\000\000\003\183\000\000\000\000\003\185\000\000\003\187\000\000\003\184\003\186\000\000\003\178\000\000\003\177\000\000\000\000\000\255\000\253\003\173\002\014\000\000\001$\002\r\000\000\003\176\000\000\002x\002w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000a\000\000\001\159\000\000\000\000\000_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\178\001f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\\\000\000\000\000\000\000\000\000\000\000\000\000\000\\\000\000\000\000\000\000\000\000\000\000\003\016\000\000\002\177\002\178\000\000\002\175\002\176\000\000\000\000\000\000\000\000\000\000\001}\001|\000\000\003\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\221\000\017\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001d\000\000\000\000\001g\001e\001m\0002\002\213\003\149\003\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000^\000\000\000\230\000\000\002\180\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\237\000\000\000\000\001\173\000\000\000\000\000\000\001X\000\000\000\000\001l\000\000\001k\000\000\001[\001j\000\000\001Y\000S\001\166\000\000\000\000\001\153\000\000\000\000\000\000\000\023\000\000\000\000\000\000\000\000\001\161\000\000\000\000\000\024\000\000\000\000\003\129\001\176\000\000\000\000\001\167\001\162\003\172\000\000\000\000\000\000\000\000\003h\000\000\000\000\000\197\000\000\000\000\000\000\001\168\001\163\000\000\000\018\000\000\000t\000\000\000\000\000\000\000\019\000\000\000\000\002h\000\000\000\000\000\000\000\000\002i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003]\000\000\000\000\000\000\001\178\000\000\001\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003_\000\000\000\000\000\000\000\000\000\000\003`\000\000\000\000\000\000\000\000\000\000\003^\000\000\003f\002\135\002s\000\000\001\170\000\000\002t\000\000\000\000\001\234\000\000\000\000\000\000\000\000\003\150\000\000\003\151\000\000\000\000\001\169\000\000\000\000\000\000\001\171\000\000\001\172\000\000\001\174\000\000\000\000\001\175\002e\002d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003c\000\000\000\000\000\000\000\000\000\000\003d\000\000\000\000\000\000\000\000\000\000\003b\000\000\000\000\000\000\000\000\000\000\000\000\000Z\000\000\003\021\000]\000`\000[\003\n\003\196\003\011\002.\003\r\000\000\000\000\003\018\002\174\003\020\000\000\000\000\000\000\003\027\003\024\000\000\000\000\000\000\002*\002\028\000\000\000\000\000\000\000\000\002 \000\000\002\027\000\000\002-\003!\000\000\000\000\000\000\000\000\001\180\000\000\000\000\002,\003\019\000h\000\000\000\000\000g\000\000\003\028\003\012\000\000\002&\000\000\000\000\003\031\000\000\003\030\003\029\000\000\002\"\000\000\000\000\002\030\002\029\002+\002#\000\000\000f\000\000\003\026\003\025\000\000\003\023\000\000\002\182\002\181\000\000\000\000\002\145\003\022\000\000\000\000\000\000\000\000\001\239\001?\001@\002\185\000\000\002\184\002\183\002\188\000\000\002\187\002\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\243\000\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\135\000\000\000\000\000\000\000\000\000\000\000\000\003\219\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\175\000\000\000\000\000\000\000\000\000\000\001\134\000\000\000\000\000\000\001c\001\141\001b\001\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002q\000\000\000\000\002r\002a\002`\000\000\001\133\001\132\000\000\000\199\000\000\000\000\001v\000\000\000\000\001z\000\000\002\005\002\004\000\000\000\000\002\003\002\002\001y\001w\000\000\001{\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\219\001h\002\224\002\222\000\000\000\000\000\000\002\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\241\000\000\000\000\000\240\0028\000\242\000\000\000\000\000\000\000\000\000\000\000\000\001\155\000\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\169\000\000\000\000\003\168\000\000\000\000\000\000\000\000\000\234\000\233\000\000\000\235\000\000\000\000\000\000\002\232\000\000\000\000\000\000\002\201\002\192\000\000\000\000\000\000\000\000\003\197\002\234\002\221\002\220\000\000\000\000\000\163\000\000\000\000\000\000\000\000\000\000\000\177\000\000\000\000\000\000\000\162\000\000\000\000\000\000\002\152\002\151\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\247\000\000\000\000\002f\000\000\000\000\000\000\000\000\002g\000\000\000\000\000\000\000\251\000\000\000\000\000\000\000\000\000\000\000\250\000\246\000\000\003Y\000\000\000\000\000\190\000\189\000\248\000\000\003Z\003\\\001\156\000\000\000\000\003[\000\000\001\154\001\182\000\000\000\000\000\249\000\000\000\000\000\000\000\000\000\000\000\252\001F\000\000\000\000\000\000\001C\000\000\000\000\001B\001A\001E\000\000\001D\000\000\000\000\000\000\000\000\000\000\001\006\000\000\000\000\001\004\001\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\000\000\000\000\000\000\000\000\001\005\000\000\000\000\001\003\001\002\000\000\000\000\000\000\000\000\001\t\000\000\000\000\001\b\000\000\002)\000\000\000\000\0025\000\000\000\000\0027\000\000\000\000\0023\0022\0020\0021\000\000\000\000\000\000\001\000\000\000\000\000\001*\000\020\001\012\000\000\000\000\000\000\002\203\002\194\000\000\000\000\002\202\002\193\000\000\000\000\000\000\000\000\002\205\002\196\000\000\000\000\002\139\000\000\000\000\002\209\002\200\000\000\000\000\002\207\002\198\002\228\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\000\000\000\000\000\000\002\208\000\000\000\000\000\000\000\000\000\000\002\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002c\002b\000\161\000\000\002\195\000\000\000\000\002\199\000\000\000\000\002\197\000\000\000u\000v\000\000\000\000\000\000\000\000\000\134\000\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\000\000\193\000\195\000\000\000\000\000\194\000\127\000\000\000\000\000~\000\000\000}\000\000\000\000\001H\000\000\001I\001G\002k\000\000\000\000\002l\002j\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\022\000\000\000\000\000\164\000\000\001\024\001\023\000\000\000\000\002\236\002\229\000\000\002\251\000\000\002\252\002\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000V\002p\002o\000\000\003\004\002_\002^\000\000\002\245\000\000\002\246\002\244\000\000\000\000\003\003\000\000\003\006\000\000\003\007\003\005\000\000\000\000\003\002\000\000\000\000\002\231\002\230\000\000\000\000\000\000\002O\000\000\001\255\000\000\000\000\000\000\002\148\002N\000\000\002\240\002\239\000\000\000\000\000\000\001i\000\000\002\211\000\000\002\212\002\210\000\000\002\238\002\237\000\000\000\000\000\000\002\142\002\227\000\000\002\226\002\225\000\000\002\254\002\253\000\000\000\000\002\255\002\243\000\000\002\242\002\241\000\000\000\000\003\000\000{\000\000\000\000\000\000\000\000\000z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000x\000\000\001p\000\000\000\000\000\000\000b\000\000\000\000\000c\000\000\000\000\000\000\000\000\000\000\000\000\001\147\001\145\001\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\223\000\000\000\000\000p\000\000\000\226\000\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000y\000d\000\000\000\000\002M\000\000\000\000\001\011\001\253\000\000\000\238\000\000\000\000\000\237\000\239\001\019\000\000\000\179\002\249\000\000\002\248\002\247\000\000\000\000\003\001\002\223\000\000\000\000\000\000\000\000\002\214\000\000\002\216\000\000\002\215\000\000\002\190\002\189\000\000\002\191\000\000\000\000\000\000\000\000\002\012\002\006\000\000\002\011\000\000\002\t\000\000\002\n\000\000\002\007\000\000\000\000\002\b\000\000\001\200\000\000\000\000\000\000\001\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\139\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \003\142\000\000\000\000\003\141\000\000\000\000\000\000\000\000\000\000\002>\000\000\000\000\000\000\000\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\184\000\000\002D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003X\000\000\000\000\002\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\202\000\000\000\000\000\000\001\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\140\000\000\000\000\000\000\000\000\001\127\000\000\001~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\002\167\000\000\000\000\000\000\002\165\000\000\000\000\000\000\002\164\000\000\001r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\205\000\000\000\000\002y\000\000\000\188\000\000\002z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0006\000\000\000\000\000\000\000\000\001\152\000\000\001\151\000\000\000\000\000\000\000\000\0009\000\000\000\000\000\000\002K\000\000\002J\000\000\000\000\000\000\000\000\000:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000?\000\000\000\000\000\000\000@\000>\000\000\000C\000\000\000\000\000\000\000\000\000\000\0008\000\000\000\000\000\000\000\000\000\000\000\000\000;\000\000\000B\000A\000\000\000<\000=\000\000\0013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\030\000R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000O\000\000\000Q\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\028\002\172\002\157\000\000\002\163\002\158\002\170\002\169\002\168\002\166\001-\000\000\002\155\000\000\000\000\000\000\000\000\002\171\000\000\000\000\000\000\000\000\000\000\000\000\002\\\000\000\000\000\001&\001\241\002\159\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\195\001\191\000\000\000\000\000\000\000\206\000\000\000\000\002R\002\\\000\000\000\000\001(\002P\002Q\000\000\000\000\000\000\000\000\000\000\001\198\001\194\001\190\000\000\000\000\000\207\000\000\000\000\001\197\001\193\001\189\001\187\002\160\002\156\002\173\001,\002;\002\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\143\000\000\000\000\000\000\003\200\000\000\000\000\003\202\000\000\000'\000\000\000\000\003\208\000\000\003\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\199\000\000\000\000\003\201\000\000\000\000\000\000\002F\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W\000\000\000\000\001U\001S\000\000\000(\000\000\000\000\003\211\000\000\003\210\000\000\000\000\000\000\001Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001V\000\000\000\000\001T\001R\000\000\000\000\000\000\000*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000I\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000\000\000H\000\000\000\"\001\015\000\000\0001\000\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\r\000\000\000G\000F\000\000\000\000\000L\000K\000\000\000\000\001\243\000\000\000&\000\000\000\000\000\000\000%\000\000\000\000\000\000\000)\000\000\000J\000M\000\000\000+\000,\000\000\0015\000\000\000\000\000\000\000\000\000\000\000\000\000/\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\026\003\145\003\136\000\000\000\000\003\140\003W\003\135\003\144\003\143\0011\000\000\000\000\003\133\000\000\000\000\000\000\000\000\003\147\000\000\003\137\003\134\003\146\002:\000\000\000\000\003\131\000\027\003\130\000\000\000\000\000\186\000\000\000\220\000\000\000\000\0010\001/\000\000\001t\001s\000\000\000\000\003 \003\015\000\000\0003\000\000\000\000\0004\000\000\000\000\002\218\002\217\000\000\000\000\000\130\000\000\000\000\002C\000\211\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\184\000\000\003\139\002W\002X\002S\002U\002T\002V\000\000\000\000\000\000\000\185\000\000\000\000\000\000\002\\\000\000\000\210\000\000\000\000\000\000\000\000\003\138\000\000\000\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003e\000\000\000\000\000\000\000\000\000\000\000\000\001P\001J\000\000\000\000\001K\001\165\000\000\001\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003a\000\000\001\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003g\000\000\000\000\000\000\001\196\001\192\000\000\001\188\003\171\000\000\002\\\000\000\000\209\000\000\000\000\000\000\000\000\002\162\002[\002Y\002Z\000\000\000\000\000\000\000\000\002\\\000\000\000\208\000\000\000\000\000\000\000\000\002\161\000\000\001\129\001\128\000\000\001\158\000\000\003\203\000\000\000\028\000\000\000\000\000\000\000\000\000\133\000\000\000\214\000\001\000\000\000\000\000\219\000\002\000\000\000\000\000\000\001]\001^\000\003\000\000\000\000\000\000\000\000\001`\001a\001_\000\021\001\\\000\022\000\000\002\015\000\000\000\004\000\000\002\016\000\000\000\005\000\000\002\017\000\000\000\000\002\018\000\006\000\000\000\007\000\000\002\019\000\000\000\b\000\000\002\020\000\000\000\t\000\000\002\021\000\000\000\n\000\000\002\022\000\000\000\011\000\000\002\023\000\000\000\000\002\024\000\012\000\000\000\000\002\025\000\r\000\000\000\000\000\000\000\000\000\000\003\158\003\153\003\154\003\157\003\155\000\000\003\162\000\014\000\000\003\161\000\000\0017\000\000\000\000\003\159\000\000\003\160\000\000\000\000\000\000\000\000\001;\001<\000\000\000\000\001:\0019\000\015\000\000\000\000\000\000\003\190\000\000\003\189") and error = - (129, "'\225 \197\138V\252\206z\002\128\254@\000\028p\017\176\128\"\225#~&}\000@|\000\000\0068\031}\145\002\011\252m\000\002`\224{\142,\005\006\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\175\235f\245\155W\252\206\255\146\161\254!\016<\240>\251\"\004\023\248\218\000\004\193\192\247\028X\n\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0026\016\004X$o\196\207\160\b\015\128\000\000\199\003\239\178 A\127\141\160\000L\028\015q\197\128\160\208\159\132\139V)[\2439\232\n\003\248\000\000\241\192\000\000\000\000\128\000\160\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000P\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000 \000 \001\248\005\130@\000\031\017\000A\000 Q`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000(\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000`\000\014\002\000\014.\b\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!`.\232\002\006E \224`\201\001\216ED\"\128\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\224 \226\224\128\000@\000\000\000\000\000\001\000@@@\016P@\128\000\001\000\000\000\000\000\000\128 \000\b( @\000\000\128\000\000\000\000\000@\016\016\000\004\020\016\000\000\000@\000\000\000\000\024\144\005P\001\003\b\144p\000D\000\236 2\000HH\002\b\000\129\000\b(\000 \000b\000\001\000\004$\001\004\000@\128\004\016\000\016\0001\000\000\128\000\012\000\000\147\004\t@\002\000@\000\000\000\000\001\000\006\000\000I\002\004\160\001\000 \000\000\000\000\000\128\003\000\000$\129\002P\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\002H\000%\000\000\001\000\000\000\000\000\004\000\016\000\001\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000I\000\004\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\016@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\004 \000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\127[\255\236\223\191\239\255\252\157?\243\016\160\231\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\t \000\128\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\b\000\000\000@\002\000\000\000\000\000\016\000\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\132\128\"\130\b\016\000\131\000\002\000\007`\016\144\002\001\144\000<\b\0008\184(\000\016\004\001\000\000@! \b\160\003\004\017 \224\000\136\001\152D\012 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\128\001\192@\001\197\193@\000\128 \b\000\002\000\006\000\016\224 \226\224\128\000@\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\0000\000\000(\184 \000\016\000\000\000\000\000\000\192\000\028\004\004\028\\\016\000\b\000\000\000\000\000\024\176\023p\001\003\"\144p0D\128\236\002\166\017`0\000\006\000\000\007\023\004\000\002\000\000\000\000\000\000\024\000\003\128\128\131\139\130\000\001\000\000\000\000\000\000\012\000\001\128\000\001E\193\000\000\144\000\b\000\000\000\006\000\000\224 \226\224\128\000@\000\000\000\000\000}\246D\b/\241\180\000\t\131\129\2388\176\020\026\019\240\145j\197+~g=\001@\127\000\000\0308\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\002L\016%\000\b\001\000\000\000\000\000\004\000\024\000\001$\b\018\128\004\000\128\000\000\000\000\002\000\012\000\000\146\004\t@\000\000@\000\000\000\000\001\000\006\000\000I\000\004\160\000\000 \000\000\000\000\000\128\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000B@\017A\004\b\002A\128\001\016\003\176\b\b\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\144\004P\001\002\000\144`\000D\000\204\002\002\000G\223d@\130\255\027@\000\1528\030\227\139\001A\161?\t\022\172R\183\230s\208\020\007\240\000\001\227\128\141\132\001\023\t\027\2413\232\002\003\224\000\0001\192F\194\000\139\004\141\248\153\244\001\001\240\000\000\024\224#a\000E\130F\252Lz\000\128\248\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H@\017\000\144\020\019\028\128\000\006\000\000\003\024\016\128\000\016\b\000(\016P0\000\000\004\002\000\000\b@\000\b\000\000\020\b(\024\000\000\002\001\000\000\004 \000\004\000\000\n\004\016\012\000\000\001\000\128\000\000\012\132\001\002\000\tA1h\000\128h\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\012\134!\031\128Ye1i\241\144l\016\003%\151\000\000\016\000\000\000\000\000\004\000\000 \000\000\000\000\131\000\000\000@\000\000\000\128\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\128\128\000 \160\128\000\000\002\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000@\128\016\000\000\016\016 \000\000@\000\000\000\000\000 @\b\000\000\b\b\000\000\000 \000\000\000\000\n~\018\012X\165o\204\239\160(\015\226\000\001\199\005?\t\006,R\183\230s\208\020\007\241\000\000\227\130\159\132\139\022)[\2439\232\n\003\249\128\000q\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\128\016\016\000\016\016 \000\000@\000\000\000\016\000 @\b\b\000\b\b\016\000\000 \000\000\000\000\000\016 \004\000\000\004\004\b\000\000\016\000\000\000\000\000\b\016\002\000\000\002\002\000\000\000\b\000\000\000\000\000\020\b\001\000\000\001\001\000\000\000\004\000\000\000\000\000F\194\000\139\004\141\248\153\244\001\001\240\000\000\024\224#a\000E\130F\252Lz\000\128\248\000\000\012p\000\128\000\000 \000\b\000@\000\000\000\000\000\000\000\000@\000\000\000\000\004\000 \000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\132\001\023\t\027\2413\232\002\003\224\000\0001\192F\194\000\139\004\141\248\153\244\001\001\240\000\000\024\224#a\000E\130F\252Lz\000\128\248\000\000\012pQ\176\196#\241+~\166=>b|\130\000f\186\224HB\017\000\144\020\019\028\128\000\006\000\000\003\024\004l \b\176H\223\137\143@\016\031\000\000A\142\0026\016\004X$o\196\199\160\b\015\128\000\000\199\006\173\237\222\191\210\250\190\127\191\251a\251\237\191\255<\141\132\001\022\t\027\2411\232\002\003\224\000\0001\192\006B\000\129\000\004\160\152\180\000@0\000\000\016@\003!\000@\128\002PLZ\000 \026\000\002\b \001\144\128 @\001(&-\000\016\r\000\000\005\016\000\200@\144 \000\148\019\022\128\b\006\128\000\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\b\128\000\000\000\000\000\000\000\000\128\000\016\000\000\192\000\028\004\000\028\\\016\000\b\000\000\000\000\000\000`\000\014\002\000\014.\b\000\004\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\003\128\128\003\139\130\000\001\000\000\000\000\001\000\012\000\t\192@\001\197\193\000\000\128\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000p\016\000qp@\000 \000\000\000\000 \001\128\0008\b\0008\184 \000\016\000\000\000\000P\000@\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\016\000\000\004\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000p\016\000qp@\000 \000\000\000\000 \000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012H\003\184\000\129\144H8\024\"@v\001Q\b\176\024\000\003\128\128\003\139\130\000\001\000\000\000\000\000\000\012\000\001\128\000\001E\193\000\000\128\000\000\000\000\001\137\000w\000\0162\t\007\003\004H\014\192*!\022\003\000\000p\016\000qp@\000 \000\000\000\000\000\001\128\0000\000\000(\184 \000\016\000\000\000\000\0001 \014\224\002\006A \224`\137\001\216\005D\"\216\144\023p\001\003 \144p0D\128\236\002\162\017`0\000\006\000\000\005\023\004\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\139\001w\000\0162)\007\003\004H\014\192*!\022\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\176\023p\001\003\"\144p0D\128\236\002\162\017`0\000\006\000\000\005\023\004\000\002\000\000\000\000\000\006,\005\220\000@\200\164\028\012\017 ;\000\168\132[\018\000\238\000 d\018\014\006\b\144\029\128TB,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000`\000\000qp@\000 \000\000\000\000\000\001\128\0008\b\b8\184 \000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\128\000\000\016\000\000\000\000\001\000\000\000\002\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000p\016\000qp@\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000 \000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012H\003\184\000\129\144H8\024\"@v\001Q\b\160\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\014\002\000\014.\b\000\004\000\000\000\000\000\000\000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\012\000\001\192@\001\197\193\000\000\128\000\000\000\000\000\006\000\000\192\000\000\162\224\128\000@\000\000\000\000\000\196\128;\128\b\025\004\131\129\130$\007`\021\016\139b@\029\192\004\012\130A\192\193\018\003\176\n\136E\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\003\128\128\003\139\130\000\001\000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\016\000\000\006\000\000\192\000\000\162\224\128\000@\000\000\000\000\000\003\000\000p\016\016qp@\000 \000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\128\000\000\000\192\000\028\004\000\028\\\016\000\b\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\024\000\003\128\128\003\139\130\000\001\000\000\000\000\000\000\012\000\001\128\000\001E\193\000\000\128\000\000\000\000\001\137\000w\000\0162\t\007\003\004H\014\192*!\022\196\128;\128\b\025\004\131\129\130$\007`\021\016\139\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000`\000\014\002\000\014.\b\000\004\000\000\000\000\000\0000\000\006\000\000\005\023\004\000\002\000\000\000\000\000\006$\001\220\000@\200$\028\012\017 ;\000\168\132[\018\000\238\000 d\018\014\006\b\144\029\128TB,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\001\128\0008\b\0008\184 \000\016\000\000\000\000\000\000\192\000\024\000\000\020\\\016\000\b\000\000\000\000\000\024\144\007p\001\003 \144p0D\128\236\002\162\017lH\003\184\000\129\144H8\024\"@v\001Q\b\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\018\000\238\000 d\018\014\006\b\144\029\128TB,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\007\001\000\007\023\004\000\002\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\000\002\000\000\016\000\000\000\002\000\006\000\000\224 \000\226\224\128\000@\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\0008\b\0008\184 \000\016\000\000\000\000\000\000\000\000\128\000\000\000\000 \000\001\000\000\000\000 @`\000\014\002\000\014.\b\000\004\000\000\000\000\000\000\000\000 \000\000\000\000\b\000\000@\000\000\000\b\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\002\000\000\016\000\000\000\002$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\128\000\004\000\000\000\000\128\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\0000\000\007\001\000\007\023\004\000\002\000\000\000\000\002\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\017\000\000\000\000\000\128\000\000\001\000\000\000\000@\000\b\128\000\000\000\000\000\000\000\000\128\000\000\000\000\200@\016 \000\148\019\022\128\b\006\128\000\002\b\000d \b\024\000J\t\154@\004\003\000\000\001\004\0002\016\004\b\000%\004\205 \002\001\128\000\000\130\000\025\b\002\004\000\018\130b\144\001\000\192\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000I\148\141\168H\005(&k\000\144\012\161\003\181T\000\000@\000 \000\128\000\000\128\000\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002L\164mB@)A3x\004\128m\004\029\170\160\002\000\000\000\000\000\128\024\160\000\000\000\000\000\000\000\131!\b@\128\002PLZ\000 \026\000\000H \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d \b\024\000J\t\155@\004\003@\000\001\004\0002\016\004\b\000%\004\205\160\002\001\160\000\000\130\000\025\b\002\004\000\018\130b\208\001\000\208\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\027\000\000\b\000\000\128\001\000\001@\006b\136\001\144\128 @\001(&-\000\016\r\000\000\004\016$\000\006\192\000\002\000\000 \000@\000P\001\152\162\016d \b\016\000J\t\139@\004\003@\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\216\000\000@\000\004\000\b\000\n\0003\020@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001&B6\129\000\020\160\153\180\002@6\128\012\213P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\200F\208 \002\148\0196\128H\006\208\001\154\170\016t1\b\252\002\203)\139O\140\131`\128\025,\176\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\003!\000@\128\002PLR\000 \024\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\128\000\000\000\000\000 \000\001\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\016\000\000\000\000\001\000\000\000\000\000\b\193\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \200@\016 \000\148\019\022\128\b\006\128\000\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\001\176\000\000\128\000\b\000\016\000\020\000f(\132\024\000\003\128\128\003\139\130\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\016\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \200@\016 \000\148\019\022\128\b\006\128\000\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\001\176\000\000\128\000\b\000\016\000\020\000f(\132\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\128\000\000\000\000\b\000\000\000\000\000D\b\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\004\129\000\004\160\152\180\000@4\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\001 \000\000\000\000\b\000\000\000\000\000d(\132\025\b\018\004\000\018\130b\208\001\000\208\000\016Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\017\000\000\000\000\000\128\000\000\000\000\004@\136@\000\b\128\000\000\000\000\000\000\000\000\000\000\000\000 \192\000@\000\000\004\000\000\000\000\000\000\000\000\000\016\000\002 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000\161 \004\160\153\172\002@2\000\b\209X\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000 \000\004\000\0000\000\007\001\000\007\023\004\000\002\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\b\000\000\000\012\000\001\192@\001\197\193\000\000\128\000\000\000\000\000\000\000\016\000\000\000\000\001\000\000\000\002\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\001\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\128\000\000\000\b\216@\017`\145\191\019\030\128 >\000\000\003\028\000d \136\025\002N\t\155@\004\003@\000\001\004\000\016 \004\004\000\004\004\b\000\000\016\000\000\000\004\000\b\016\002\002\000\002\002\004\000\000\b\000\000\000\000\000\004\b\001\000\000\001\001\002\000\000\004\000\000\000\000\000\002\004\000\128\000\000\128\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000@\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\192\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\b\002\002\000\000\130\130\000\000\000\b\000\000\000\000\000\004\001\001\000\000AA\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\128\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004 \000\000\000\000\000\000\000\000\000\000@\016\016\000\004\020\016\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012H\002\168\000\129\128H8\000\"\000v\000\017\000 \004\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\012\000\000\146\000\t@\000\000@\000\000\000\000\001\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\128\000\001\128\000<\b\0008\184 \000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\014\002\000\014.\b\000\004\000\000\000\000\000\012H\002\168\000\129\128H8\000\"\000v\000\017\000\160\024\000\003\128\128\003\139\130\000\001\000\000\000\000\000\003\018\000\170\000 `\018\014\000\b\128\029\128D@)\137\000U\000\0160\t\007\000\004@\014\192\" \004\003\000\000p\016\000qp@\000 \000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\000\000\000\000\192\000\028\004\000\028\\\016\000\b\000\000\000\000\000\024\144\005P\001\003\000\144p\000D\000\236\002\"\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\001\000\000\001\000@@\000\016P@\000\000\001\000\000\000\000\000b@\021@\004\012\002A\192\001\016\003\176\000\136\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000 \000\000\000\016\000\000\000\000\001\000\000\000\000\000\000\000\000\000\006$\001T\000@\194$\028\000\017\000;\b\012\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\016\016\000\004\020\016\000\000\000@\000\000\000\000\024\144\005P\001\003\000\144p\000D\000\236\000\"\000@\016\004\004\000\001\005\004\000\000\000\016\000\000\000\000\006$\001T\000@\192$\028\000\017\000;\000\b\128\016\000\000\000\000\000\000\000\000\000\000\000\004\004\002\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\196\128*\128\b\024D\131\128\002 \007a\001\016\002\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\144\005P\001\003\b\144p\000D\000\236 \"\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006$\001T\000@\192$\028\000\017\000;\000\b\128\016\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\002\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000@\000\000@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\128\000\000\000\000\000\000\000\000\000\001\002\000@\000\000@@\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001 \n\160\002\006\017 \224\000\200\001\216\000L\000\128\160A\b\000\000\b\b\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000@\000\000\002\000\004\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000@@\000\016P@\000\000\001\000\000\000\000\000`\000\004\000\000\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\018\000\170\000 a\018\014\000\012\128\029\132\004\192\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\128\001\000\000\000\000\000\000\017\176\128\"\193#~&=\000@|\000\000\0068\b\216@\017`\145\191\019\030\128 >\000\000\003\156\004l H\176H\223\137\143@\016\031\000\000\001\142\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\004\000\000\128\000\000\000\000\000\000\000@\b\000\000\000\000\141\132\001\022\t\027\2411\232\002\003\224\000\0001\192\002B\000\136\004\128\160\152\228\000\0000\000\000\024\192\192\000\017\000\000\000\000\000\000\000`\001\005\001 \000\017\176\128\"\225#~&}\000@|\016\000\0068\b\216@\017`\145\191\019>\128 >\b\000\003\028\004l \b\176H\223\137\143@\016\031\004\000\001\142\000\018\016\004D$\005\004\207 \000\001\128\000\000\198\000\t\b\002 \018\002\130g\144\000\000\192\000\000c\000\004\132\001\016\t\001A1\200\000\000`\000\0001\128\002B\000\136\004\128\160\152\228\000\0000\000\000\024\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r[\219\189\127\165\245\\\255\127\246\195\247\219\127\254\248\b\000\000\000\000\002\128c\128\000\000\000\000\000\000\002\141\134!\031\137[\2451\233\243\019\228\016\0035\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\163a\bE\130F\252Lz\000\128\248\000\000\012pQ\176\132\"\193#~&=\000@|\000\000\0068 @\128\016\016\000\016\016 \000\000@\000\000\000\000\000 @\b\000\000\b\b\016\000\000 \000\000\000\000\000\016 \004\000\000\004\004\000\000\000\016\000\000\000\000\000\000\000\000\000\000\002\000\004\000\000\000\000\000\001\000\002\004\001\001\000\000AA\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\b\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000(\216B\017`\145\191\019\030\128 >\000\000\003\028\020l!\b\176H\223\137\143@\016\031\000\000\001\142\b2\016\132\b\000%\004\197\160\002\001\128\000\000\130\000\000\000\000\000\000\000\000\004\000\000\000\b\000#\004@\012\000\001\192@\001\197\193\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000\000#a\000E\130F\252Lz\000\128\248\000\000\012p\017\176\128\"\225#~&}\000@|\000\000\0068\b\216@\017`\145\191\019>\128 >\000\000\003\028\004l \b\176H\223\137\143@\016\031\000\000\001\142\0002\016\004\012\000%\004\205\160\002\001\160\000\000\138\000\025\b\002\004\000\018\130f\208\001\000\208\000\000E\000\012\132\001\002\000\tA1h\000\128h\000\000\"\128\006B\000\129\000\004\160\152\180\000@4\000\000\016@\016\000\000\000\000\b\000\000\128\000\000\000\000\004@\136\017\176\128\"\193#~&=\000@|\000\000\0068\000\202@\0204\000\148\0195\128\b\006\000\000\002\b\000e \n\018\000J\t\154\192\004\003\000\000\001\004\0002\144\005\t\000%\004\197`\002\001\128\000\000\130\000\016\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000\129\000\004\224\152\180\000@4\000\000\016@\003!\000@\128\002PLZ\000 \026\000\000\b \000\000\004\000\000\000\000\000@\000\000\000\128\0020D\000\192\000\028\004\000\028\\\016\000\b\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000 \000\000\0000\000\007\001\000\007\023\004\000\002\000\000\000\000\000\000\000\000@\000\000\000\000\004\000\000\000\b\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\004\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007C\016\143\192,\242\152\180\248\2006\b\001\146\203\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202@\020$\002\148\019\021\128\b\006\000\000\n\b\004l \b\176H\223\137\143@\016\031\000\000\001\142\0002\016\004\012\000%\004\205\160\002\001\160\000\000\130\000\025\b\002\004\000\018\130f\208\001\000\208\000\000A\000\012\132\001\002\000\tA1h\000\128h\000\000 \128\000\000\000\000\000\000\000\001\000\000\000\002\000\b\129\016#a\000E\130F\252Lz\000\128\248\000\000\012p\000\144\128\"! (&y\000\000\012\000\000\0060\000H@\017\000\144\020\019<\128\000\006\000\000\003\024\000$ \b\128H\n\t\142@\000\003\000\000\001\140\rIK\184>\129\240X8\031\246\194w\219\1278x\t\b\002 \018\002\130c\144\000\000\192\000\000c\003V\246\239_\233}W?\223\253\176\253\246\223\255\190\000\000\000\000\000\000\128\000\160\000\000\000\000\000\000\000#a\000E\130F\252Lz\000\128\248\000\000\012p\017\176\128\"\193#~&=\000@|\000\000\00685on\245\254\151\213s\253\255\219\015\223m\255\249\224\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\002\012\000\001\192@\001\197\193\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\025\000\000\000\000\000\128\000\000\001\000\000\000\000A\128\0008\b\0008\184 \000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\003 \000\000\000\000\016\000\000\000 \000 \000\0000\000\007\001\000\007\023\004\000\002\000\000\000\000\000\004\000\000\200\000\000\000\000\004\000\000\000\b\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$ \b\128H\n\t\142@\000\003\000\000\001\140\r[\219\189\127\165\245\\\255\127\246\195\247\219\127\254\248\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\160\000\160\000\000\000\000\000\000\000#a\000E\130F\252Lz\000\128\248\000\000\012p@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rIK\184>\129\240X8\031\242\194w\139\1278y\027\b\002,\0187\226c\208\004\007\192\000\000c\131V\246\239_\233}W?\223\253\176\253\246\223\255\159\169)w\007\208>\011\007\003\254\216N\251o\231\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000!\027\b\002,\0187\226c\208\004\007\192\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\169)w\007\208>\011\007\003\254XN\241o\231\015#a\000E\130F\252Lz\000\128\248\000\000\012pjJ]\193\244\015\130\193\192\255\150\019\188[\249\195\200\216@\017`\145\191\019\030\128 >\000\000\003\028\026\146\151p}\003\224\176p?\229\132\239\022\254p\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\173\237\222\191\210\250\174\127\191\251a\251\237\191\255?RR\238\015\160|\022\014\007\253\176\157\246\223\206\030F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000{\250\221\227\245/\254\231\253\255\214\127\188[\255\251\223}\145\002\011\252m\000\002`\224{\142,\005\006\132l \b\176H\223\137\143@\016\031\000\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\132\001\022\t\027\2411\232\002\003\224\000\0001\193\169)w\007\208>\011\007\003\254XN\241o\231\015#a\000E\130F\252Lz\000\128\248\000\000\012pjJ]\193\244\015\130\193\192\255\150\019\188[\249\195\200\216@\017`\145\191\019\030\128 >\000\000\003\028\026\146\151p}\003\224\176p?\229\132\239\022\254p\2426\016\004X$o\196\199\160\b\015\128\000\000\199\006\164\165\220\031@\248,\028\015\249a;\197\191\156<\141\132\001\022\t\027\2411\232\002\003\224\000\0001\193\169)w\007\208>\011\007\003\254XN\241o\231\015#a\000E\130F\252Lz\000\128\248\000\000\012pjJ]\193\244\015\130\193\192\255\150\019\188[\249\195\200\216@\017`\145\191\019\030\128 >\000\000\003\028\026\146\151p}\003\224\176p?\229\132\239\022\254p\2426\016\004X$o\196\199\160\b\015\128\000\000\199\006\164\165\220\031@\248,\028\015\249a;\197\191\156<\141\132\001\022\t\027\2411\232\002\003\224\000\0001\193\169)w\007\208>\011\007\003\254XN\241o\231\015#a\000E\130F\252Lz\000\128\248\000\000\012pjJ]\193\244\015\130\193\192\255\150\019\188[\249\195\200\216@\017`\145\191\019\030\128 >\000\000\003\028\026\146\151p}\003\224\176p?\229\132\239\022\254p\2426\016\004X$o\196\199\160\b\015\128\000\000\199\006\164\165\220\031@\248,\028\015\249a;\197\191\156<\141\132\001\022\t\027\2411\232\002\003\224\000\0001\193\169)w\007\208>\011\007\003\254XN\241o\231\015#a\000E\130F\252Lz\000\128\248\000\000\012pjJ]\193\244\015\130\193\192\255\150\019\188[\249\195\200\216@\017`\145\191\019\030\128 >\000\000\003\028\026\146\151p}\003\224\176p?\229\132\239\022\254p\2426\016\004X$o\196\199\160\b\015\128\000\000\199\006\164\165\220\031@\248,\028\015\249a;\197\191\156<\141\132\001\022\t\027\2411\232\002\003\224\000\0001\193\169)w\007\208>\011\007\003\254XN\241o\231\015#a\000E\130F\252Lz\000\128\248\000\000\012pjJ]\193\244\015\130\193\192\255\150\019\188[\249\195\200\216@\017`\145\191\019\030\128 >\000\000\003\028\026\146\151p}\003\224\176p?\229\132\239\022\254p\2426\016\004X$o\196\199\160\b\015\128\000\000\199\006\164\165\220\031@\248,\028\015\249a;\197\191\156<\012\132\001\002\000\t\1933h\000\128`\000\000 \128\006B\000\129\000\004\224\152\180\000@0\000\000\016@\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\001\148\128(H\001(&+\000\016\012\128\000\148\016 \232b\017\248\005\158S\022\159\025\006\193\0002Y`\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\002\132\128\018\130b\176\001\000\200\000\tA\000\012\132\001\002\000\tA1H\000\128`\000\000 \129\006C\016\143\192,\242\152\180\248\2006\b\001\146\203\003!\000@\128\002PLZ\000 \026\000\000\b \000\000\004\000\000\000\000\000@\000\000\000\000\0020D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\004\000\000\000\006\000\000\224 \000\226\224\128\000@\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000 \000\000\000\000\001\024\"\016`\000\014\002\000\014.\b\000\004\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\016\000\000\000\024\000\003\128\128\003\139\130\000\001\000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\176\128\"\193#~&=\000@|\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\0026\016\004X$o\196\199\160\b\015\128\000\000\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128(H\001(&+\000\016\012\128\000\148\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d \b\016\000J\t\139@\004\003@\000\001\004\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000 \000\000\000\000\002\000\000\000\000\000\017\130!\006\000\000\224 \000\226\224\128\000@\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\001\000\000\000\001\128\0008\b\0008\184 \000\016\000\000\000\000\000\000\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b0\000\007\001\000\007\023\004\000\002\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\b\000\000\000\012\000\001\192@\001\197\193\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000\000#a\000E\130F\252Lz\000\128\248\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\004l \b\176H\223\137\143@\016\031\000\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\030\164\139B`IS?X\012\128}\128\021\226\169\007C\016\143\192,\242\152\180\248\2006\b\001\146\203\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202@\020$\000\148\019\021\128\b\006@\000J\b\004l \b\176H\223\137\143@\016\031\000\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\141\132\001\022\t\027\2411\232\002\003\224\000\0001\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128(H\001(&+\000\016\012\128\000\148\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b8\000\007\001\000\007\023\004\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\006\000\000\224 \000\226\224\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\001\000\000\000\000\017\176\128\"\193#~&=\000@|\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000 \000\000\0000\000\007\001\000\007\023\004\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\000\000\141\132\001\022\t\027\2411\232\002\003\224\000\0001\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\017\176\128\"\193#~&=\000@|\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000F\b\128\024\000\003\128\128\003\139\130\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\004\000\000\000\000F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\002 D\b\216@\017`\145\191\019\030\128 >\000\000\003\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b2\016\004\b\000%\004\197\160\002\001\160\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\004\000\017\002!\006B\000\129\000\004\160\152\180\000@4\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\002 D \200@\016 \000\148\019\022\128\b\006\128\000\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000D\b\132\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000@\001\016\"\000d \b\016\000J\t\139@\004\003@\000\001\004\000\000\000\000\000\000\000\000\b\000\000\000\016\000D\b\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\000 @\018\012\000\012\128\025\128\000@\t\t\000E\000\016\"\t\006\003\006@\012\192 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\146\151p}\003\224\176p?\229\132\239\022\254p\2426\016\004X$o\196\199\160\b\015\128\000\000\199\004\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#a\000E\130F\252Lz\000\128\248\000\000\012p@\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\002\000\002\128\000\000\000\000\000\000\000\141\132\001\022\t\027\2411\232\002\003\224\000\0001\193\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000&\192\248\001\128@ \031\001\000@\001\176\192tl!h\176H\223\137\143@\016\031\000\000A\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\b\002,\0187\226c\208\004\007\192\000\000c\130\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\176\128\"\193#~&=\000@|\000\000\0068 \000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\132\001\016\t\001A1\200\000\000`\000\0001\129\171{w\175\244\190\171\159\239\254\216~\251o\255\223\000\000\000\000\000\000@\000P\000\000\000\000\000\000\000\017\176\128\"\193#~&=\000@|\000\000\0068 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r[\219\189\127\165\245|\255\127\246\195\247\219\127\254y\027\b\002,\0187\226c\208\004\007\192\000\000c\131RR\238\015\160|\022\014\007\252\176\157\226\223\206\030F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005on\245\254\151\213\243\253\255\219\015\223m\255\249\228l \b\176H\223\137\143@\016\031\000\000\001\142\rIK\184>\129\240X8\031\242\194w\139\1278y\027\b\002,\0187\226c\208\004\007\192\000\000c\130\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\213\189\187\215\250_W\207\247\255l?}\183\255\231\145\176\128\"\193#~&=\000@|\000\000\00685%.\224\250\007\193`\224\127\203\t\222-\252\225\224 \000\000\000\000\n\000\n\000\000\000\000\000\000\000\0026\016\004X$o\196\199\160\b\015\128\000\000\199\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\003V\246\239_\233}_?\223\253\176\253\246\223\255\158F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\212\148\187\131\232\031\005\131\129\255,'x\183\243\135\145\176\128\"\193#~&=\000@|\000\000\0068 \000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\026\183\183z\255K\234\249\254\255\237\135\239\182\255\252\2426\016\004X$o\196\199\160\b\015\128\000\000\199\006\164\165\220\031@\248,\028\015\249a;\197\191\156<\141\132\001\022\t\027\2411\232\002\003\224\000\0001\193\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\213\189\187\215\250_W\207\247\255l?}\183\255\231\145\176\128\"\193#~&=\000@|\000\000\00685%.\224\250\007\193`\224\127\203\t\222-\252\225\224\000\000\000\000\000\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\004\000\005\000\000\000\000\000\000\000\001\027\b\002,\0187\226c\208\004\007\192\000\000c\130\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\001\171{w\175\244\190\175\159\239\254\216~\251o\255\207#a\000E\130F\252Lz\000\128\248\000\000\012pjJ]\193\244\015\130\193\192\255\150\019\188[\249\195\200\216@\017`\145\191\019\030\128 >\000\000\003\028\016\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\r[\219\189\127\165\245|\255\127\246\195\247\219\127\254y\027\b\002,\0187\226c\208\004\007\192\000\000c\131RR\238\015\160|\022\014\007\252\176\157\226\223\206\030F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\128\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000j\222\221\235\253/\171\231\251\255\182\031\190\219\255\243\200\216@\017`\145\191\019\030\128 >\000\000\003\028\026\146\151p}\003\224\176p?\229\132\239\022\254p\253[\219\189\127\165\245|\255\127\246\195\247\219\127\254y\027\b\002,\0187\226c\208\004\007\192\000\000c\131RR\238\015\160|\022\014\007\252\176\157\226\223\206\031\171{w\175\244\190\171\159\239\254\216~\251o\255\223\213\189\187\215\250_U\207\247\255,?x\183\255\231\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\132\001\022\t\027\2411\232\002\003\224\000\0001\193\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\176\128\"\193#~&=\000@|\000\000\0068 \000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\017\176\128\"\193#~&=\000@|\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\029\012B?\000\179\202b\211\227 \216 \006K,\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000P\144\nPLV\000 \024\000\000( \001\128\0000\000\000(\184 \000\016\000\000\000\000\000\000@\000\000\000\002\004\000\000\000\b\000\000\000\000\000\004l \b\176H\223\137\143@\016\031\000\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\002\132\128R\130b\176\001\000\192\000\001A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128(H\005(&+\000\016\012\000\000\020\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\0026\016\004X$o\196\199\160\b\015\128\000\000\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\132\001\022\t\027\2411\232\002\003\224\004\0001\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005%.\224\250\007\193`\224\127\203\t\222-\252\225\224d \b\016\000J\t\139@\004\003@\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\212\148\187\131\232\031\005\131\129\255,'x\183\243\135\145\176\128\"\193#~&=\000@|\000\000\00685%.\224\250\007\193`\224\127\203\t\222-\252\225\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000D\b\129\027\b\002,\0187\226c\208\004\007\192\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b#a\000E\130F\252Lz\000\128\248\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200@\016 \000\148\019\022\128\b\006\000\000\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\t\bB \018\002\130c\144\000\000\192\000\000c\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\176\128\"\193#~&=\000@|\000\001\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\002@\015\128\024\004\002\001\240\016\132\000\027\004\006F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\016\000\130\003\224\006\001\000\128|\004!\000\006\195\001\129\144\128 @\0018&m\000\016\r\000\000\004\016\004\000\000\128\000\000\000\000\000\000\000\b\000\000\128\128\128d \b\016\000N\t\155@\004\003@\000\001\004\0002\016\004\b\000'\004\197\160\002\001\160\000\000\130\000\025\b\002\004\000\018\130b\208\001\000\208\000\000A\000\000\000\000\000\000\000\000\002\000\004\000\000\000\017\002 F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\016\000\130\003\224\006\001\000\128|\004!\000\006\195\003\128\000\000\000\000\000\000\000@\000\128\000\128\002 D\b\216@\017`\145\191\019\030\128 >\000\000\003\028\002\000\016@|\000\192 \016\015\128\132 \000\216`r6\016\004X$o\196\199\160\b\015\128\000\000\199\000\000\132\000\031\0000\b\004\003\224 \b@&\b\012\141\132\001\022\t\027\2411\232\002\003\224\000\0001\192 \001\004\007\192\012\002\001\000\248\bB\000\r\134\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000F\194\000\139\004\141\248\152\244\001\001\240\000\000\028\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\t\000>\000`\016\b\007\192B\016\000L0\024\128\000\000\000\000\000\000\000\000\000\001\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000F\194\004\139\004\141\248\152\244\001\001\240\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\t >\000`\016\b\007\192B\016\000L\016\024\128\000\016\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$ \b\128H\n\t\142@\000\003\000\000\001\140\004\000\000\000\000\000\000\000\000\000\006\000\000P\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\"\000\000\000\000\000\000\000\000\002\000\002@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\b\128\000\000\000\000\000\000\000\000\128\000\000\000 \000\004@\000\000\000\000\000\000\000\000\000\000\000\000\016 \000 \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\0000\000\002\128\000\000\000@\000\000\000\000\020\003\028\000\000\000\000\000\000\000\024\000\002 \000\000\000\000\000\000\012\000 \160$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\164\165\220\031@\248,\028\015\251a;\237\191\156<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\136\031\0000\b\004\003\224`\b\000&\b\014\000\000@\000\000\000\000\000\000\000 \000\000\000\000\001\000\000\000\000\000\000 \000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\146\003\224\006\001\000\128|\004!\000\004\193\001\136\000\001\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \001 \007\192\012\002\001\000\248\bB\000\t\134\003\016\000\000\000\000\000\000\000\000\000\000 \000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 @\b\000\000\b\b\016\000\000 \000\000\000\000\000\016 \004\000\000\004\004\000\000\000\016\000\000\000\000\000\000\000\000\000\000\002\000\004\000\b\000\000\000\000\000\000\141\132\001\022\t\027\2411\232\002\003\224\000\0001\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000\000@\000\000\000\128\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\004\000\000\016 \004\000\000\004\004\000\000\000\016\000\000\000\000\004$\001\020\000@\130$\028\000\025\0003\000\000\128\016\004\001\001\000\000AA\000\000\000\004\000\000\000\000\000\128\000\000\000\000\016\000\001\000\000\000\002\000\000\000\000\001\002\000@\000\000@@\000\000\001\000\000\000\000\000B@\017@\004\b\"A\192\001\144\0030\000\b\001\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\004l \b\176H\223\137\143@\016\031\000\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\128\000\128\001\128\000\000\016\000\000\000\000\001 \000\000\000\000@\000\192\000\000\b\000\000\000\000\000\144\000\000\000\000 \000 \000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\001\000\002\000\000\000\000@\000\003\000\000`\000\128QpP\000\"\000\000\000\000\000\001\128\0000\000\000(\184 \000\016\000\000\000\000\000!`(\160\002\006\005 \224\000\200\001\152\004\004 \128\000\000\000\000\020\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\128\0008\b\0008\184 \000\016\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000@\000\000\000`\000\014\002\000\014.\b\000\004\000\000\000\000\000\000\000\001\016\000\000\000\000\b\000\000@\000\000\000\000\128\000\000\136\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\001@ \001\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\000\000\000\000@\000\002\000\000\000\000\004\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\n\001\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\192\000\000\162\224\128\000@\000\000\000\000\000\133\128\162\128\b\024\020\131\128\003 \006`\016\016\130\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\024\000 \020\\\016\000\b\128\000\000\000\000\000`\000\012\000\000\n.\b\000\004\000\000\000\000\000\bX\n(\000\129\129H8\0002\000f\001\001\b \024\000\003\000\000\002\139\130\000\001\000\000\000\000\000\002\022\002\138\000 `R\014\000\012\128\025\128@B\t\011\001E\000\0160)\007\000\006@\012\192 !\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\192Q@\004\b\nA\192\001\144\0030\b\bA\000\192\000\024\000 \020\\\020\000\b\128\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000 \000\000\0000\000\006\000\b\005\023\005\000\002 \000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\012\000\001\128\000\001E\193\000\000\128\000\000\000\000\001\011\000E\000\016 )\007\000\006@\012\192 !\004\133\128\162\128\b\024\020\131\128\003 \006`\016\016\130\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\192\000\024\000\000\020\\\016\000\b\000\000\000\000\000\016\176\004P\001\002\002\144p\000d\000\204\002\002\016HX\n(\000\129\129H8\0002\000f\001\001\b \000\000\000\000\000\000\000\004\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200A\016 \000\156\0196\128\b\006\000\000\002\b\000d \136\016\000N\t\139@\004\003\000\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\002\004\000\019\130b\208\001\000\192\000\000A\002\018\000\138\000 @\018\012\000\012\128\025\128\000@\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\212\148\187\131\232\031\005\131\129\255,'x\183\243\135\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\002@\015\128\024\004\002\001\240\016\132\000\027\004\006 \000\000\000\000\000\000\000\000\000\000@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 @\128\016\016\000\016\016 \000\000@\000\000\000\000\000 @\b\000\000\b\b\016\000\000 \000\000\000\000\000\016 \004\000\000\004\004\000\000\000\016\000\000\000\000\000\000\000@\000\000\002\000\004\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\002\000\128\128\000 \160\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\004\000\000\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\000\000\000\000\000\000\000$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128 @\001(&-\000\016\r\000\000\004P5%.\224\250\007\193`\224\127\203\t\222-\252\225\240\000\017\000|\000\192 \016\015\128\128 \000\188 0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\001\001\000\000AA\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\b\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 @\016\016\000\004\020\016\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\128\000\000\128\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\001\001\000\000AA\000\000\000\004\000\000\000\000\000\128\000\016\000\000\016\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\"A\192\001\016\0030\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 @\b\000\000\b\b\016\000\000 \000\000\000\000\000\016 \004\000\000\004\004\000\000\000\016\000\000\000\000\004$\001\020\000@\130$\028\000\017\0003\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\b\000\128\000\000\001\000\000\000\000\000\000\000\000\001\000\000\000@\000\016\000\128\000\000\000\000\000\000\000\000\128\000\000\000\000\b\000@\000\000\000\000\000\000\000\000@\000\000\000\000\004\000\000\000\000\000\000\000\000\000\016\144\004P\001\002\000\144`\000D\000\236\000\002\000\000\016\004\004\000\001\005\004\000\000\000\016\000\000\000\000\006$\001\020\000@\192$\028\000\017\0003\000\000\128\002\018\000\138\000 @\018\012\000\b\128\025\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\004\000\000\000\000\000\128\000\000\000\000\000\000\000\001\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000 \000\004\000\bH\002(\000\129\000H0\000\"\000f\000\001\000$$\001\020\000@\128$\016\000\017\0003\000\000\128\016\012\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\001\000\000 \000B@\017@\004\b\002A\128\001\016\0030\000\b\001! \b\160\002\004\001 \128\000\136\001\152\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\b\000\001\000\002\018\000\138\000 @\018\012\000\b\128\025\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000}\246D\b/\241\180\000\t\131\129\2388\176\020\026\019\240\145j\197+~g=\001@\127\000\000\0308\000\200@\016 \000\148\019\022\128\b\006\128\000\002\b\002\000\000@\000\000\000\000\016\000\000\000\000\000\136\017\0026\016\004X$o\196\199\160\b\015\128\000\000\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\247\217\016 \191\198\208\000&\014\007\184\226\192PhO\194E\171\020\173\249\156\244\005\001\252\000\000x\224\001\002@@@\016P@\128\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\020\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\012\000\001\192@\001\197\193\000\000\128\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\002\000\000\000\003\000\000p\016\000qp@\000 \000\000\000\000\000B@\017@\004\b\130A\192\193\016\003\176\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\bH\018(\000\129\000H0\000\"\000f\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\000 @\018\012\000\b\128\025\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b\017\004\131\129\130 \007`\016\016\000\000\144\000\000 \000 \000`\000\000\004\000\000\000\000\000H\000\000\000\000\016\0000\000\000\002\000\000\000\000\000$\000\000\000\000\b\000\b\000\000\001\000\000\000\000\bH\002(\000\193\000H8\000\"\000v\000\003\000\000\t\000\000\000\000\002\000\002\000\000\000@\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\001\000\001\t\000E\000\016 \t\007\000\004@\012\194\000!\000\001\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000! \b\160\002\004\001 \224\000\136\001\152\000\004\000\016\144\004P\001\002\000\144`\000D\000\204\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\128$\028\000\017\0003\000\000\128\002\018\000\138\000 @\018\012\000\b\128\025\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\128\"\240\024\016q\242@\002 \006\000\000\016\000B@\017@\004\b\000A\000\001\000\0030\000\b\000\000@\000\000\016\000\000\000 \000\000\000\000\000\000\016\000 \000\000\b\000\000\000\016\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\000 A\002\012\000\b\000\025\132\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\016 \192\000\128\001\152@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\000@\004\000\000\000\b\000\000\000\000\000\000\000\000\b\000\000\002\000\000\128\004\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\002\000\000\000\000\000\000\000\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\132\128\"\128\b\016\000\131\000\002\000\007`\000\144\000\000\128 \000\b( \000\000\000\128\000\000\000\0001 \b\160\002\006\000 \224\000\128\001\152\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000@\000\000\000\000\b\000\000\000\000\000\000\000\000\024\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\004\000\002\128\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b A\128\001\000\0030\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\b\002\002\000\000\130\130\000\000\000\b\000\000\000\000\003\018\000\138\000 `\002\014\000\b\000\025\128\000@\t\t\000E\000\016 \001\004\000\004\000\012\192\000 \004\003\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000 \b\b\000\002\n\b\000\000\000 \000\000\000\000\012H\002(\000\129\128\b8\000 \000f\000\001\000$$\001\020\000@\128\004\016\000\016\0003\000\000\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\001\000\000 \000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\000 \192\000\128\001\152@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\004\004\000\001\005\004\000\000\000\016\000\000\000\000\006$\001\020\000@\192\004\028\000\016\0003\000\000\128\002\018\000\138\000 @\002\012\000\b\000\025\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\016\000\016\0000\000\000\002\000\000\000\000\000$\000\000\000\000\b\000\024\000\000\001\000\000\000\000\000\018\000\000\000\000\004\000\004\000\000\000\128\000\000\000\004$\001\020\000`\128\004\028\000\016\0003\000\001\128\000\"\000\000\001\000\000@\003\000\000\000\000\000\000\000\000\016\000\000\000\128\000 \001\128\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000\192\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000 \000\002H\000 \000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000$\128\002\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\000\004\000 \001D\004\000\000\000\000\000\000\000\004 \000\004\000\000\n\004\020\004\000\000\001\000\128\000\002\016\000\002\000\000\005\002\b\002\000\000\000\128@\000\000\006\000\000\224 \000\226\224\128\000@\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\000\000 \000\000@ \128 \000\000\b\004\000\000\001\000\000\000\000\004\002\000\016\000\000\000\000\000\000\000\000\128\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000`\000\014\002\000\014.\b\000\004\000\000\000\000\000\b@\000\b\000\000\016\b8\b\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000 \000\000@\002\000\000\000\000\000\000\000\000\016\000\000\016\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\012\000\001\192@\001\197\193\000\000\128\000\000\000\000\001\b\000\001\000\000\002\001\006\001\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000 \001\000\n `\000\000\000\000\000\000\000\000@\000\016\000\128\005\016\016\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\b\000\000\000\000\000\000\004\000\b\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\002\000\000\000\001\000\000@\002\000\020@@\000\000\000\000\000\000\000\001\128\0008\b\0008\184 \000\016\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\003\128\128\003\139\130\000\001\000\000\000\000\000\000\000\000\b\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\004\000\000\000\000\001\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \n\160\002\004A \224 \136\001\216\004\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\004\000\001\000\b\000Q\001\000\000\000\000\000\000\000\001\t\000U\000\016\"\t\007\001\004@\014\192 \004\132\000\000\128\000\001\000\131\128\128\000\000 \016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\028\004\000\028\\0\000\b\000\000\000\000\000\000`\000\014\002\000\014.\b\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000\000\000\000\024\000\003\128\128\003\139\130\000\001\000\000\000\000\000\002\016\000\002\000\000\004\002\014\006\000\000\000\128@\000\001\b\000\001\000\000\002\001\006\001\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b@\000\b\000\000\016\b0\b\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\b\000\001\000\000\002\001\004\001\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\002A\192\001\016\0030\000\b\001! \b\160\002\004\001 \128\000\136\001\152\000\004\000\129\000\000\000\000\000\002\000\024\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\001\000\000@\002\000\020@@\000\000\000\000\000\000\000B@\017@\004\b\002A\192\001\016\0030\000\b\001! \b\160\002\004\001 \128\000\136\001\152\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\006\000\000\000\000\000\000\000\000 \000\000\000\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\192\000\028\004\128\021\\\016\000\b\000\000\000\000\000\016\176\021P\001\003\002\016p\000D\000\236\000\006\000@0\000\006\000\000\005\023\004\000\002\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\012\000\001\192H\001U\193\000\000\128\000\000\000\000\000\006\000\000\224 \000\226\224\128\000@\000\000\000\001@\000\000\002\000\000\000\000\000\128\000\000\000\000\004\000\128\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\192\000\028\004\128\021\\\016\000\b\000\000\000\000\000\000`\000\012\000\000\n.\b\000\004\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\024\000\003\128\144\002\171\130\000\001\000\000\000\000\000\002\022\002\170\000 `B\014\000\b\128\029\128\000@\t\011\001U\000\0160!\007\000\004@\014\192\000 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\021@\004\b\000A\192\001\000\003\176\000\b\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\129\000\b0\000 \000f\000\001\000$$\001\020\000@\128\004\016\000\016\0003\000\000\128\016 \000\000\000\000\000@\003\000\000\000\000\000\000\000\000\016\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000`\000\014\002@\n\174\b\000\004\000\000\000\000\000\bH\002(\000\129\000\b0\000 \000f\000\001\000$$\001\020\000@\128\004\016\000\016\0003\000\000\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\000A\000\001\000\0030\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\000A\128\001\000\0030\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \b\b\b\002\n\b\016\000\000 \000\000\000\000\000\016\004\004\000\001\005\004\b\000\000\016\000\000\000\000\000\b\002\002\000\000\130\130\000\000\000\b\000\000\000\000\003\018\000\138\000 `\002\014\000\b\000\025\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b\016\000\130\000\002\000\006`\000\016\002\001\000\000\018@\001(\000@\b\000\000\000\000\000 \000\128\000\t \000\148\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\bH\002(\000\129\000H0\000\"\000v\001\001\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\000 @\018\012\000\b\128\025\128@@\t\t\000E\000\016 \t\004\000\004@\012\192\000 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\000 \128\000\128\001\152\000\004\000\128@\000\004\144\000J\000\016\002\000\000\000\000\000\b\000 \000\002H\000%\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\006@\000\240 \000\226\224\160\000@\016\004\000\001\000\003\000\002p\016\000qp@\000 \000\000\000\000\160\000\000\000\000\000P\b\000\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004-\001\020\000@\130$\026\000\017\000s\000\128\128\018\018\000\138\0000@\018\014\000\b\128\025\128@\194\t\t\000E\000\016 \t\007\000\004@\012\192 !\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\002A\128\001\016\0030\b\bA\000H\000\000\000\000\016\000\016\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\128\004\024\000\016\0003\000\128\128\018\018\000\138\000 @\002\b\000\b\000\025\128\000@\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\001 \224\000\136\001\216\004\004\000\128$\000\001\000\000\b\000\n\000\000\001\000@\000\016\000\018\000\000\000\000\004\000\005\000\000\000\128 \000\b\000\000\000\000\000\005\000\128\000\000\000\016\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\003\004\001 \224\000\136\001\152\004\012 \144\144\004P\001\002\000\144p\000D\000\204\002\002\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\128\000\000\000\016\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000@\000\000\000\000\000\000\000\002 \000\000\016\000\004\0000\000\000\000\000\000\000\000\001\000\000\000\000\000\002\000\024\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\006R\000\161 \004\160\152\172\000@2\000\000P@\131!\136G\224\022yLZ|d\027\004\000\201e\128\128\000 \001\000* \000\000 \000\000\000\000!\000\000 \000\000P \160`\000\000\b\004\000\000\016\128\000\016\000\000(\016@0\000\000\004\002\000\000\b@\000\b\000\000\016\b \024\000\000\002\001\000\000\000@\000\000\000\001\000\128\004\000\000\000\000\000\000\002\000\000\000\000\000\000\128@\002\000\000\000\000\000\000\000\000\000\000\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000H\000\004l \b\176H\223\137\143@\016\031\000\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\141\132\001\022\t\027\2411\232\002\003\224\000\0001\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\000\000\128\000\001\000\131\001\128\000\000 \016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\b\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\128\0008\b\0008\184 \000\016\000\000\000\000\000!\000\000 \000\000@ \224`\000\000\b\004\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\018\000\001\027\b\002,\0187\226c\208\004\007\192\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000#a\000E\130F\252Lz\000\128\248\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\002\000\000\004\000 \000\000\000\000\000\000\016\000\000\000\001\000\000\002\000\016\000\000\000\000\000\000\000\000\000\000\000\128\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\006R\000\161 \004\160\152\172\000@2\000\000P@\003\128\000p\016\000qp@\000 \000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000`\000\014\002\000\014.\b\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000\000\000\001\027\b\002,\0187\226c\208\004\007\192\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000#a\000E\130F\252Lz\000\128\248\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\128\000\016\000\000 \016`0\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000@\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000 \000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\0000\000\007\001\000\007\023\004\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\006R\000\161 \004\160\152\172\000@2\000\000P@\003\128\000p\016\000qp@\000 \000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000`\000\014\002\000\014.\b\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000\000\000\001\027\b\002,\0187\226c\208\004\007\192\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000#a\000E\130F\252Lz\000\128\248\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004l \b\176H\223\137\159@\016\031\000\000\001\142\0026\016\004X$o\196\199\160\b\015\128\000\000\199\004 \000\004\000\000\b\004\024\012\000\000\001\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\128\004\000\168\129\128\000\000\128\000\000\000\128\001\000\000@\002\000T@\192\000\000@\000\000\000\000\000\128\000 \001\000* \000\000 \000\000\000\000\000@\000\016\000\128\021\016\016\000\000\016\000\000\000\000\000d \136\025\000N\t\155@\004\003\000\000\001\004\007\223d@\130\255\027@\000\1528\030\227\139\001A\160\025\b\"\004\000\019\130f\208\001\000\192\000\000A\000\012\132\017\002\000\t\1931h\000\128`\000\000 \128\006B\000\129\000\004\224\152\180\000@0\000\000\016@\000\000\000\000\000\000\000\001\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000 \000\000\000\000\000\000\016\000 \000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\004\000\001\000\b\001Q\001\000\000\001\000\000\000\000\000\006\000\000\224 \000\226\224\128\000@\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\004\000\000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e \n\018\000J\t\154\192\004\003\000\000\001\004\0002\144\005\t\000%\004\197`\002\001\128\000\000\130\000\025H\002\132\128R\130b\176\001\000\192\000\000A\000\004\000\001\000\b\001Q\001\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\001\000\000@\002\000T@@\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!jJ\181\006\148U3\253\224\136\007\152\004\015\026\144\181%Z\131J*\153\254\240D\003\204\002\007\141@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001T\000@\136$\028\012\017\0003\000\129\128P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128*\128\b\017\004\131\129\130 \006`\0160\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\144\005P\001\002 \144p0D\000\204\002\006\001@\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\004\000\001\000\b\001Q\001\000\000\001\000\000\000\000\001\t\000U\000\016\"\t\007\003\004@\012\192 `\020\003!\004@\128\002pLZ\000 \024\000\000\b \001\144\128 @\0018&-\000\016\012\000\000\004\016\000\000\000\000\000\000\000\000@\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\128\000\000\000\000\b\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\224$\000\170\224\128\000@\000\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\128\000\016\000\000 \016p0\000\000\004\002\000\001\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\016\000\002\000\000\004\002\012\006\000\000\000\128@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000@\002\000T@@\000\000@\000\000\000\000B\000\000@\000\000\128A\192\192\000\000\016\b\000\004!\000\000 \000\000@ \192`\000\000\b\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\007\001\000\007\023\012\000\002\000\000\000\000\000\000\024\000\003\128\128\003\139\130\000\001\000\000\000\000\000\002\016\000\002\000\000\004\002\012\006\000\000\000\128@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\128\000\016\000\000 \016`0\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\016\000\002\000\000\004\002\b\006\000\000\000\128@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b\016\004\131\128\002 \006`\000\016\002\001\128\0008\t\000*\184 \000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000 \000\b\000@\n\136\b\000\000\b\000\000\000\000\bH\002(\000\129\000H8\000\"\000f\000\001\000 \025H\002\132\128\018\130b\176\001\000\200\000\001A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000E\000\016 \t\006\000\004@\012\192\000 \004\132\128\"\128\b\016\004\130\000\002 \006`\000\016\002\004\000\000\000\000\000\b\000`\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\025H\002\132\128\018\130b\176\001\000\200\000\001A\002\018\000\138\000 @\018\012\000\b\128\025\128\000@\t\t\000E\000\016 \t\004\000\004@\012\192\000 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\144\004P\001\002\000\144@\000@\000\204\000\002\000\0002\016D\012\000'\004\205\160\002\001\128\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\144\004P\001\002\000\144@\000D\000\204\000\002\000HH\002(\000\129\000H0\000\"\000f\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\b\001\001\000\001\001\002\000\000\004\000\000\000\000\000\002\004\000\128\000\000\128\129\000\000\002\000\000\000\000\000\001\002\000@\000\000@@\000\000\001\000\000\000\000\000B@\017@\004\b\"A\192\001\016\0030\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\144\004P\001\002\000\144@\000D\000\204\000\002\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b\016\004\131\000\002\000\006`\000\016\000B@\017@\004\b\002A\000\001\000\0030\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\128$\016\000\025\0003\000\000\128\016\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\001 \192\000\128\001\152\000\004\000\016\144\004P\001\002\000\144@\000@\000\204\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000b@\021@\004\012\"A\192\001\016\003\176\000\136\0010\000\002\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\004\000\000\000\000\000#\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\224 \000\226\224\128\000@\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\000\000 \000\000@ \128`\000\000\b\004\000\000\016\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006B\000\129\000\004\160\152\180\000@4\000\000\017@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000jJ]\193\244\015\130\193\192\255\150\019\188[\249\195\192\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000 \000\001\000\001\000\000\000 \000\000\002\000\002@\000\000\000\000\128\000\128\000\000\016\000\000\001\000\001 \000\000\000\000@\000@\000\000\b\000\000\000\000B@\017@\006\b\002A\192\001\016\003\176\000\024@\000H\000\000\000\000\016\000\016\000\000\002\000\000\000\000\016\144\004P\001\002\000\144p\000D\000\204\000\002\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\128$\024\000\017\0003\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000`\128$\028\000\017\000;\000\001\132\000\004\128\000\000\000\001\000\001\000\000\000 \000\000\000\001\t\000E\000\016 \t\007\000\004@\012\192\000!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000! \b\160\130\004\001 \192\000\136\001\216\004\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\129\000H0\000\"\000f\001\001\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\016\000\000\128\000\128\000\000\016\000\000\001\000\001 \000\000\000\000@\000@\000\000\b\000\000\000\128B@\017@\004\b\002A\128\001\016\0030\000\b@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128\000\000\000\128\000\000\001 \000\000\001\000\000\012\000\001\192@\001\197\193\000\000\128\000\000\000\000\000\000\000 \000\000\000\000\001\000\000\b\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\004\000\000\000\000\000\001\128\0000\000\000(\184`\000\018\000\001\000\000\000\000\192\000\024\000\000\020\\\016\000\t\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128\000\000\000\128\000\000\001 \000\000\000\000\000\012\000\001\128\000\001E\193\000\000\144\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000 \000\000\0000\000\007\001\000\007\023\004\000\002\000\000\000\000\000\000\000\000@\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\006\000\000\224 \000\226\224\128\000@\000\000\000\000\000\003\000\000`\000\000Qp@\000 \000\000\000\000\000b@\029\192\004\012\130A\192\193\018\003\176\n\136E\177 \014\224\002\006A \224`\137\001\216\005D\"\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\006\000\000\005\023\004\000\002\000\000\000\000\000\000\024\000\003\128\128\131\139\130\000\001\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\004\000\000\000\006\000\000\224 \000\226\224\128\000@\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\192\000\028\004\000\028\\\016\000\b\000\000\000\000\000\000`\000\012\000\000\n.\b\000\004\000\000\000\000\000\012H\003\184\000\129\144H8\024\"@v\001Q\b\182$\001\220\000@\200$\028\012\017 ;\000\168\132X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\003\000\000p\016\000qp@\000 \000\000\000\000\000\001\128\0000\000\000(\184 \000\016\000\000\000\000\0001 \014\224\002\006A \224`\137\001\216\005D\"\216\144\007p\001\003 \144p0D\128\236\002\162\017`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\012\000\001\192@\001\197\193\000\000\128\000\000\000\000\000\006\000\000\192\000\000\162\224\128\000@\000\000\000\000\000\196\128;\128\b\025\004\131\129\130$\007`\021\016\139b@\029\192\004\012\130A\192\193\018\003\176\n\136E\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000 \000\000\0000\000\007\001\000\007\023\004\000\002\000\000\000\000\000\000\000\000@\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\006\000\000\224 \000\226\224\128\000@\000\000\000\000\000\003\000\000`\000\000Qp@\000 \000\000\000\000\000b@\029\192\004\012\130A\192\193\018\003\176\n\136E\177 \014\224\002\006A \224`\137\001\216\005D\"\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\b\000\000\000\012\000\001\192@\001\197\193\000\000\128\000\000\000\000\000\000\000\016\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\001\128\0008\b\0008\184 \000\016\000\000\000\000\000\000\192\000\024\000\000\020\\\016\000\b\000\000\000\000\000\024\144\007p\001\003 \144p0D\128\236\002\162\017lH\003\184\000\129\144H8\024\"@v\001Q\b\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\128@\000\000\000\b\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\001 \224\000\136\001\152\004\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\000\003\192\128\003\139\130\128\001\000@\016\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000E\000\016 \001\006\000\004\000\012\192 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\002\000\000\016\000\016\000\000\002\000\000\000 \000$\000\000\000\000\b\000\b\000\000\001\000\000\000\016\bH\002(\000\129\000\b0\000 \000f\000\001\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000! \b\160\130\004\000 \192\000\128\001\216\004$\000\128d\000\015\002\000\014.\n\000\004\001\000@\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\128\004\024\000\016\0003\000\128\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\b\000\000@\000@\000\000\b\000\000\000\128\000\144\000\000\000\000 \000 \000\000\004\000\000\000@! \b\160\002\004\000 \192\000\128\001\152\000\004 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000\000\016\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\002A\128\001\016\0030\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\b\002,\0187\226c\208\004\007\192\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\001\004\000@\128\004\016\000\016\0002\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000(\000 \000\000\004\000\000\000\000 \000\"\001\248\005\130@\000\031\017\000A\0000Q`\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\002\000\000\000\001\000\000\000\000\000P\000\000\000\000\000\000\000\000\000@\000@\003\240\011\004\128\000>\"\000\130\000`\162\192\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000\000\b\000\b\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\224 \000\226\224\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004l \b\176H\223\137\143@\016\031\000\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\128\000\000\128\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000@\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \b\b\000\002\n\b\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000@\000\004\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d \b\016\000J\t\139@\004\003@\000\001\004\000\000\000\000\000\000\000\000\b\000\000\000\004\000D\b\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\016\000\000\000\000\005\000\000\000\000\000\000\000\000\000\001?\t\006,R\183\230s\208\021\007\242\000\000\227\128\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\011BA\000\016 \169\004\004\004@\028\128\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\001\004\000@\128$\016\000\017\0002\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \b \002\004\001 \128\000\128\001\128\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\240\144b\197+~g=\001P\127 \000\0148\t\248H1b\149\1913\158\128\168?\144\000\007\028\000\144\004\016\001\002\000\144@\000D\000\200\000\002\000\000H\002\b\000\129\000H \000\"\000d\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000A\000\016 \t\006\000\004@\012\128\000 \000\004\128 \128\b\016\004\130\000\002 \006@\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\002\b\000\129\000H0\000\"\000d\000\001\000\000$\001\004\000@\128$\016\000\017\0002\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") + (129, "'\225 \197\138V\252\206z\002\128\254@\000\028p\017\176\128\"\225#~&}\000@|\000\000\0068\031}\145\002\011\252m\000\002`\224{\142,\005\006\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\175\235f\245\155W\252\206\255\146\161\254!\016<\240>\251\"\004\023\248\218\000\004\193\192\247\028X\n\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0026\016\004X$o\196\207\160\b\015\128\000\000\199\003\239\178 A\127\141\160\000L\028\015q\197\128\160\208\159\132\139V)[\2439\232\n\003\248\000\000\241\192\000\000\000\000\128\000\160\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000P\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000 \000 \001\248\005\130@\000\031\017\000A\000 Q`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000(\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000 \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000`\000\014\002\000\014.\b\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!`.\232\002\006U \224`\201\001\216EL\"\128\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\224 \226\224\128\000@\000\000\000\000\000\001\000@@@\016P@\128\000\001\000\000\000\000\000\000\128 \000\b( @\000\000\128\000\000\000\000\000@\016\016\000\004\020\016\000\000\000@\000\000\000\000\024\144\005P\001\003\b\144p\000D\000\236 2\000HH\002\b\000\129\000\b(\000 \000b\000\001\000\004$\001\004\000@\128\004\016\000\016\0001\000\000\128\000\012\000\000\147\004\t@\002\000@\000\000\000\000\001\000\006\000\000I\002\004\160\001\000 \000\000\000\000\000\128\003\000\000$\129\002P\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\002H\000%\000\000\001\000\000\000\000\000\004\000\016\000\001\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000I\000\004\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\016@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\004 \000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\173\255\246o\223\247\255\254N\159\249\136Ps\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\004\144\000@\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\002\000\004\000\000\000 \001\000\000\000\000\000\b\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000B@\017A\004\b\000A\128\001\000\003\176\bX\001! \b\160\002\004\000 \192\000\128\001\216\004$\000\128d\000\015\002\000\014.\n\000\004\001\000@\000\016\bH\002(\000\193\004H8\000\"\000f\017\003\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003 \000p\016\000qpP\000 \b\002\000\000\128\001\128\0048\b\b8\184 \000\016\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\012\000\000\n.\b\000\004\000\000\000\000\000\0000\000\007\001\001\007\023\004\000\002\000\000\000\000\000\000\b\004@\000\000@\128\004\000\001\000\000\000!\000@\012\000\001\128\000\001\197\193\000\000\128\000\000\000\000\000\006\000\000\224 \226\224\128\000@\000\000\000\000\000\003\000\000`\000\000Qp@\000$\000\002\000\000\000\001\128\0008\b\b8\184 \000\016\000\000\000\000\000\000\192\000\028\004\004\028\\\016\000\b\000\000\000\000\000\015\190\200\129\005\2546\128\0010p=\199\022\002\131B~\018-X\165o\204\231\160(\015\224\000\003\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000I\130\004\160\001\000 \000\000\000\000\000\128\003\000\000$\129\002P\000\128\016\000\000\000\000\000@\001\128\000\018@\129(\000\000\b\000\000\000\000\000 \000\192\000\t \000\148\000\000\004\000\000\000\000\000\016\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000\bH\002( \129\000H0\000\"\000v\001\003\000$$\001\020\000@\128$\024\000\017\000;\000\128\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000E\000\016 \t\006\000\004@\012\192 \004}\246D\b/\241\180\000\t\131\129\2388\176\020\026\019\240\145j\197+~g=\001@\127\000\000\0308\b\216@\017p\145\191\019>\128 >\000\000\003\028\004l \b\176H\223\137\159@\016\031\000\000\001\142\0026\016\004X$o\196\199\160\b\015\128\000\000\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\132\001\016\t\001A1\200\000\000`\000\0001\129\b\000\001\000\128\002\129\005\003\000\000\000@ \000\000\132\000\000\128\000\001@\130\129\128\000\000 \016\000\000B\000\000@\000\000\160A\000\192\000\000\016\b\000\000\000\200@\016 \000\148\019\022\128\b\006\128\000\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \200b\017\248\005\150S\022\159\025\006\193\0002Yp\000\001\000\000\000\000\000\000@\000\002\000\000\000\000\b0\000\000\004\000\000\000\b\000\000\000\000\000\000\000\000\024\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \b\b\000\002\n\b\000\000\000 \000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\004\b\001\000\000\001\001\002\000\000\004\000\000\000\000\000\002\004\000\128\000\000\128\128\000\000\002\000\000\000\000\000\167\225 \197\138V\252\206\250\002\128\254 \000\028pS\240\144b\197+~g=\001@\127\016\000\0148)\248H\177b\149\1913\158\128\160?\152\000\007\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\b\001\001\000\001\001\002\000\000\004\000\000\000\001\000\002\004\000\128\128\000\128\129\000\000\002\000\000\000\000\000\001\002\000@\000\000@@\128\000\001\000\000\000\000\000\000\129\000 \000\000 \000\000\000\128\000\000\000\000\001@\128\016\000\000\016\016\000\000\000@\000\000\000\000\004l \b\176H\223\137\159@\016\031\000\000\001\142\0026\016\004X$o\196\199\160\b\015\128\000\000\199\000\b\000\000\002\000\000\128\004\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\002\000\000\000\000\000\000\000\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000@\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\216@\017p\145\191\019>\128 >\000\000\003\028\004l \b\176H\223\137\159@\016\031\000\000\001\142\0026\016\004X$o\196\199\160\b\015\128\000\000\199\005\027\012B?\018\183\234c\211\230'\200 \006k\174\004\132!\016\t\001A1\200\000\000`\000\0001\128F\194\000\139\004\141\248\152\244\001\001\240\000\004\024\224#a\000E\130F\252Lz\000\128\248\000\000\012pj\222\221\235\253/\171\231\251\255\182\031\190\219\255\243\200\216@\017`\145\191\019\030\128 >\000\000\003\028\000d \b\016\000J\t\139@\004\003\000\000\001\004\0002\016\004\b\000%\004\197\160\002\001\160\000 \130\000\025\b\002\004\000\018\130b\208\001\000\208\000\000Q\000\012\132\t\002\000\tA1h\000\128h\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\136\000\000\000\000\000\000\000\000\b\000\001\000\000\012\000\001\192@\001\197\193\000\000\128\000\000\000\000\001\139\001w\000\0162)\007\003\004H\014\192*a\022\003\000\000`\000\000qp@\000 \000\000\000\000\000\001\128\0000\000\000(\184 \000\016\000\000\000\000\000\000\192\000\028\004\004\028\\\016\000\b\000\000\000\000\000\000`\000\014\002\000\014.\b\000\004\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\003\128\128\003\139\130\000\001\000\000\000\000\001\000\012\000\t\192@\001\197\193\000\000\128\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000p\016\000qp@\000 \000\000\000\000 \001\128\0008\b\0008\184 \000\016\000\000\000\000P\000@\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\016\000\000\004\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000p\016\000qp@\000 \000\000\000\000 \000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\144\007p\001\003 \144p0D\128\236\002\162\017`0\000\007\001\000\007\023\004\000\002\000\000\000\000\000\000\024\000\003\000\000\002\139\130\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\137\000w\000\0162\t\007\003\004H\014\192*!\022\003\000\000p\016\000qp@\000 \000\000\000\000\000\001\128\0000\000\000(\184 \000\016\000\000\000\000\0001 \014\224\002\006A \224`\137\001\216\005D\"\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012H\011\184\000\129\144H8\024\"@v\001Q\b\176\024\000\003\000\000\002\139\130\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\002\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\176\023p\001\003\"\144p0D\128\236\002\162\017`\016\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\197\128\187\128\b\025\020\131\129\130$\007`\021\016\139\001\128\0000\000\000(\184 \000\016\000\000\000\000\0001`.\224\002\006E \224`\137\001\216\005D\"\216\144\007p\001\003 \144p0D\128\236\002\162\017`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\003\000\000\003\139\130\000\001\000\000\000\000\000\000\012\000\001\192@A\197\193\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\004\000\000\000\128\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000@\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\003\128\128\003\139\130\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\001\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000b@\029\192\004\012\130A\192\193\018\003\176\n\136E\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\002\000\000\000\000\000\000\b\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000`\000\000Qp@\000 \000\000\000\000\000\000\128\000\000\000\000\b\000\000\000\016\000\000\000\016\000\000\192\000\024\000\000\020\\\016\000\b\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\001\000\000\000\000\000\000\012\000\001\192@\001\197\193\000\000\128\000\000\000\000\000\000\000\016\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\001\128\0008\b\0008\184 \000\016\000\000\000\000\000\000\192\000\024\000\000\020\\\016\000\b\000\000\000\000\000\024\144\007p\001\003 \144p0D\128\236\002\162\017lH\003\184\000\129\144H8\024\"@v\001Q\b\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\002 \000\000 @\002\000\000\128\000\000\016\128 \006\000\000\192\000\000\162\224\128\000@\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000 \000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\007\001\000\007\023\004\000\002\000\000\000\000\000\000\000\000@\000\000\000\000\004\000\000\000\000\000 \000\000\012\000\001\128\000\001E\193\000\000\128\000\000\000\000\000\006\000\000\224 \226\224\128\000@\000\000\000\000\000\000\000\000 \000\000@\000\000\000\000\000\001\000\000\000\001\128\0008\b\0008\184 \000\016\000\000\000\000\000\000\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\0000\000\007\001\000\007\023\004\000\002\000\000\000\000\000\000\024\000\003\000\000\002\139\130\000\001\000\000\000\000\000\003\018\000\238\000 d\018\014\006\b\144\029\128TB-\137\000w\000\0162\t\007\003\004H\014\192*!\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\192\000\028\004\000\028\\\016\000\b\000\000\000\000\000\000`\000\012\000\000\n.\b\000\004\000\000\000\000\000\012H\003\184\000\129\144H8\024\"@v\001Q\b\182$\001\220\000@\200$\028\012\017 ;\000\168\132X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\003\000\000p\016\000qp@\000 \000\000\000\000\000\001\128\0000\000\000(\184 \000\016\000\000\000\000\0001 \014\224\002\006A \224`\137\001\216\005D\"\216\144\007p\001\003 \144p0D\128\236\002\162\017`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006$\001\220\000@\200$\028\012\017 ;\000\168\132X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\014\002\000\014.\b\000\004\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000 \000\000\004\000\000 \000\000\000\004\000\012\000\001\192@\001\197\193\000\000\128\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000p\016\000qp@\000 \000\000\000\000\000\000\000\001\000\000\000\000\000@\000\002\000\000\000\000@\128\192\000\028\004\000\028\\\016\000\b\000\000\000\000\000\000\000\000@\000\000\000\000\016\000\000\128\000\000\000\017 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\004\000\000 \000\000\000\004H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\001\000\000\b\000\000\000\001\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000`\000\014\002\000\014.\b\000\004\000\000\000\000\004\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\004\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\128\000\000\000\000\000\002\000\000\000\003\000\000p\016\000qp@\000 \000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000`\000\014\002\000\014.\b\000\004\000\000\000\000\000\0000\000\006\000\000\005\023\004\000\002\000\000\000\000\000\006$\001\220\000@\200$\028\012\017 ;\000\168\132[\018\000\238\000 d\018\014\006\b\144\029\128TB,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\001\128\0008\b\0008\184 \000\016\000\000\000\000\000\000\192\000\024\000\000\020\\\016\000\b\000\000\000\000\000\024\144\007p\001\003 \144p0D\128\236\002\162\017lH\003\184\000\129\144H8\024\"@v\001Q\b\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\006\000\000\224 \000\226\224\128\000@\000\000\000\000\000\003\000\000`\000\000Qp@\000 \000\000\000\000\000b@\029\192\004\012\130A\192\193\018\003\176\n\136E\177 \014\224\002\006A \224`\137\001\216\005D\"\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\001\016\000\000\000\000\b\000\000\000\016\000\000\000\004\000\000\136\000\000\000\000\000\000\000\000\b\000\000\000\000\012\132\001\002\000\tA1h\000\128h\000\000 \128\006B\000\129\128\004\160\153\164\000@0\000\000\016@\003!\000@\128\002PL\210\000 \024\000\000\b \001\144\128 @\001(&)\000\016\012\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\153H\218\132\128R\130f\176\t\000\202\016;U@\000\004\000\002\000\b\000\000\b\000\000@\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\202F\212$\002\148\0197\128H\006\208A\218\170\000 \000\000\000\000\b\001\138\000\000\000\000\000\000\000\b2\016\132\b\000%\004\197\160\002\001\160\000\004\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000\129\128\004\160\153\180\000@4\000\000\016@\003!\000@\128\002PL\218\000 \026\000\000\b \001\144\128 @\001(&-\000\016\r\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\001\176\000\000\128\000\b\000\016\000\020\000f(\128\025\b\002\004\000\018\130b\208\001\000\208\000\000A\002@\000l\000\000 \000\002\000\004\000\005\000\025\138!\006B\000\129\000\004\160\152\180\000@4\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\r\128\000\004\000\000@\000\128\000\160\0031D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018d#h\016\001J\t\155@$\003h\000\205U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002L\132m\002\000)A3h\004\128m\000\025\170\161\007C\016\143\192,\178\152\180\248\2006\b\001\146\203\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\016\004\b\000%\004\197 \002\001\128\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\b\000\000\000\000\000\002\000\000\016\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\000\016\000\000\000\000\000\140\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\012\132\001\002\000\tA1h\000\128h\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\027\000\000\b\000\000\128\001\000\001@\006b\136A\128\0008\b\0008\184 \000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\012\132\001\002\000\tA1h\000\128h\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\027\000\000\b\000\000\128\001\000\001@\006b\136@\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\b\000\000\000\000\000\128\000\000\000\000\004@\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d H\016\000J\t\139@\004\003@\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\018\000\000\000\000\000\128\000\000\000\000\006B\136A\144\129 @\001(&-\000\016\r\000\001\005\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\001\016\000\000\000\000\b\000\000\000\000\000D\b\132\000\000\136\000\000\000\000\000\000\000\000\000\000\000\000\002\012\000\004\000\000\000@\000\000\000\000\000\000\000\000\001\000\000\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e \n\018\000J\t\154\192$\003 \000\141\021\128\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\002\000\000@\000\003\000\000p\016\000qp@\000 \000\000\000\000\000\000\000\000\016\000\000 \000\000\000\000\000\000\128\000\000\000\192\000\028\004\000\028\\\016\000\b\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000 \000\000\000\000\000\000\128\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\b\000\000\000\000\141\132\001\022\t\027\2411\232\002\003\224\000\0001\192\006B\b\129\144$\224\153\180\000@4\000\000\016@\001\002\000@@\000@@\128\000\001\000\000\000\000@\000\129\000 \000 @\000\000\128\000\000\000\000\000@\128\016\000\000\016\016 \000\000@\000\000\000\000\000 @\b\000\000\b\b\000\000\000 \000\000\000\000\000\000\000\000\000\000\004\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\012\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\128 \000\b( \000\000\000\128\000\000\000\000\000@\016\016\000\004\020\016\000\000\000@\000\000\000\000\000\000\000\000\000\000\b\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\000\000\000\000\000\000\000\000\000\000\004\001\001\000\000AA\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\196\128*\128\b\024\004\131\128\002 \007`\001\016\002\000@\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\192\000\t \000\148\000\000\004\000\000\000\000\000\016\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\b\000\000\024\000\003\192\128\003\139\130\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\224 \000\226\224\128\000@\000\000\000\000\000\196\128*\128\b\024\004\131\128\002 \007`\001\016\n\001\128\0008\b\0008\184 \000\016\000\000\000\000\0001 \n\160\002\006\001 \224\000\136\001\216\004D\002\152\144\005P\001\003\000\144p\000D\000\236\002\"\000@0\000\007\001\000\007\023\004\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\000\000\012\000\001\192@\001\197\193\000\000\128\000\000\000\000\001\137\000U\000\0160\t\007\000\004@\014\192\" \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\016\000\000\016\004\004\000\001\005\004\000\000\000\016\000\000\000\000\006$\001T\000@\192$\028\000\017\000;\000\b\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\002\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000b@\021@\004\012\"A\192\001\016\003\176\128\200\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\001\001\000\000AA\000\000\000\004\000\000\000\000\001\137\000U\000\0160\t\007\000\004@\014\192\002 \004\001\000@@\000\016P@\000\000\001\000\000\000\000\000b@\021@\004\012\002A\192\001\016\003\176\000\136\001\000\000\000\000\000\000\000\000\000\000\000\000@@ \000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\012H\002\168\000\129\132H8\000\"\000v\016\017\000 \b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\137\000U\000\0160\137\007\000\004@\014\194\002 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000b@\021@\004\012\002A\192\001\016\003\176\000\136\001\000 \000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000 \000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\004\000\000\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\b\000\000\000\000\000\000\000\000\000\000\016 \004\000\000\004\004\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\018\000\170\000 a\018\014\000\012\128\029\128\004\192\b\n\004\016\128\000\000\128\128\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\004\000\000\000 \000@\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\004\004\000\001\005\004\000\000\000\016\000\000\000\000\006\000\000@\000\000@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001 \n\160\002\006\017 \224\000\200\001\216@L\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\b\000\016\000\000\000\000\000\001\027\b\002,\0187\226c\208\004\007\192\000\000c\128\141\132\001\022\t\027\2411\232\002\003\224\000\0009\192F\194\004\139\004\141\248\152\244\001\001\240\000\000\024\224\000\000\000\000\000\000\016\000\000\000\b\000\000\000\000\000@\000\b\000\000\000\000\000\000\000\004\000\128\000\000\000\b\216@\017`\145\191\019\030\128 >\000\000\003\028\000$ \b\128H\n\t\142@\000\003\000\000\001\140\012\000\001\016\000\000\000\000\000\000\006\000\016P\018\000\001\027\b\002.\0187\226g\208\004\007\193\000\000c\128\141\132\001\022\t\027\2413\232\002\003\224\128\0001\192F\194\000\139\004\141\248\152\244\001\001\240@\000\024\224\001!\000DB@PL\242\000\000\024\000\000\012`\000\144\128\"\001 (&y\000\000\012\000\000\0060\000H@\017\000\144\020\019\028\128\000\006\000\000\003\024\000$ \b\128H\n\t\142@\000\003\000\000\001\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\213\189\187\215\250_U\207\247\255l?}\183\255\239\128\128\000\000\000\000(\0068\000\000\000\000\000\000\000(\216b\017\248\149\191S\030\1591>A\0003]`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n6\016\132X$o\196\199\160\b\015\128\000\000\199\005\027\bB,\0187\226c\208\004\007\192\000\000c\130\004\b\001\001\000\001\001\002\000\000\004\000\000\000\000\000\002\004\000\128\000\000\128\129\000\000\002\000\000\000\000\000\001\002\000@\000\000@@\000\000\001\000\000\000\000\000\000\000\000\000\000\000 \000@\000\000\000\000\000\016\000 @\016\016\000\004\020\016\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\128\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\141\132!\022\t\027\2411\232\002\003\224\000\0001\193F\194\016\139\004\141\248\152\244\001\001\240\000\000\024\224\131!\b@\128\002PLZ\000 \024\000\000\b \000\000\000\000\000\000\000\000@\000\000\000\128\0020D\000\192\000\028\004\000\028\\\016\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\000\0026\016\004X$o\196\199\160\b\015\128\000\000\199\001\027\b\002.\0187\226g\208\004\007\192\000\000c\128\141\132\001\022\t\027\2413\232\002\003\224\000\0001\192F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\003!\000@\192\002PL\218\000 \026\000\000\b\160\001\144\128 @\001(&m\000\016\r\000\000\004P\000\200@\016 \000\148\019\022\128\b\006\128\000\002(\000d \b\016\000J\t\139@\004\003@\000\001\004\001\000\000\000\000\000\128\000\b\000\000\000\000\000D\b\129\027\b\002,\0187\226c\208\004\007\192\000\000c\128\012\164\001C@\tA3X\000\128`\000\000 \128\006R\000\161 \004\160\153\172\000@0\000\000\016@\003)\000P\144\002PLV\000 \024\000\000\b \001\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d \b\016\000N\t\139@\004\003@\000\001\004\0002\016\004\b\000%\004\197\160\002\001\160\000\000\130\000\000\000@\000\000\000\000\004\000\000\000\b\000#\004@\012\000\001\192@\001\197\193\000\000\128\000\000\000\000\000\000\000\000@\000\000\128\000\000\000\000\000\002\000\000\000\003\000\000p\016\000qp@\000 \000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000 \000\000\000@\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016t1\b\252\002\207)\139O\140\131`\128\025,\176\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\n\000\000\000\000\000\000\000\004\000\000\016\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\001B@)A1X\000\128`\000\000\160\128F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\003!\000@\192\002PL\218\000 \026\000\000\b \001\144\128 @\001(&m\000\016\r\000\000\004\016\000\200@\016 \000\148\019\022\128\b\006\128\000\002\b\000\000\000\000\000\000\000\000\016\000\000\000 \000\136\017\0026\016\004X$o\196\199\160\b\015\128\000\000\199\000\t\b\002\"\018\002\130g\144\000\000\192\000\000c\000\004\132\001\016\t\001A3\200\000\000`\000\0001\128\002B\000\136\004\128\160\152\228\000\0000\000\000\024\192\212\148\187\131\232\031\005\131\129\255l'}\183\243\135\128\144\128\"\001 (&9\000\000\012\000\000\00605on\245\254\151\213s\253\255\219\015\223m\255\251\224\000\000\000\000\000\b\000\n\000\000\000\000\000\000\000\0026\016\004X$o\196\199\160\b\015\128\000\000\199\001\027\b\002,\0187\226c\208\004\007\192\000\000c\131V\246\239_\233}W?\223\253\176\253\246\223\255\158\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000 \192\000\028\004\000\028\\\016\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\001\144\000\000\000\000\b\000\000\000\016\000\000\000\004\024\000\003\128\128\003\139\130\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\0002\000\000\000\000\001\000\000\000\002\000\002\000\000\003\000\000p\016\000qp@\000 \000\000\000\000\000@\000\012\128\000\000\000\000@\000\000\000\128\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002B\000\136\004\128\160\152\228\000\0000\000\000\024\192\213\189\187\215\250_U\207\247\255l?}\183\255\239\128\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\n\000\n\000\000\000\000\000\000\000\0026\016\004X$o\196\199\160\b\015\128\000\000\199\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\212\148\187\131\232\031\005\131\129\255,'x\183\243\135\145\176\128\"\193#~&=\000@|\000\000\00685on\245\254\151\213s\253\255\219\015\223m\255\249\250\146\151p}\003\224\176p?\237\132\239\182\254p\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\002\017\176\128\"\193#~&=\000@|\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\146\151p}\003\224\176p?\229\132\239\022\254p\2426\016\004X$o\196\199\160\b\015\128\000\000\199\006\164\165\220\031@\248,\028\015\249a;\197\191\156<\141\132\001\022\t\027\2411\232\002\003\224\000\0001\193\169)w\007\208>\011\007\003\254XN\241o\231\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000j\222\221\235\253/\170\231\251\255\182\031\190\219\255\243\245%.\224\250\007\193`\224\127\219\t\223m\252\225\228l \b\176H\223\137\143@\016\031\000\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\191\173\222?R\255\238\127\223\253g\251\197\191\255\189\247\217\016 \191\198\208\000&\014\007\184\226\192PhF\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\216@\017`\145\191\019\030\128 >\000\000\003\028\026\146\151p}\003\224\176p?\229\132\239\022\254p\2426\016\004X$o\196\199\160\b\015\128\000\000\199\006\164\165\220\031@\248,\028\015\249a;\197\191\156<\141\132\001\022\t\027\2411\232\002\003\224\000\0001\193\169)w\007\208>\011\007\003\254XN\241o\231\015#a\000E\130F\252Lz\000\128\248\000\000\012pjJ]\193\244\015\130\193\192\255\150\019\188[\249\195\200\216@\017`\145\191\019\030\128 >\000\000\003\028\026\146\151p}\003\224\176p?\229\132\239\022\254p\2426\016\004X$o\196\199\160\b\015\128\000\000\199\006\164\165\220\031@\248,\028\015\249a;\197\191\156<\141\132\001\022\t\027\2411\232\002\003\224\000\0001\193\169)w\007\208>\011\007\003\254XN\241o\231\015#a\000E\130F\252Lz\000\128\248\000\000\012pjJ]\193\244\015\130\193\192\255\150\019\188[\249\195\200\216@\017`\145\191\019\030\128 >\000\000\003\028\026\146\151p}\003\224\176p?\229\132\239\022\254p\2426\016\004X$o\196\199\160\b\015\128\000\000\199\006\164\165\220\031@\248,\028\015\249a;\197\191\156<\141\132\001\022\t\027\2411\232\002\003\224\000\0001\193\169)w\007\208>\011\007\003\254XN\241o\231\015#a\000E\130F\252Lz\000\128\248\000\000\012pjJ]\193\244\015\130\193\192\255\150\019\188[\249\195\200\216@\017`\145\191\019\030\128 >\000\000\003\028\026\146\151p}\003\224\176p?\229\132\239\022\254p\2426\016\004X$o\196\199\160\b\015\128\000\000\199\006\164\165\220\031@\248,\028\015\249a;\197\191\156<\141\132\001\022\t\027\2411\232\002\003\224\000\0001\193\169)w\007\208>\011\007\003\254XN\241o\231\015#a\000E\130F\252Lz\000\128\248\000\000\012pjJ]\193\244\015\130\193\192\255\150\019\188[\249\195\200\216@\017`\145\191\019\030\128 >\000\000\003\028\026\146\151p}\003\224\176p?\229\132\239\022\254p\2426\016\004X$o\196\199\160\b\015\128\000\000\199\006\164\165\220\031@\248,\028\015\249a;\197\191\156<\141\132\001\022\t\027\2411\232\002\003\224\000\0001\193\169)w\007\208>\011\007\003\254XN\241o\231\015#a\000E\130F\252Lz\000\128\248\000\000\012pjJ]\193\244\015\130\193\192\255\150\019\188[\249\195\192\200@\016 \000\156\0196\128\b\006\000\000\002\b\000d \b\016\000N\t\139@\004\003\000\000\001\004\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\025H\002\132\128\018\130b\176\001\000\200\000\tA\002\014\134!\031\128Y\2291i\241\144l\016\003%\150\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000P\000\000\000\000\000\000\000 \000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000e \n\018\000J\t\138\192\004\003 \000%\004\b:\024\132~\001g\148\197\167\198A\176@\012\150X\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000 \000\000\001@\000\000\000\000\000\000\000\128\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128(H\001(&+\000\016\012\128\000\148\016\000\200@\016 \000\148\019\020\128\b\006\000\000\002\b\016d1\b\252\002\207)\139O\140\131`\128\025,\1762\016\004\b\000%\004\197\160\002\001\160\000\000\130\000\000\000@\000\000\000\000\004\000\000\000\000\000#\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\024\000\000\020\\\016\000\b\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\004\000\000\000\004\000\0000\000\006\000\000\005\023\004\000\002\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\128\000\000\000\000\000\002\000\000\000\003\000\000p\016\000qp@\000 \000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\000\016\000\000\000\000\000\140\017\b0\000\007\001\000\007\023\004\000\002\000\000\000\000\000\000\000\000\001\000\000\002\000\000\000\000\000\000\b\000\000\000\012\000\001\192@\001\197\193\000\000\128\000\000\000\000\000\000\000\016\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\216@\017`\145\191\019\030\128 >\000\000\003\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\001\027\b\002,\0187\226c\208\004\007\192\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128(H\001(&+\000\016\012\128\000\148\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\001B@\tA1X\000\128d\000\004\160\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000P\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d \b\016\000J\t\139@\004\003@\000\001\004\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000 \000\000\000\000\002\000\000\000\000\000\017\130!\006\000\000\224 \000\226\224\128\000@\000\000\000\000\000\000\000\000 \000\000@\000\000\000\000\000\001\000\000\000\001\128\0008\b\0008\184 \000\016\000\000\000\000\000\000\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\001B@\tA1X\000\128d\000\004\160\128F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\b\216@\017`\145\191\019\030\128 >\000\000\003\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\001B@\tA1X\000\128d\000\004\160\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\131\000\000p\016\000qp@\000 \000\000\000\000\000\000\000\000\016\000\000 \000\000\000\000\000\000\128\000\000\000\192\000\028\004\000\028\\\016\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\000\0026\016\004X$o\196\199\160\b\015\128\000\000\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\234H\180&\004\1493\245\128\200\007\216\001^*\144p\000\014\002\000\014.\b\000\004\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\012\000\001\192@\001\197\193\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000\000#a\000E\130F\252Lz\000\128\248\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\000\000@\000\000\000`\000\014\002\000\014.\b\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000\000\000\001\027\b\002,\0187\226c\208\004\007\192\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000#a\000E\130F\252Lz\000\128\248\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\140\017\0000\000\007\001\000\007\023\004\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\000\000\141\132\001\022\t\027\2411\232\002\003\224\000\0001\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\001\000\004@\136\017\176\128\"\193#~&=\000@|\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016d \b\016\000J\t\139@\004\003@\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\"\004B\012\132\001\002\000\tA1h\000\128h\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\001\000\004@\136A\144\128 @\001(&-\000\016\r\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\136\017\b\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\002 D\000\200@\016 \000\148\019\022\128\b\006\128\000\002\b\000\000\000\000\000\000\000\000\016\000\000\000 \000\136\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\128$\024\000\025\0003\000\000\128\018\018\000\138\000 D\018\012\006\012\128\025\128@@\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005%.\224\250\007\193`\224\127\203\t\222-\252\225\228l \b\176H\223\137\143@\016\031\000\000\001\142\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\128\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\004\000\005\000\000\000\000\000\000\000\001\027\b\002,\0187\226c\208\004\007\192\000\000c\130\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000M\129\240\003\000\128@>\002\000\128\003a\128\232\216B\209`\145\191\019\030\128 >\000\000\131\156\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0026\016\004X$o\196\199\160\b\015\128\000\000\199\004\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#a\000E\130F\252Lz\000\128\248\000\000\012p@\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\b\002 \018\002\130c\144\000\000\192\000\000c\003V\246\239_\233}W?\223\253\176\253\246\223\255\190\000\000\000\000\000\000\128\000\160\000\000\000\000\000\000\000#a\000E\130F\252Lz\000\128\248\000\000\012p@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\183\183z\255K\234\249\254\255\237\135\239\182\255\252\2426\016\004X$o\196\199\160\b\015\128\000\000\199\006\164\165\220\031@\248,\028\015\249a;\197\191\156<\141\132\001\022\t\027\2411\232\002\003\224\000\0001\193\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000j\222\221\235\253/\171\231\251\255\182\031\190\219\255\243\200\216@\017`\145\191\019\030\128 >\000\000\003\028\026\146\151p}\003\224\176p?\229\132\239\022\254p\2426\016\004X$o\196\199\160\b\015\128\000\000\199\004\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\171{w\175\244\190\175\159\239\254\216~\251o\255\207#a\000E\130F\252Lz\000\128\248\000\000\012pjJ]\193\244\015\130\193\192\255\150\019\188[\249\195\192@\000\000\000\000\020\000\020\000\000\000\000\000\000\000\004l \b\176H\223\137\143@\016\031\000\000\001\142\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\006\173\237\222\191\210\250\190\127\191\251a\251\237\191\255<\141\132\001\022\t\027\2411\232\002\003\224\000\0001\193\169)w\007\208>\011\007\003\254XN\241o\231\015#a\000E\130F\252Lz\000\128\248\000\000\012p@\000\001\000\000\000\000\000\000\000\000\000\000\000\000\0005on\245\254\151\213\243\253\255\219\015\223m\255\249\228l \b\176H\223\137\143@\016\031\000\000\001\142\rIK\184>\129\240X8\031\242\194w\139\1278y\027\b\002,\0187\226c\208\004\007\192\000\000c\130\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\001\171{w\175\244\190\175\159\239\254\216~\251o\255\207#a\000E\130F\252Lz\000\128\248\000\000\012pjJ]\193\244\015\130\193\192\255\150\019\188[\249\195\192\000\000\000\000\000\000\000\000\000\000\000\001@\000\000\000\000\000\000\000\000\b\000\n\000\000\000\000\000\000\000\0026\016\004X$o\196\199\160\b\015\128\000\000\199\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\003V\246\239_\233}_?\223\253\176\253\246\223\255\158F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\212\148\187\131\232\031\005\131\129\255,'x\183\243\135\145\176\128\"\193#~&=\000@|\000\000\0068 \000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\026\183\183z\255K\234\249\254\255\237\135\239\182\255\252\2426\016\004X$o\196\199\160\b\015\128\000\000\199\006\164\165\220\031@\248,\028\015\249a;\197\191\156<\141\132\001\022\t\027\2411\232\002\003\224\000\0001\193\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\213\189\187\215\250_W\207\247\255l?}\183\255\231\145\176\128\"\193#~&=\000@|\000\000\00685%.\224\250\007\193`\224\127\203\t\222-\252\225\250\183\183z\255K\234\249\254\255\237\135\239\182\255\252\2426\016\004X$o\196\199\160\b\015\128\000\000\199\006\164\165\220\031@\248,\028\015\249a;\197\191\156?V\246\239_\233}W?\223\253\176\253\246\223\255\191\171{w\175\244\190\171\159\239\254X~\241o\255\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\b\002,\0187\226c\208\004\007\192\000\000c\130\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#a\000E\130F\252Lz\000\128\248\000\000\012p@\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\132\001\022\t\027\2411\232\002\003\224\000\0001\192\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000#a\000E\130F\252Lz\000\128\248\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b:\024\132~\001g\148\197\167\198A\176@\012\150X\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000 \000\000\001@\000\000\000\000\000\000\000\128\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128(H\005(&+\000\016\012\000\000\020\016\000\192\000\024\000\000\020\\\016\000\b\000\000\000\000\000\000 \000\000\000\001\002\000\000\000\004\000\000\000\000\000\0026\016\004X$o\196\199\160\b\015\128\000\000\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\001B@)A1X\000\128`\000\000\160\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202@\020$\002\148\019\021\128\b\006\000\000\n\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\001B@)A1X\000\128`\000\000\160\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000P\144\nPLV\000 \024\000\000( \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\004l \b\176H\223\137\143@\016\031\000\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\b\002,\0187\226c\208\004\007\192\b\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000jJ]\193\244\015\130\193\192\255\150\019\188[\249\195\192\200@\016 \000\148\019\022\128\b\006\128\000\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\132\001\022\t\027\2411\232\002\003\224\000\0001\193\169)w\007\208>\011\007\003\254XN\241o\231\015#a\000E\130F\252Lz\000\128\248\000\000\012pjJ]\193\244\015\130\193\192\255\150\019\188[\249\195\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\136\017\0026\016\004X$o\196\199\160\b\015\128\000\000\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128 @\001(&-\000\016\012\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\018\016\132@$\005\004\199 \000\001\128\000\000\198\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#a\000E\130F\252Lz\000\128\248\000\002\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\004\128\031\0000\b\004\003\224!\b\0006\b\012\141\132\001\022\t\027\2411\232\002\003\224\000\0001\192 \001\004\007\192\012\002\001\000\248\bB\000\r\134\003\003!\000@\128\002pL\218\000 \026\000\000\b \b\000\001\000\000\000\000\000\000\000\000\016\000\001\001\001\000\200@\016 \000\156\0196\128\b\006\128\000\002\b\000d \b\016\000N\t\139@\004\003@\000\001\004\0002\016\004\b\000%\004\197\160\002\001\160\000\000\130\000\000\000\000\000\000\000\000\004\000\b\000\000\000\"\004@\141\132\001\022\t\027\2411\232\002\003\224\000\0001\192 \001\004\007\192\012\002\001\000\248\bB\000\r\134\007\000\000\000\000\000\000\000\000\128\001\000\001\000\004@\136\017\176\128\"\193#~&=\000@|\000\000\0068\004\000 \128\248\001\128@ \031\001\b@\001\176\192\228l \b\176H\223\137\143@\016\031\000\000\001\142\000\001\b\000>\000`\016\b\007\192@\016\128L\016\025\027\b\002,\0187\226c\208\004\007\192\000\000c\128@\002\b\015\128\024\004\002\001\240\016\132\000\027\012\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\132\001\022\t\027\2411\232\002\003\224\000\0009\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\018\000|\000\192 \016\015\128\132 \000\152`1\000\000\000\000\000\000\000\000\000\000\002\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\132\t\022\t\027\2411\232\002\003\224\000\0001\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\018@|\000\192 \016\015\128\132 \000\152 1\000\000 \000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H@\017\000\144\020\019\028\128\000\006\000\000\003\024\b\000\000\000\000\000\000\000\000\000\012\000\000\160\000\000\000\016\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000D\000\000\000\000\000\000\000\000\004\000\004\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\017\000\000\000\000\000\000\000\000\001\000\000\000\000@\000\b\128\000\000\000\000\000\000\000\000\000\000\000\000 @\000@\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000`\000\005\000\000\000\000\128\000\000\000\000(\0068\000\000\000\000\000\000\0000\000\004@\000\000\000\000\000\000\024\000A@H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rIK\184>\129\240X8\031\246\194w\219\1278x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\t\016>\000`\016\b\007\192\192\016\000L\016\028\000\000\128\000\000\000\000\000\000\000@\000\000\000\000\002\000\000\000\000\000\000@\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \001$\007\192\012\002\001\000\248\bB\000\t\130\003\016\000\002\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\002@\015\128\024\004\002\001\240\016\132\000\019\012\006 \000\000\000\000\000\000\000\000\000\000@\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\128\016\000\000\016\016 \000\000@\000\000\000\000\000 @\b\000\000\b\b\000\000\000 \000\000\000\000\000\000\000\000\000\000\004\000\b\000\016\000\000\000\000\000\001\027\b\002,\0187\226c\208\004\007\192\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\128\000\000\001\000\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000\b\000\000 @\b\000\000\b\b\000\000\000 \000\000\000\000\bH\002(\000\129\004H8\0002\000f\000\001\000 \b\002\002\000\000\130\130\000\000\000\b\000\000\000\000\001\000\000\000\000\000 \000\002\000\000\000\004\000\000\000\000\002\004\000\128\000\000\128\128\000\000\002\000\000\000\000\000\132\128\"\128\b\016D\131\128\003 \006`\000\016\002\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\b\216@\017`\145\191\019\030\128 >\000\000\003\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\001\000\001\000\003\000\000\000 \000\000\000\000\002@\000\000\000\000\128\001\128\000\000\016\000\000\000\000\001 \000\000\000\000@\000@\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\002\000\004\000\000\000\000\128\000\006\000\000\192\001\000\162\224\160\000D\000\000\000\000\000\003\000\000`\000\000Qp@\000 \000\000\000\000\000B\192Q@\004\012\nA\192\001\144\0030\b\bA\000\000\000\000\000(\004\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\003\000\000p\016\000qp@\000 \000\000\000\000\000\000\000\000\016\000\000 \000\000\000\000\000\000\128\000\000\000\192\000\028\004\000\028\\\016\000\b\000\000\000\000\000\000\000\002 \000\000\000\000\016\000\000\128\000\000\000\001\000\000\001\016\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\002\128@\002\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\000\000\000\000\128\000\004\000\000\000\000\b\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\020\002\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\001\128\000\001E\193\000\000\128\000\000\000\000\001\011\001E\000\0160)\007\000\006@\012\192 !\004\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\0000\000@(\184 \000\017\000\000\000\000\000\000\192\000\024\000\000\020\\\016\000\b\000\000\000\000\000\016\176\020P\001\003\002\144p\000d\000\204\002\002\016@0\000\006\000\000\005\023\004\000\002\000\000\000\000\000\004,\005\020\000@\192\164\028\000\025\0003\000\128\132\018\022\002\138\000 `R\014\000\012\128\025\128@B\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\133\128\162\128\b\016\020\131\128\003 \006`\016\016\130\001\128\0000\000@(\184(\000\017\000\000\000\000\000\000\192\000\028\004\004\028\\\016\000\b\000\000\000\000\000\000 \017\000\000\001\002\000\016\000\004\000\000\000\132\001\0000\000\006\000\000\005\023\004\000\002\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\002\022\002\238\128 eR\014\006\012\144\029\132T\194(\000\000\000@\000\000\128\000\000\000\000\000\002\000\000\000\003\000\000`\000\128QpP\000\"\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\192\000\024\000\000\020\\\016\000\b\000\000\000\000\000\016\176\004P\001\002\002\144p\000d\000\204\002\002\016HX\n(\000\129\129H8\0002\000f\001\001\b \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\012\000\001\128\000\001E\193\000\000\128\000\000\000\000\001\011\000E\000\016 )\007\000\006@\012\192 !\004\133\128\162\128\b\024\020\131\128\003 \006`\016\016\130\000\000\000\000\000\000\000\000@\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\004l \b\176H\223\137\143@\016\031\000\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\132\017\002\000\t\1933h\000\128`\000\000 \128\006B\b\129\000\004\224\152\180\000@0\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128 @\0018&-\000\016\012\000\000\004\016! \b\160\002\004\001 \192\000\200\001\152\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rIK\184>\129\240X8\031\242\194w\139\1278x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000$\000\248\001\128@ \031\001\b@\001\176@b\000\000\000\000\000\000\000\000\000\000\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\b\001\001\000\001\001\002\000\000\004\000\000\000\000\000\002\004\000\128\000\000\128\129\000\000\002\000\000\000\000\000\001\002\000@\000\000@@\000\000\001\000\000\000\000\000\000\000\004\000\000\000 \000@\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016 \b\b\000\002\n\b\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000@\000\000@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\002\004\000\018\130b\208\001\000\208\000\000E\003RR\238\015\160|\022\014\007\252\176\157\226\223\206\031\000\001\016\007\192\012\002\001\000\248\b\002\000\011\194\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 @\016\016\000\004\020\016\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\128\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\001\001\000\000AA\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\b\000\000\b\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\016\016\000\004\020\016\000\000\000@\000\000\000\000\b\000\001\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\130$\028\000\017\0003\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\128\000\000\128\129\000\000\002\000\000\000\000\000\001\002\000@\000\000@@\000\000\001\000\000\000\000\000B@\017@\004\b\"A\192\001\016\0030\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000p\000\128\b\000\000\000\016\000\000\000\000\000\000\000\000\016\000\000\004\000\001\000\b\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\004\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\001\t\000E\000\016 \t\006\000\004@\014\192\000 \000\001\000@@\000\016P@\000\000\001\000\000\000\000\000b@\017@\004\012\002A\192\001\016\0030\000\b\000! \b\160\002\004\001 \192\000\136\001\152\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000@\000\000\000\000\b\000\000\000\000\000\000\000\000\024\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000@\000\132\128\"\128\b\016\004\131\000\002 \006`\000\016\002B@\017@\004\b\002A\000\001\016\0030\000\b\001\000\192\000\000\000\000\000\000 \000\000\000\000\000\000\000\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\002\000\004$\001\020\000@\128$\024\000\017\0003\000\000\128\018\018\000\138\000 @\018\b\000\b\128\025\128\000@\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\016\000! \b\160\002\004\001 \192\000\136\001\152\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\223d@\130\255\027@\000\1528\030\227\139\001A\161?\t\022\172R\183\230s\208\020\007\240\000\001\227\128\012\132\001\002\000\tA1h\000\128h\000\000 \128 \000\004\000\000\000\000\001\000\000\000\000\000\b\129\016#a\000E\130F\252Lz\000\128\248\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031}\145\002\011\252m\000\002`\224{\142,\005\006\132\252$Z\177J\223\153\207@P\031\192\000\007\142\000\016$\004\004\001\005\004\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\160\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\192\000\028\004\000\028\\\016\000\b\000\000\000\000\000\000\000\000\004\000\000\b\000\000\000\000\000\000 \000\000\0000\000\007\001\000\007\023\004\000\002\000\000\000\000\000\004$\001\020\000@\136$\028\012\017\000;\000\128\128\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\129\"\128\b\016\004\131\000\002 \006`\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\001 \192\000\136\001\152\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\129\016H8\024\"\000v\001\001\000\000\t\000\000\002\000\002\000\006\000\000\000@\000\000\000\000\004\128\000\000\000\001\000\003\000\000\000 \000\000\000\000\002@\000\000\000\000\128\000\128\000\000\016\000\000\000\000\132\128\"\128\012\016\004\131\128\002 \007`\0000\000\000\144\000\000\000\000 \000 \000\000\004\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\016\000\016\144\004P\001\002\000\144p\000D\000\204 \002\016\000\016\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\002\018\000\138\000 @\018\014\000\b\128\025\128\000@\001\t\000E\000\016 \t\006\000\004@\012\192\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\002A\192\001\016\0030\000\b\000! \b\160\002\004\001 \192\000\136\001\152\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000x\002/\001\129\007\031$\000\"\000`\000\001\000\004$\001\020\000@\128\004\016\000\016\0003\000\000\128\000\004\000\000\001\000\000\000\002\000\000\000\000\000\000\001\000\002\000\000\000\128\000\000\001\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\016 \192\000\128\001\152@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\000 A\002\012\000\b\000\025\132\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\004\000@\000\000\000\128\000\000\000\000\000\000\000\000\128\000\000 \000\b\000@\000\000\000\000\000\000\000\000@\000\000\000\000\004\000 \000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000\bH\002(\000\129\000\b0\000 \000v\000\t\000\000\b\002\002\000\000\130\130\000\000\000\b\000\000\000\000\003\018\000\138\000 `\002\014\000\b\000\025\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\004\000\000\000\000\000\128\000\000\000\000\000\000\000\001\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000@\000(\000\016 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\130\004\024\000\016\0003\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\128 \000\b( \000\000\000\128\000\000\000\0001 \b\160\002\006\000 \224\000\128\001\152\000\004\000\144\144\004P\001\002\000\016@\000@\000\204\000\002\000@0\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\002\000\128\128\000 \160\128\000\000\002\000\000\000\000\000\196\128\"\128\b\024\000\131\128\002\000\006`\000\016\002B@\017@\004\b\000A\000\001\000\0030\000\b\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\002\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\000 @\002\012\000\b\000\025\132\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000@@\000\016P@\000\000\001\000\000\000\000\000b@\017@\004\012\000A\192\001\000\0030\000\b\000! \b\160\002\004\000 \192\000\128\001\152\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\001\000\001\000\003\000\000\000 \000\000\000\000\002@\000\000\000\000\128\001\128\000\000\016\000\000\000\000\001 \000\000\000\000@\000@\000\000\b\000\000\000\000B@\017@\006\b\000A\192\001\000\0030\000\024\000\002 \000\000\016\000\004\0000\000\000\000\000\000\000\000\001\000\000\000\b\000\002\000\024\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\012\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\002\000\000$\128\002\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\002H\000 \000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\001\000\000@\002\000\020@@\000\000\000\000\000\000\000B\000\000@\000\000\160A@@\000\000\016\b\000\000!\000\000 \000\000P \128 \000\000\b\004\000\000\000`\000\014\002\000\014.\b\000\004\000\000\000\000\000\000\000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\016\000\002\000\000\004\002\b\002\000\000\000\128@\000\000\016\000\000\000\000@ \001\000\000\000\000\000\000\000\000\b\000\000\000\000 \016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\006\000\000\224 \000\226\224\128\000@\000\000\000\000\000\132\000\000\128\000\001\000\131\128\128\000\000 \016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\002\000\000\004\000 \000\000\000\000\000\000\000\001\000\000\001\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\192\000\028\004\000\028\\\016\000\b\000\000\000\000\000\016\128\000\016\000\000 \016`\016\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\002\000\016\000\162\006\000\000\000\000\000\000\000\000\004\000\001\000\b\000Q\001\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\128\000\000\000\000\000\000@\000\128\000\000\000\000\000\000@\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000 \000\000\000\016\000\004\000 \001D\004\000\000\000\000\000\000\000\000\024\000\003\128\128\003\139\130\000\001\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\016\000\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\0008\b\0008\184 \000\016\000\000\000\000\000\000\000\000\128\000\000\000\000 \000\000\000\000\001\000\000\000\000\000@\000\000\000\000\016\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\170\000 D\018\014\002\b\128\029\128@@\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\128\000\000\000@\000\016\000\128\005\016\016\000\000\000\000\000\000\000\016\144\005P\001\002 \144p\016D\000\236\002\002\000H@\000\b\000\000\016\b8\b\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\001\192@\001\197\195\000\000\128\000\000\000\000\000\006\000\000\224 \000\226\224\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\001\000\000\000\000\001\128\0008\b\0008\184 \000\016\000\000\000\000\000!\000\000 \000\000@ \224`\000\000\b\004\000\000\016\128\000\016\000\000 \016`\016\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\000\000\128\000\001\000\131\000\128\000\000 \016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\128\000\016\000\000 \016@\016\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\128$\028\000\017\0003\000\000\128\018\018\000\138\000 @\018\b\000\b\128\025\128\000@\b\016\000\000\000\000\000 \001\128\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\000\004\000 \001D\004\000\000\000\000\000\000\000\004$\001\020\000@\128$\028\000\017\0003\000\000\128\018\018\000\138\000 @\018\b\000\b\128\025\128\000@\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000`\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\012\000\001\192H\001U\193\000\000\128\000\000\000\000\001\011\001U\000\0160!\007\000\004@\014\192\000`\004\003\000\000`\000\000Qp@\000 \000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\192\000\028\004\128\021\\\016\000\b\000\000\000\000\000\000`\000\014\002\000\014.\b\000\004\000\000\000\000\020\000\000\000 \000\000\000\000\b\000\000\000\000\000@\b\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\012\000\001\192H\001U\193\000\000\128\000\000\000\000\000\006\000\000\192\000\000\162\224\128\000@\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\001\128\0008\t\000*\184 \000\016\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000@\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000\bX\n\168\000\129\129\b8\000\"\000v\000\001\000$,\005T\000@\192\132\028\000\017\000;\000\000\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000U\000\016 \001\007\000\004\000\014\192\000 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\000 \192\000\128\001\152\000\004\000\144\144\004P\001\002\000\016@\000@\000\204\000\002\000@\128\000\000\000\000\001\000\012\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\128\0008\t\000*\184 \000\016\000\000\000\000\000! \b\160\002\004\000 \192\000\128\001\152\000\004\000\144\144\004P\001\002\000\016@\000@\000\204\000\002\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000E\000\016 \001\004\000\004\000\012\192\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000E\000\016 \001\006\000\004\000\012\192\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128 \b( @\000\000\128\000\000\000\000\000@\016\016\000\004\020\016 \000\000@\000\000\000\000\000 \b\b\000\002\n\b\000\000\000 \000\000\000\000\012H\002(\000\129\128\b8\000 \000f\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\000 @\002\b\000\b\000\025\128\000@\b\004\000\000I\000\004\160\001\000 \000\000\000\000\000\128\002\000\000$\128\002P\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000! \b\160\002\004\001 \192\000\136\001\216\004\012\000\144\144\004P\001\002\000\144`\000D\000\236\002\002\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\128$\024\000\017\0003\000\128\128\018\018\000\138\000 @\018\b\000\b\128\025\128\000@\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\000 \128\000\128\001\152\000\004\000\128@\000\004\144\000J\000\016\002\000\000\000\000\000\b\000 \000\002H\000%\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003 \000x\016\000qpP\000 \b\002\000\000\128\001\128\0018\b\0008\184 \000\016\000\000\000\000P\000\000\000\000\000(\004\000\000\000\000\128\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\022\128\138\000 A\018\r\000\b\1289\128@@\t\t\000E\000\024 \t\007\000\004@\012\192 a\004\132\128\"\128\b\016\004\131\128\002 \006`\016\016\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\001 \192\000\136\001\152\004\004 \128$\000\000\000\000\b\000\b\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\000 @\002\012\000\b\000\025\128@@\t\t\000E\000\016 \001\004\000\004\000\012\192\000 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\144\004P\001\002\000\144p\000D\000\236\002\002\000@\018\000\000\128\000\004\000\005\000\000\000\128 \000\b\000\t\000\000\000\000\002\000\002\128\000\000@\016\000\004\000\000\000\000\000\002\128@\000\000\000\b\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\144\004P\001\130\000\144p\000D\000\204\002\006\016HH\002(\000\129\000H8\000\"\000f\001\001\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\128@\000\000\000\b\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000 \000\000\000\000\000\000\000\001\016\000\000\b\000\002\000\024\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\012\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\003)\000P\144\002PLV\000 \025\000\000( A\144\196#\240\011<\166->2\r\130\000d\178\192@\000\016\000\128\021\016\016\000\000\016\000\000\000\000\016\128\000\016\000\000(\016P0\000\000\004\002\000\000\b@\000\b\000\000\020\b \024\000\000\002\001\000\000\004 \000\004\000\000\b\004\016\012\000\000\001\000\128\000\000 \000\000\000\000\128@\002\000\000\000\000\000\000\001\000\000\000\000\000\000@ \001\000\000\000\000\000\000\000\000\000\000\000\000\000 \016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000$\000\0026\016\004X$o\196\199\160\b\015\128\000\000\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000F\194\000\139\004\141\248\152\244\001\001\240\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\000\000@\000\000\128A\128\192\000\000\016\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\192\000\028\004\000\028\\\016\000\b\000\000\000\000\000\016\128\000\016\000\000 \016p0\000\000\004\002\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\t\000\000\141\132\001\022\t\027\2411\232\002\003\224\000\0001\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\017\176\128\"\193#~&=\000@|\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\000\000\002\000\016\000\000\000\000\000\000\b\000\000\000\000\128\000\001\000\b\000\000\000\000\000\000\000\000\000\000\000@\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\003)\000P\144\002PLV\000 \025\000\000( \001\192\0008\b\0008\184 \000\016\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\0000\000\007\001\000\007\023\004\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\000\000\141\132\001\022\t\027\2411\232\002\003\224\000\0001\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\017\176\128\"\193#~&=\000@|\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b@\000\b\000\000\016\b0\024\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000 \000\000@\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\024\000\003\128\128\003\139\130\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\003)\000P\144\002PLV\000 \025\000\000( \001\192\0008\b\0008\184 \000\016\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\0000\000\007\001\000\007\023\004\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\000\000\141\132\001\022\t\027\2411\232\002\003\224\000\0001\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\017\176\128\"\193#~&=\000@|\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0026\016\004X$o\196\207\160\b\015\128\000\000\199\001\027\b\002,\0187\226c\208\004\007\192\000\000c\130\016\000\002\000\000\004\002\012\006\000\000\000\128@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000@\002\000T@\192\000\000@\000\000\000@\000\128\000 \001\000* `\000\000 \000\000\000\000\000@\000\016\000\128\021\016\016\000\000\016\000\000\000\000\000 \000\b\000@\n\136\b\000\000\b\000\000\000\000\0002\016D\012\128'\004\205\160\002\001\128\000\000\130\003\239\178 A\127\141\160\000L\028\015q\197\128\160\208\012\132\017\002\000\t\1933h\000\128`\000\000 \128\006B\b\129\000\004\224\152\180\000@0\000\000\016@\003!\000@\128\002pLZ\000 \024\000\000\b \000\000\000\000\000\000\000\000\128\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\016\000\000\000\000\000\000\b\000\016\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\004\000\000\000\002\000\000\128\004\000\168\128\128\000\000\128\000\000\000\000\003\000\000p\016\000qp@\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\002\000\000\000@\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\144\005\t\000%\004\205`\002\001\128\000\000\130\000\025H\002\132\128\018\130b\176\001\000\192\000\000A\000\012\164\001B@)A1X\000\128`\000\000 \128\002\000\000\128\004\000\168\128\128\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\002\000\128\000 \001\000* \000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\181%Z\131J*\153\254\240D\003\204\002\007\141HZ\146\173A\165\021L\255x\"\001\230\001\003\198\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\170\000 D\018\014\006\b\128\025\128@\192(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\021@\004\b\130A\192\193\016\0030\b\024\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002\168\000\129\016H8\024\"\000f\001\003\000\160\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\004\000\000\000\002\000\000\128\004\000\168\128\128\000\000\128\000\000\000\000\132\128*\128\b\017\004\131\129\130 \006`\0160\n\001\144\130 @\0018&-\000\016\012\000\000\004\016\000\200@\016 \000\156\019\022\128\b\006\000\000\002\b\000\000\000\000\000\000\000\000 \000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000@\000\000\000\000\004\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000p\018\000Up@\000 \000\000\000\000\000@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b@\000\b\000\000\016\b8\024\000\000\002\001\000\000\128\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\b\000\001\000\000\002\001\006\003\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000 \001\000* \000\000 \000\000\000\000!\000\000 \000\000@ \224`\000\000\b\004\000\002\016\128\000\016\000\000 \016`0\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\003\128\128\003\139\134\000\001\000\000\000\000\000\000\012\000\001\192@\001\197\193\000\000\128\000\000\000\000\001\b\000\001\000\000\002\001\006\003\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b@\000\b\000\000\016\b0\024\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\b\000\001\000\000\002\001\004\003\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\002A\192\001\016\0030\000\b\001\000\192\000\028\004\128\021\\\016\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\000\004\000 \005D\004\000\000\004\000\000\000\000\004$\001\020\000@\128$\028\000\017\0003\000\000\128\016\012\164\001B@\tA1X\000\128d\000\000\160\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b\016\004\131\000\002 \006`\000\016\002B@\017@\004\b\002A\000\001\016\0030\000\b\001\002\000\000\000\000\000\004\0000\000\000\000\000\000\000\000\001\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\012\164\001B@\tA1X\000\128d\000\000\160\129\t\000E\000\016 \t\006\000\004@\012\192\000 \004\132\128\"\128\b\016\004\130\000\002 \006`\000\016\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\129\000H \000 \000f\000\001\000\000\025\b\"\006\000\019\130f\208\001\000\192\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\129\000H \000\"\000f\000\001\000$$\001\020\000@\128$\024\000\017\0003\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\128\128\000\128\129\000\000\002\000\000\000\000\000\001\002\000@\000\000@@\128\000\001\000\000\000\000\000\000\129\000 \000\000 \000\000\000\128\000\000\000\000! \b\160\002\004\017 \224\000\136\001\152\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\129\000H \000\"\000f\000\001\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\002A\128\001\000\0030\000\b\000! \b\160\002\004\001 \128\000\128\001\152\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\000 @\018\b\000\012\128\025\128\000@\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\144\004P\001\002\000\144`\000@\000\204\000\002\000\bH\002(\000\129\000H \000 \000f\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001 \n\160\002\006\017 \224\000\136\001\216\000D\000\152\000\001\000\000\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\017\130 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000p\016\000qp@\000 \000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\128\000\016\000\000 \016@0\000\000\004\002\000\000\b\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\131!\000@\128\002PLZ\000 \026\000\000\b\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005%.\224\250\007\193`\224\127\203\t\222-\252\225\224\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\016\000\000\128\000\128\000\000\016\000\000\001\000\001 \000\000\000\000@\000@\000\000\b\000\000\000\128\000\144\000\000\000\000 \000 \000\000\004\000\000\000\000! \b\160\003\004\001 \224\000\136\001\216\000\012 \000$\000\000\000\000\b\000\b\000\000\001\000\000\000\000\bH\002(\000\129\000H8\000\"\000f\000\001\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\000 @\018\012\000\b\128\025\128\000B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\0000@\018\014\000\b\128\029\128\000\194\000\002@\000\000\000\000\128\000\128\000\000\016\000\000\000\000\132\128\"\128\b\016\004\131\128\002 \006`\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\004\000\000\000\000\000\000\000\000\000\016\144\004PA\002\000\144`\000D\000\236\002\006\000HH\002(\000\129\000H0\000\"\000v\001\001\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\000 @\018\012\000\b\128\025\128@@\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\004\000\000 \000 \000\000\004\000\000\000@\000H\000\000\000\000\016\000\016\000\000\002\000\000\000 \016\144\004P\001\002\000\144`\000D\000\204\000\002\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\128\000\000\000\000\000\002\000\000\000\003\000\000p\016\000qp@\000 \000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000`\000\014\002\000\014.\b\000\004\000\000\000\000\000\0000\000\006\000\000\005\023\004\000\002\000\000\000\000\000\006$\001\220\000@\200$\028\012\017 ;\000\168\132[\018\000\238\000 d\018\014\006\b\144\029\128TB,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\000\000\000\016\000\000\000$\000\000\000 \000\001\128\0008\b\0008\184 \000\016\000\000\000\000\000\000\000\004\000\000\000\000\000 \000\001\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\000\0000\000\006\000\000\005\023\012\000\002@\000 \000\000\000\024\000\003\000\000\002\139\130\000\001 \000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\016\000\000\000\016\000\000\000$\000\000\000\000\000\001\128\0000\000\000(\184 \000\018\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\000\000\000\000\000\000\004\000\000\000\006\000\000\224 \000\226\224\128\000@\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\192\000\028\004\000\028\\\016\000\b\000\000\000\000\000\000`\000\012\000\000\n.\b\000\004\000\000\000\000\000\012H\003\184\000\129\144H8\024\"@v\001Q\b\182$\001\220\000@\200$\028\012\017 ;\000\168\132X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000 \000\000\000\000\000\000\128\000\000\000\192\000\028\004\000\028\\\016\000\b\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\024\000\003\128\128\003\139\130\000\001\000\000\000\000\000\000\012\000\001\128\000\001E\193\000\000\128\000\000\000\000\001\137\000w\000\0162\t\007\003\004H\014\192*!\022\196\128;\128\b\025\004\131\129\130$\007`\021\016\139\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\002\000\000\000\000@\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000E\000\016 \t\007\000\004@\012\192 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000\030\004\000\028\\\020\000\b\002\000\128\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\129\000\b0\000 \000f\001\001\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\016\000\000\128\000\128\000\000\016\000\000\001\000\001 \000\000\000\000@\000@\000\000\b\000\000\000\128B@\017@\004\b\000A\128\001\000\0030\000\b@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\001\t\000E\004\016 \001\006\000\004\000\014\192!`\004\132\128\"\128\b\016\000\131\000\002\000\007`\016\144\002\001\144\000<\b\0008\184(\000\016\004\001\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\144\004P\001\002\000\016`\000@\000\204\002\002\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000 \000\001\000\001\000\000\000 \000\000\002\000\002@\000\000\000\000\128\000\128\000\000\016\000\000\001\000\132\128\"\128\b\016\000\131\000\002\000\006`\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000@\000\000@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000E\000\016 \t\006\000\004@\012\192\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004l \b\176H\223\137\143@\016\031\000\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\001\027\b\002,\0187\226c\208\004\007\192\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\004\016\001\002\000\016@\000@\000\200\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\160\000\128\000\000\016\000\000\000\000\128\000\136\007\224\022\t\000\000|D\001\004\000\193E\128\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\b\000\000\000\004\000\000\000\000\001@\000\000\000\000\000\000\000\000\001\000\001\000\015\192,\018\000\000\248\136\002\b\001\130\139\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000 \000 \000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\003\128\128\003\139\130\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\176\128\"\193#~&=\000@|\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\016\002\000\000\002\002\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128 \000\b( \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\001\000\000\016\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128 @\001(&-\000\016\r\000\000\004\016\000\000\000\000\000\000\000\000 \000\000\000\016\001\016\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000@\000\000\000\000\020\000\000\000\000\000\000\000\000\000\004\252$\024\177J\223\153\207@T\031\200\000\003\142\000\016\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000-\t\004\000@\130\164\016\016\017\000r\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\004\016\001\002\000\144@\000D\000\200 \002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128 \128\b\016\004\130\000\002\000\006\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000O\194A\139\020\173\249\156\244\005A\252\128\0008\224'\225 \197\138V\252\206z\002\160\254@\000\028p\002@\016@\004\b\002A\000\001\016\003 \000\b\000\001 \b \002\004\001 \128\000\136\001\144\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\001\004\000@\128$\024\000\017\0002\000\000\128\000\018\000\130\000 @\018\b\000\b\128\025\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \b \002\004\001 \192\000\136\001\144\000\004\000\000\144\004\016\001\002\000\144@\000D\000\200\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") and start = 15 and action = - ((16, "FfS|I@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022$I@\000\000\000\000\021*I@Ff\002\238\000K\000/w`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0009\000\164\000\171\000\000\000\170\001b\000\000\002\236\001\132\003\252\000\000\000\128\001\166\004\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\022\000\000\000\000\000\000\001\132\136\030\000\000\000\000\000\000\006\n\000\000\000\000Tj\002\240\003X\000\000\000\000\152pO\016\021*Kjx\012\021*\166:S\142\021*[\180\000\000\004\132\000\000[\180\007:\000\000FN\000\000\0032\000\000\000\000\007\014\000\000\006\n\000\000\021*\006\n\000\000\000\000\000\000\021*\000\000\000\000\0056\000\000FN\000\000\000\000\007\014\020h\007N\151\164X\238\132\144\000\000\006\n\000\000\162F\166z\000\000\174\232\152pU^\155\168\152pH\254\169\190I@Ff\000\000\000\000S\142\021*^\224[\180\b\014\151\164\000\000\160\148I@FfS|\021*\000\000\000\000\017\"S\030\021*H\136\\p\000\000\002\240\000\000\000\000\003\242\000\000\000\000K\210\004*\021\196\001\236\002\166\000\000\000\000\0050\000\000Kj\005^\005`\021*\024b\021*FfFf\000\000\000\000\000\000M\210M\210\021*\024b\024b\021*\000\000\007\248\004H\000F\000\000\005\222\b\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000S|\021*\000\000Dv\149\026Ff\000\000\001\002\000\000\\p\146\160\1528\1528\000\000\000F\000\000\0070\000\000\000\000\025Z\129\232\153\004\000\000\129\232\153\004\000\000\129\232\129\232\001\016\000\000\001\170\001,\000\000\021\240\000\000\007\b\000\000\000\000\tX\000\000\000\000\000\000\129\232\006\n\000\000\000\000^\206\171`\174\232_\176\171\166\174\232`\146]\236\137l\000\000\000\000Y|\001\016\000\000\000\000Z|\137l[|at\000\000\163\016\152p\000\000\007n\001\016\001\016\000\000\000\000\129\232\000\000\0020\000\000t\224\007>\006\n\000\000\001n\006\n\000\000\129\232\tR\007V\171\188\174\232bVc8\000\000\0032\000\000\129\232\0044\175 \152p\b|\129\232\t\248\007v\172\002\174\232d\026d\252\000\000\bx\172H\174\232e\222f\192\000\000\t\n\172^\174\232g\162h\132\000\000if\000\000\000\000\000\000\004\142\000\000\129\232\000\000\020\172\140\230\000\000\129\232\006\020\129\232\027\154\000\000\028\156\000\000\b\024\005F\000\000\b\152\129\232\b4\000\000\tF\000\000\005\132\000\000\000\000\007\146\000\000\000\000\000\000\026n\0318\\pS|\021*\\p\000\000\001\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R\142\022\012\000\000\000\000\000\000\002\b\028&\146\160\000\000\000\000S\136\021*\\p\000\000\000\000\166f\\p\166\228\1528\000\000\167`\000\000\\p\000\000\000\000]\022P\158\001B\001B\000\000\n\172\\p\000\000\000\000\000\000\005,\n\196\000\000C\172\000\000\000\000\152\204\000\000\167\222\168\128\000\000\t\006\000\000\000\000\153`\000\000\168.\001L\000\000\000\000\000\000\000\000\011>\000\000L\188\000\000\000\000\152\204\000\000\004@\000\000\000\000G\016\137@\000\000\000\000D\196\023b\025\006\024\"\000\000\000\000\000\000\000\000\nL\000\000\000\000\000\000\0078\000\000\000\000u\164\n\002\n^\n^\007\002\136\030\011\026\129\232\003R\004T\011\148\000\000\011\198\000\000\000\000\011\024\011&\n^\nt\000\000S|SvM\210\021*\024b\000K\000\178\005\174\000\000\011PKjKj\000K\000\178\000\178Kj\000\000\137\234\002`[\180\000F\005\162\170\016\000\000\129\232\133\018\129\232|.\133\148\129\232\t\252\129\232\134\022\000\000\011\180\011\212\011\174Kj\138l\000\000\011\170\t\182x,\000\000\000\000\000\000\000\000Kj\138\238Kj\139p\000\152\001\016|\176\b\176\001\016}2\000\000\139\242\002`\000\000\000\000\000\000\024\018\000\000\000\000\028\026\000\000\003T\024b\000\000x\212\024b\000\000\025\166\000\000\000\000Kj\025,\000\000\000\000\000\000\000\000vf\000\000\t\136\000\000FfJ\014\b\206\000P\000\000\023\028R.S|\021*J\014S\"\021*\017\"\017\"\000\000\000\000\000\000\000\000\002\004\022jEn\000\000VTW\018M\210\021*\024b\006\246Rv\000\000\030\246\000\000W\208X\142\153\252\024\178\129\232\012\000\000\000S|\021*\000\000S\142\021*\137@\\p\027\150\000\000S|\021*\149\174\004\014\000\000\\p\\pG8\136\030\011\130\129\232\b\\\t\138\nt\012@\000\000\nt\r&\000\000\000\000\000\000K\210\001B\014\166\140\134\000\000S\136\021*\\p\026\182\000\000S\"\021*\017\"\023\028\017\"\003\006\b\218\000\000\000\000\017\"\012b\014v\002\250\170*\000\000\0282\170|\000\000\024\168\129\232\028\176\015\168\000\000\000\000\016\030\000\000\017\"\004\b\016B\000\000%8\000\000\011\158\000\000\000\000\027$\000\000\018$\024\030\000\000\000\000\000\000\000\000\007\028\000\000\000\000\028&\000\000\029(\000\000\030*\000\000\019&\025 \000\000\000\000\000\000I@\000\000\000\000\000\000\000\000\031,\000\000 .\000\000!0\000\000\"2\000\000#4\000\000$6\000\000%8\000\000&:\000\000'<\000\000(>\000\000)@\000\000*B\000\000+D\000\000,F\000\000-H\000\000.J\000\000/L\000\0000N\000\0001P\000\0002R\021*\146\160\000/\134\170L\200\001B\016\166\1354\162\178P\158\\pG\016\000\000\017d\006\n\000\000\012X\129\232\011\252\000\000D@\152p\012\132\129\232\012\158\000\000\000\000\000\000\000\000\017\004\000\000\000\000\000\000\000\000\000\000\1354\000\000\\p\017\198\000\000F\026\152p\rZ\129\232\012\162\000\000\136\030\r\134\129\232\012\188\000\000\000\000\017<\000\000\000\000\000\000M\192N\178\001B\018&\135\190\000\000\000\000\017\220\000\000\000\000\000\000\135\190\000\000\000\000\136\030\001B\017\222\129\232\012\196\000\000\000\000\r\152\129\232\rf\000\000\000\000\018\022\000\000\000\000\000\000\025\180\129\232\r\146\000\000\000\000\029\188\000\000\000\000\154\134\000\000\030\190\154\174\000\000\031\192\155J\000\000 \194\bZ\000\000\000\000\000\000\000\000!\196\\p\"\198\000\000\147.\147.\000\000\000\000\000\0003T\000\000\b\182\000\000\000\000\000\000\r\242\000\000\000\000\012\160\t\220\000\000\rh\000\000\000\000v\210Q\150\000\000\000\000\t\184\000\000\000\000\000\000\014\016\000\000\000\000\000\000\017\"\005\n\n\222\000\000\r\162\000\000\006\012\000\0004V\000\000\r\192\000\000\007\014\000\0005X\000\000\014\244\000\000\b\016\000\0006Z%>\000\000\014j\t\018\000\0007\\\000\000\014\144\n\020\000\0008^\000\000\015\018\011\022\000\0009`\r\162\011\224\000\000\014|\012\024\000\000:b\000\000\014\194\r\026\000\000;d\000\000\015:\014\028\000\000j\\p\000\000\000\000\019`\000\000?l\000\000@n\000\000#\200\000\000\000\000\002\204\000\000\000\000\\p\000\000\000\000\150.\015V\000\000\000\000J\014\000\000\012\234\000\000\000\000v\210\000\000}\158\021*\025\230\021*\137@\\p\026\148\000\000y@G\172\000\000z\006\000\000y@\000\000z\204\000\000\000\000\000\000\bj\000\000\000\000\000\000J\014\000\000\014\128\000\000\000\000v\210\011\"\000\000K\002\000\000\015\146\000\000\000\000v\210\005\022\000\000\007\188\014\202\000\000\000\000\023\028\021\238\000F\000\000%\194\000\000 :\025$\000F\000\000\000\000\016\020\000\000\000\000\002\002\024\030]\130\000\000\026\"\000\000\014\132\000\000\000\000\016<\000\000\000\000y@\0042\007\188\000\000\000\000\015&\000\000\000\000\015\196\000\000\000\000v\210\006\024\000\000\000\000\015\130\000\000\000\000v\210\012$\000\000\000\000\021*\024b\012\142\000\000\000\000\007\248\001\236\002\166\004\248\024b\155\216Kj\026\216\024b\156Z\018\236\000\000\000\000\004\248\000\000D\132\020\230\030h\000\000\014\164\019f\000\000\019f\000\"\137l\137l~@\006\006\000\000\000\000\000\000\0194\018\202\136\030\r\250\129\232\022N\021\022\016Z\021\002\000\000C\128\019\152\000\000\027J\000\000\000\000\137l~\194\019\172\174D\137l\127D\137l\127\198\128H\000\000\136N\172\164\014\252\137l\019z\137l\141\022\128\202\019|\137l\141\152\129L\015L\0198\000\000\000\000\000\000\021*\156\130\000\000\146\160\147.\000\000\000\000\019\176\000\000\nt\019\190\000\000\000\000\000\000Ap\000\000\000\000\015n\000\000\000\000v\210\nn\000\000\000\000M\210\021*\024b\002*\000\000U\212\000\000\0318\000\000\002\250\000\000\000\000\019\202\000\000\019\246\137@Br}\158\000\000\000\000[\242\000\000\031\248\000\000_\014\000\000\026.\000\000Kj :\000\000\147.\000\000\021*\024b\147.\000\000\029N\007\248\004H\006\nV\236Kj\158\000\147.\000\000\006\246\006\174\002\166\004\248\147.\164^\001\236\002\166\004\248\147.\164^\000\000\000\000\004\248\147.\000\000I@Ff\\pD@\000\000\000\000I@FfJ\138\000\000\002\238\000K\000/\019\026\136\030\015\248\129\232\147\176\019^\020\014\163@\000\000\147.\000\000\1482D\132\020\230\030h\157\024 l\015\238\158^\012>\019N\021*\147.\000\000\021*\147.\000\000\129\232\170\200\021\196\007\248\000\n\001\016\164\224\000\000\000\n\001\016\164\224\000\000\029\158\007\248\004H\006\nV\236Kj\147.\000\000\006\246\t\180\022@\0148\000\000\164\224\000\000\002\166\019PKj\147.\162\026\001\236\002\166\019VKj\147.\162\026\000\000\000\000\005\250\000\000\147.\000\000Kj\163\158\147.\000\000\005\250\000\000D\132\020\230\030hz^\030\n\026\002\000\208\001\210\000\000\015\238FN\000\000\007X\000\000FN\000\000\019\222\019\140P\224\021*^\"\129\232\012\188\000\000O\252\000\208\002\212\rt\000\000\016l\000\000\019\236\019x\129\232L&\000\000\021\022\025l\016\192\000\000\016\140\000\000\019\250\019\142\136\030L&\000\000\020\236P\224\0200\020\202\000\n\000\000\015\138P\224\129\232\016j\001\016\000\000\129\232\015\178\016\180\000\000\000\000\141\250\000\000\000\000\016\140P\224\142|L&\000\000\021*\129\232\016\174\129\232z\192L&\000\000\017V\000\000\000\000L&\000\000\000\000O\252\000\000\147.\165\028\000\208\001\210\015\238\020\022\019\202P\224\147.\165\028\000\000\000\000\000\208\001\210\015\238\020&\019\172\170\244UN\137l\020D\170\244\129\232\026\234\020F\170\244\137l\020X\170\244\143\004\143\134\000\000\160\242\000\000\000\000\147.\168\252\000\208\001\210\015\238\020b\019\230\170\244\147.\168\252\000\000\000\000\000\000\170\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\147.\000\000O\016\021*Kj\147.\000\000\165z\021*FN\020n\151\164\000\000\160\148\165z\000\000\000\000\169*\021*FN\020p\019\250X\238\168\128\006\006\020\196\000\000\000\000\143\228\148\180\021*\000\000\158\192\030h\000\000\000\000\160\148\169*\000\000\000\000\000\000\157zE@K\014\006\006\020\210\000\000\000\000\000\000\148\180\021*\000\000\006\006\020\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\168\030\n\000\208\001\210\015\238\020\218\144xK\210\\X\021*H\136P(\000\208\000\208\015@\000\000\021\014\002\250\000\000\000\000\021\004\000\000\000\000Lp\000\000\005,\017\028\000\000\017D\000\000\021\130\021\014\129\232\134\154\021\142\n\002\000\000\000\000\021:\000\000\000\000\021\022\012\254\017\224\000\000\021\148\145\002\152p\001B\021.\129\232\016\180\000\000\000\000\021D\000\000\000\000\000\000Lp\000\000\026\"\018\b\000\000\017\142\000\000\021\164\021(\136\030\000\000\021\176\145\140\166z\001B\021T\129\232\017\n\000\000\000\000\021|\000\000\000\000\000\000\021*\000\000Lp\000\000\021L\020\236\\X\\X\146\022I@\021*\156\130\146\160\006\228\000\000\021j\000\n\000\000\017\142\\X\129\232\017\182\000F\000\000\021*\144x\144x\\X\0174\\X\000\000GTHD\000\000\130b\000\000\000\000\130\228\000\000\000\000\131f\000\000\017\186\\X\131\232\156\130\146\160\006\228\000\000\006\000\000\000\000\000\170\244\017\022\000\000\000\000NX\021\228\000\000Lp\000\000\\XNXLp\000\000\021*\129\232Lp\000\000\018t\000\000\000\000Lp\000\000\000\000P(\000\000\161T\170\244\021\162\\X\161\178\144x\000\000\147.\165\220\000\208\001\210\015\238\022\000\144x\147.\165\220\000\000\000\000\000\000v\bS|\000\000\000\000\000\000\000\000\000\000\000\000\164\000\147.\000\000M\210\021*\024b\147.\000\000\165z\000\000\000\000\000\000\000\000\147.v\b\000\000\000\000\000\000\164\000\022B\000\000\022n\000\000\147.v\b\000\000\000\000\018\132\000\000\000\000\136\172\028t\000\000\000\000N\166\000\000\129\232\017N\000\000P(\018\140\000\000\000\000\022\196\150\184\000\000Ct\022\158\000\000\000\000\022\170C\178Gf\030h\148\180 l\021*\000\000\147.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\151F l\021*\000\000\018d\151\164\000\000\160\148\000\000\022\174C\178Gf\147.\000\000\022\202\000\000\030\206\136\030\n\n\nb\021*\174\140\000\000\000\000\029\142\174\162\000\000\000\000\022V\000\000\016\184\129\232\017\168\022\172\173\000\174\232jHk*\000\000\175f\152p\018\002\129\232\018p\022\174\173F\174\232l\012l\238\000\000\022\184\173\\\174\232m\208n\178\000\000\022\186\173\162\174\232o\148pv\000\000\018\144\129\232\018\170\022\208\173\232\174\232qXr:\000\000\022\214\018\162\129\232\018\244\022\220\173\254\174\232s\028s\254\000\000\006\006\023\n\000\000\000\000\159B\000\000\000\000X\238\000\000\160\148\000\000\023\002C\178K\186\167\170\000\000\000\000\000\000\000\000\019 \159\164X\238\000\000\160\148\000\000\023\022C\178K\186\167\170\000\000\019Z\000\000\000\000 \250\000\000\147.\000\000\023:\000\000\000\000\022\150\000\000\022\156\000\000\022\186\000\000\000\000Q\150\022\190\000\000\000\000\022\238w`\023\\\000\000\000\000\000\000\018\022\t\182{\130\023j\000\000\000\000\000\000\000\000\000\000\000\000\022\226\000\000 l\000\000\022\250\000\000\129\232\000\000\018p\000\000\000\000\023\000\000\000\000\000\001\016\000\000\n\168\000\000\000\000\000\000\015\254\000\000\024b\000\000\003R\000\000Kj\000\000\028\026\000\000\011\212\000\000\023\006\000\000\\p\026\148\000\000\000\000\n\184\023\b\000\000\000\000\022\254\011\186J\014\006\n\160&\000\000\000\000\000\000\000\000\000\000W\170\000\000\000\000\023\170\000\000T\154\000\000\019\030\023\184\000\000\023\196\000\000K\002K\002Z\172Z\172\000\000\000\000Y\172Z\172\000\000\000\000\000\000Y\172Z\172\023,\000\000\0232\000\000"), (16, "\n\r\n\r\000\006\n\r\0012\n\r\002\234\002\238\n\r\003\026\002\174\n\r\004\193\n\r\004\193\003&\n\r\001r\n\r\n\r\n\r\001j\n\r\n\r\n\r\001\218\001\n\000\246\001\198\003*\n\r\003\162\003\166\011\202\n\r\n\001\n\r\001\130\003.\001\146\007\149\003\198\002\238\n\r\n\r\003\242\003\246\n\r\003\250\004\006\004\018\004\022\004\030\bN\018\162\n\r\n\r\002\226\n\001\007\149\004\014\t\170\n\r\n\r\n\r\t\174\t\178\t\190\t\210\000\246\006z\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nF\003]\n\r\001n\n\r\n\r\003\210\003\161\nR\nj\n\210\006\134\006\138\n\r\n\r\n\r\003]\n\r\n\r\n\r\n\r\001n\003\161\016>\n\r\001z\n\r\n\r\004\193\n\r\n\r\n\r\n\r\n\r\n\r\n\r\006\142\t\198\n\r\n\r\n\r\t\222\004\166\n\230\007\149\n\r\n\r\n\r\n\r\014\185\014\185\019*\014\185\b\138\014\185\t\186\014\185\014\185\bj\014\185\014\185\014\185\014\185\001\214\014\185\014\185\004\193\014\185\014\185\014\185\004z\014\185\014\185\014\185\014\185\004\193\014\185\001\214\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\007z\014\185\000\246\004\193\014\185\t\030\014\185\014\185\014\185\014\185\014\185\006\253\014\185\t&\014\185\006\153\014\185\004\026\014\185\014\185\014\185\004n\t*\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\006\253\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\005F\014\185\014\185\007\022\014\185\014\185\001\n\001\138\001\198\005\022\014\185\014\185\014\185\014\185\014\185\014\185\025\154\014\185\014\185\014\185\014\185\014\185\001~\014\185\014\185\001\154\014\185\014\185\022J\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\014\185\004\193\004\193\014\185\014\185\014\185\014\185\001\217\001\217\001\217\001\217\004v\001\217\006\153\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\014\221\001\217\005N\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\019\218\014\221\001\217\t\185\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\206\001\217\000\246\001\217\b\154\001\217\001\217\001\217\004\146\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\tn\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\000\246\001\217\001\217\000\246\003n\003r\b\214\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\017\170\t\246\001\217\006\190\001\217\001\217\022\150\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\019\242\001\217\001\217\001\217\001\217\001\217\011Y\011Y\t\185\011Y\019\222\011Y\001n\011Y\011Y\003\161\011Y\011Y\011Y\011Y\019\246\011Y\011Y\022\158\011Y\011Y\011Y\000\n\011Y\011Y\011Y\011Y\006\129\011Y\014\133\011Y\011Y\011Y\011Y\011Y\011Y\011Y\011Y\003\017\011Y\003\017\001\242\011Y\005r\011Y\011Y\011Y\011Y\011Y\014\133\011Y\016\130\011Y\003\017\011Y\002J\011Y\011Y\011Y\003\209\003F\011Y\011Y\011Y\011Y\011Y\011Y\011Y\011Y\002N\011Y\011Y\011Y\011Y\011Y\011Y\011Y\011Y\011Y\011Y\011Y\003J\011Y\011Y\tb\011Y\011Y\000\246\tn\bj\025\174\011Y\011Y\011Y\011Y\011Y\011Y\016\138\011Y\011Y\011Y\011Y\n\254\000\246\011^\011Y\011\026\011Y\011Y\011&\011Y\011Y\011Y\011Y\011Y\011Y\011Y\011Y\011Y\011Y\011Y\011Y\011Y\011Y\007\005\011Y\011Y\011Y\011Y\011Y\003\237\003\237\005v\003\237\003\209\003\237 \011\003\237\003\237\nz\003\237\003\237\003\237\003\237\007\005\003\237\003\237\0071\003\237\003\237\003\237\t\229\003\237\003\237\003\237\003\237\001\246\003\237\007\170\003\237\003\237\003\237\003\237\003\237\003\237\003\237\003\237\0071\003\237\004\193\017\222\003\237\t\189\003\237\003\237\003\237\003\237\003\237\001\142\003\237\007\174\003\237\n~\003\237\n\182\003\237\003\237\003\237\003\205\003R\003\237\003\237\003\237\003\237\003\237\003\237\003\237\003\237\014}\003\237\003\237\003\237\003\237\003\237\003\237\003\237\003\237\003\237\003\237\003\237\003V\n\246\011V\004\193\003\237\003\237\000\246\003F\014}\005\238\003\237\003\237\003\237\003\237\003\237\003\237\000\246\003\237\003\237\003\237\003\237\n\254\000\246\011^\003\237\t\229\003\237\003\237\003J\003\237\003\237\003\237\003\237\003\237\003\237\003\237\003\237\003\237\003\237\003\237\003\237\003\237\003\237\007\r\003\237\003\237\003\237\003\237\003\237\003\221\003\221\t\189\003\221\003\205\003\221\001\190\003\221\003\221\016\190\003\221\003\221\003\221\003\221\007\r\003\221\003\221\007=\003\221\003\221\003\221\025\206\003\221\003\221\003\221\003\221\001\194\003\221\017Z\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\007=\003\221\003z\bj\003\221\002\134\003\221\003\221\003\221\003\221\003\221\001\158\003\221\003\134\003\221\006*\003\221\002.\003\221\003\221\003\221\005\242\025\214\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\006i\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\138\n\246\011V\006J\003\221\003\221\018R\003R\003n\003r\003\221\003\221\003\221\003\221\003\221\003\221\016\198\003\221\003\221\003\221\003\221\n\254\bn\011^\003\221\018Z\003\221\003\221\003V\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\027v\003\221\003\221\003\221\003\221\003\221\n\193\n\193\002\138\n\193\003~\n\193\001\226\n\193\n\193\016\190\n\193\n\193\n\193\n\193\027z\n\193\n\193\006N\n\193\n\193\n\193\t\209\n\193\n\193\n\193\n\193\004\193\n\193\018\n\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\018\178\n\193\018\182\bj\n\193\b\166\n\193\n\193\n\193\n\193\n\193\006q\n\193\001\230\n\193\005\242\n\193\014\214\n\193\n\193\n\193\000\246\b\174\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\000\246\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\003\218\n\193\n\193\018\186\n\193\n\193\022\006\003n\003r\004\193\n\193\n\193\n\193\n\193\n\193\n\193\016\198\n\193\n\193\n\193\n\193\n\193\020\138\n\193\n\193\022\018\n\193\n\193\027~\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\004\193\004\193\n\193\n\193\n\193\n\193\n\209\n\209\006\014\n\209\004\138\n\209\002V\n\209\n\209\004\193\n\209\n\209\n\209\n\209\003\201\n\209\n\209\004>\n\209\n\209\n\209\007\246\n\209\n\209\n\209\n\209\002Z\n\209\014\129\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\tn\n\209\001\214\004B\n\209\003\018\n\209\n\209\n\209\n\209\n\209\014\129\n\209\005:\n\209\000\246\n\209\014\238\n\209\n\209\n\209\004\217\022^\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\005\018\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\005Z\n\209\n\209\002\162\n\209\n\209\011\150\t\233\006V\003\201\n\209\n\209\n\209\n\209\n\209\n\209\005\150\n\209\n\209\n\209\n\209\n\209\n\026\n\209\n\209\004\217\n\209\n\209\b\018\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\n\209\003\017\003\017\n\209\n\209\n\209\n\209\n\201\n\201\007\250\n\201\012z\n\201\001\214\n\201\n\201\t\182\n\201\n\201\n\201\n\201\002:\n\201\n\201\022b\n\201\n\201\n\201\000\n\n\201\n\201\n\201\n\201\t\213\n\201\005\"\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\014\026\n\201\003\017\006:\n\201\t\233\n\201\n\201\n\201\n\201\n\201\016\190\n\201\003\006\n\201\003\017\n\201\015\006\n\201\n\201\n\201\004}\004\166\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\000\246\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\005F\n\201\n\201\014Z\n\201\n\201\001\n\003\222\001\198\t\213\n\201\n\201\n\201\n\201\n\201\n\201\005\174\n\201\n\201\n\201\n\201\n\201\000\246\n\201\n\201\014^\n\201\n\201\015\214\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\007b\t\213\n\201\n\201\n\201\n\201\n\181\n\181\003\226\n\181\004}\n\181\016\198\n\181\n\181\005\242\n\181\n\181\n\181\n\181\007f\n\181\n\181\t\182\n\181\n\181\n\181\011\002\n\181\n\181\n\181\n\181\017\018\n\181\005\138\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\015\186\n\181\015\198\005\198\n\181\004\138\n\181\n\181\n\181\n\181\n\181\006B\n\181\017\230\n\181\005V\n\181\015\030\n\181\n\181\n\181\000\246\0062\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\015\218\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\004y\n\181\n\181\014\158\n\181\n\181\004\150\003n\021\186\b\246\n\181\n\181\n\181\n\181\n\181\n\181\000\246\n\181\n\181\n\181\n\181\n\181\021\206\n\181\n\181\014\162\n\181\n\181\tn\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\000\246\000\246\n\181\n\181\n\181\n\181\n\189\n\189\031\134\n\189\001\230\n\189\005\146\n\189\n\189\t\166\n\189\n\189\n\189\n\189\004\193\n\189\n\189\005\242\n\189\n\189\n\189\014z\n\189\n\189\n\189\n\189\004y\n\189\007\230\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\014\150\n\189\014\166\b\006\n\189\b6\n\189\n\189\n\189\n\189\n\189\016\190\n\189\000\246\n\189\000\246\n\189\0152\n\189\n\189\n\189\029\166\000\246\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\007\173\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\004\193\n\189\n\189\b\202\n\189\n\189\025\246\b\n\b\014\002\238\n\189\n\189\n\189\n\189\n\189\n\189\007\"\n\189\n\189\n\189\n\189\n\189\011\026\n\189\n\189\011&\n\189\n\189\007:\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\004v\005i\n\189\n\189\n\189\n\189\n\185\n\185\001\n\n\185\001\198\n\185\016\198\n\185\n\185\016\190\n\185\n\185\n\185\n\185\bJ\n\185\n\185\007\234\n\185\n\185\n\185\014\198\n\185\n\185\n\185\n\185\019\194\n\185\005F\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\014\222\n\185\014\246\007\142\n\185\031\235\n\185\n\185\n\185\n\185\n\185\004\134\n\185\b>\n\185\019\154\n\185\015F\n\185\n\185\n\185\bB\b\014\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\011j\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\005F\n\185\n\185\b*\n\185\n\185\002\238\b\218\011n\003\222\n\185\n\185\n\185\n\185\n\185\n\185\016\198\n\185\n\185\n\185\n\185\n\185\002\014\n\185\n\185\b\026\n\185\n\185\b2\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\004v\017:\n\185\n\185\n\185\n\185\n\197\n\197\001\n\n\197\001\198\n\197\012\198\n\197\n\197\016\190\n\197\n\197\n\197\n\197\bv\n\197\n\197\001\230\n\197\n\197\n\197\015V\n\197\n\197\n\197\n\197\003\222\n\197\n\146\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\015j\n\197\015~\n\166\n\197\b\226\n\197\n\197\n\197\n\197\n\197\b\242\n\197\000\246\n\197\000\246\n\197\015b\n\197\n\197\n\197\005F\t\n\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\021F\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\005F\n\197\n\197\nB\n\197\n\197\011\018\012\222\011B\r.\n\197\n\197\n\197\n\197\n\197\n\197\016\198\n\197\n\197\n\197\n\197\n\197\022\134\n\197\n\197\016\178\n\197\n\197\tn\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\000\246\018&\n\197\n\197\n\197\n\197\n\213\n\213\000\246\n\213\000\246\n\213\012\190\n\213\n\213\018:\n\213\n\213\n\213\n\213\004\193\n\213\n\213\000\246\n\213\n\213\n\213\000\246\n\213\n\213\n\213\n\213\n\178\n\213\012\214\n\213\n\213\n\213\n\213\n\213\n\213\n\213\n\213\004\193\n\213\014\130\014v\n\213\003\218\n\213\n\213\n\213\n\213\n\213\rB\n\213\000\246\n\213\r\166\n\213\015v\n\213\n\213\n\213\005F\014\134\n\213\n\213\n\213\n\213\n\213\n\213\n\213\n\213\014\206\n\213\n\213\n\213\n\213\n\213\n\213\n\213\n\213\n\213\n\213\n\213\005F\n\213\n\213\014\230\n\213\n\213\016\182\022\154\014\210\005F\n\213\n\213\n\213\n\213\n\213\n\213\006\137\n\213\n\213\n\213\n\213\n\213\000\246\n\213\n\213\014\234\n\213\n\213\014j\n\213\n\213\n\213\n\213\n\213\n\213\n\213\n\213\n\213\n\213\n\213\n\213\n\213\n\213\014\174\000\246\n\213\n\213\n\213\n\213\n\205\n\205\014n\n\205\r\186\n\205\r&\n\205\n\205\005F\n\205\n\205\n\205\n\205\021\194\n\205\n\205\014\178\n\205\n\205\n\205\001\214\n\205\n\205\n\205\n\205\r\222\n\205\r:\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\r\178\n\205\011j\015R\n\205\003\218\n\205\n\205\n\205\n\205\n\205\014\130\n\205\017*\n\205\017\194\n\205\015\138\n\205\n\205\n\205\014Z\015\026\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\015^\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\015.\n\205\n\205\014\158\n\205\n\205\018\206\017f\002\194\n\202\n\205\n\205\n\205\n\205\n\205\n\205\011\022\n\205\n\205\n\205\n\205\n\205\014\230\n\205\n\205\015r\n\205\n\205\014\254\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\014j\015\194\n\205\n\205\n\205\n\205\011E\011E\015\002\011E\017\238\011E\014\206\011E\011E\005F\011E\011E\011E\011E\014\174\011E\011E\015B\011E\011E\011E\017\198\011E\011E\011E\011E\015\182\011E\016\158\011E\011E\011E\011E\011E\011E\011E\011E\015\134\011E\017.\019\178\011E\017j\011E\011E\011E\011E\011E\016\162\011E\018\022\011E\018\146\011E\015\150\011E\011E\011E\017J\025\162\011E\011E\011E\011E\011E\011E\011E\011E\006i\011E\011E\011E\011E\011E\011E\011E\011E\011E\011E\011E\017N\011E\011E\017\250\011E\011E\0192\000\246\017\242\011>\011E\011E\011E\011E\011E\011E\t\141\011E\011E\011E\011E\011E\004\193\011E\011E\017\254\011E\011E\014\254\011E\011E\011E\011E\011E\011E\011E\011E\011E\011E\011E\011E\011E\011E\017\158\002\194\011E\011E\011E\011E\003\217\003\217\015\206\003\217\023\002\003\217\005F\003\217\003\217\000\246\003\217\003\217\003\217\003\217\017\206\003\217\003\217\017\162\003\217\003\217\003\217\019\182\003\217\003\217\003\217\003\217\003-\003\217\t&\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\017\210\003\217\018\026\022R\003\217\022\162\003\217\003\217\003\217\003\217\003\217\018\222\003\217\011J\003\217\003\181\003\217\t\141\003\217\003\217\003\217\022\206\023\014\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\011Z\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\031\251\n\246\011V\021\002\003\217\003\217\t&\012\150\0076\006\133\003\217\003\217\003\217\003\217\003\217\003\217\t\137\003\217\003\217\003\217\003\217\n\254\005F\011^\003\217\b\221\003\217\003\217\022\198\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\027\134\003\217\003\217\003\217\003\217\003\217\002!\002!\b\225\002!\023:\002!\000\246\002\238\002!\000\246\002\174\002!\011\014\002!\027\138\003&\002!\023\022\002!\002!\002!\025\218\002!\002!\002!\001\218\023j\011F\t&\003*\002!\002!\002!\002!\002!\011N\002!\023V\003.\025\210\0266\003\198\028\230\002!\002!\002!\002!\002!\014\229\004\006\029\210\001\198\000\246\002!\t\137\002!\002!\002\226\026f\012\178\004\014\t\170\002!\002!\002!\t\174\t\178\t\190\006m\014\186\006z\002!\002!\002!\002!\002!\002!\002!\002!\002!\012\242\n\246\011V\026\150\002!\002!\000\246\029\218\027\"\b\173\002!\006\134\006\138\002!\002!\002!\027\006\002!\002!\002!\002!\014\194\r\022\015\014\002!\b\213\002!\002!\rN\002!\002!\002!\002!\002!\002!\002!\006\142\t\198\002!\002!\002!\t\222\004\166\026\022\023n\002!\002!\002!\002!\011-\011-\000\246\011-\026\250\011-\012z\002\238\011-\005F\002\174\011-\011-\011-\026^\003&\011-\b\209\011-\011-\011-\rj\011-\011-\011-\001\218\027Z\011-\t&\003*\011-\011-\011-\011-\011-\011-\011-\014\241\003.\001\214\027\198\003\198\004v\011-\011-\011-\011-\011-\028\190\004\006\t&\001\198\028\242\011-\023\022\011-\011-\002\226\030\006\rz\004\014\t\170\011-\011-\011-\t\174\t\178\t\190\r\158\011-\006z\011-\011-\011-\011-\011-\011-\011-\011-\011-\005F\011-\011-\029j\011-\011-\029\254\030Z\r\198\005F\011-\006\134\006\138\011-\011-\011-\031\130\011-\011-\011-\011-\011-\000\246\011-\011-\015\230\011-\011-\015\238\011-\011-\011-\011-\011-\011-\011-\006\142\t\198\011-\011-\011-\t\222\004\166\016\002\030\130\011-\011-\011-\011-\011)\011)\000\246\011)\001\214\011)\031\203\002\238\011)\027\202\002\174\011)\011)\011)\004\217\003&\011)\028\194\011)\011)\011)\028\246\011)\011)\011)\001\218\031\022\011)\030R\003*\011)\011)\011)\011)\011)\011)\011)\030z\003.\000\246\0162\003\198\016^\011)\011)\011)\011)\011)\030\234\004\006\018n\001\198\018\150\011)\004.\011)\011)\002\226\018\194\003\018\004\014\t\170\011)\011)\011)\t\174\t\178\t\190\018\198\011)\006z\011)\011)\011)\011)\011)\011)\011)\011)\011)\018\238\011)\011)\019\n\011)\011)\019:\019J\019^\019\138\011)\006\134\006\138\011)\011)\011)\019\150\011)\011)\011)\011)\011)\019\254\011)\011)\020\006\011)\011)\020\250\011)\011)\011)\011)\011)\011)\011)\006\142\t\198\011)\011)\011)\t\222\004\166\021\014\031\026\011)\011)\011)\011)\002e\002e\021\018\002e\007\138\002e\021\214\002\238\002e\021\238\002\174\002e\011\014\002e\022n\003&\002e\022r\002e\002e\002e\022\170\002e\002e\002e\001\218\022\174\011F\022\214\003*\002e\002e\002e\002e\002e\011N\002e\022\218\003.\004\193\022\242\003\198\023\158\002e\002e\002e\002e\002e\023\162\004\006\023\198\001\198\023\202\002e\004\193\002e\002e\002\226\023\218\023\234\004\014\t\170\002e\002e\002e\t\174\t\178\t\190\023\246\014\186\006z\002e\002e\002e\002e\002e\002e\002e\002e\002e\024*\024.\002e\004\193\002e\002e\024\146\024\186\004\193\024\190\002e\006\134\006\138\002e\002e\002e\000\246\002e\002e\002e\002e\024\206\004\193\005\254\002e\004\193\002e\002e\025\030\002e\002e\002e\002e\002e\002e\002e\006\142\t\198\002e\002e\002e\t\222\004\166\004\193\025>\002e\002e\002e\002e\004\193\000\246\004\193\004\193\004\193\004\193\004\193\004\193\004\193\004\193\004\193\025~\004\193\004\193\004\193\004\193\000\246\004\193\004\193\004\193\004\193\004\193\004\193\004\193\004\193\004\193\004\193\004\193\004\193\004\193\000\246\004\193\004\193\000\246\004\193\004\193\004\193\025\170\004\193\004\193\004\193\004\193\004\193\004\193\000\246\004\193\004\193\004\193\004\193\004\193\004\193\004\193\004\193\004\193\000\246\004\193\004\193\004\193\004\193\004\193\004\193\004\193\004\193\004\193\000\246\004\193\004\193\004\193\004\193\004\193\004\193\004\193\004\193\022\246\004\193\004\193\025\186\0012\004\193\004\193\004\193\000\246\004\193\003\017\003\017\004\193\004\193\004\193\004\193\004\193\004\193\004\193\004\193\004\193\004\193\025\226\000\246\004\193\004\193\017v\025\230\025\242\004\193\026\002\026\030\026.\004\193\004\193\026B\004\193\000\n\026\014\026n\026r\002f\004\193\004\193\004\193\026~\004\130\004\193\004\193\004\193\004\193\026\142\000\169\004\193\000\169\003&\000\169\000\169\000\169\000\169\000\169\000\169\000\169\026\162\000\169\026\194\000\169\000\169\003\017\000\169\000\169\027\150\003B\000\169\000\169\004v\000\169\000\169\000\169\000\169\026\238\000\169\027\238\000\169\000\169\028\022\003N\000\169\000\169\028\158\000\169\000\169\b\197\000\169\003\222\000\169\b\197\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\n\246\011V\000\169\000\169\006z\028\166\000\169\000\169\000\169\006!\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\021n\n\254\000\169\011^\004\134\000\169\006\134\000\169\028\254\000\169\029\014\t\250\b\197\001\198\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\016\166\017\030\029\026\000\169\029~\017>\017^\017n\000\230\006\142\029\146\b\197\000\169\002\014\006!\029\202\002\174\029\222\030\n\000\169\000\169\000\169\000\169\030\"\030:\000\169\000\169\000\169\000\169\002]\002]\021\190\002]\006!\002]\030^\002\238\002]\004\194\002\174\002]\030\134\002]\030\162\003&\002]\030\202\002]\002]\002]\0056\002]\002]\002]\001\218\031j\031\002\001\230\003*\002]\002]\002]\002]\002]\005)\002]\0312\003.\031>\031F\003\198\018\154\002]\002]\002]\002]\002]\031O\004\006\031_\t\194\031r\002]\007\202\002]\002]\002\226\005)\031\142\004\014\t\170\002]\002]\002]\t\174\t\178\t\190\031\171\006\138\006z\002]\002]\002]\002]\002]\002]\002]\002]\002]\031\187\n\246\011V\031\215\002]\002] + G R \135\002]\006\134\006\138\002]\002]\002] \155\002]\002]\002]\002]\n\254 \163\011^\002] \223\002]\002] \231\002]\002]\002]\002]\002]\002]\002]\006\142\t\198\002]\002]\002]\t\222\004\166\tN\b\150\002]\002]\002]\002]\002q\002q\007}\002q\000\000\002q\000\000\003\222\002q\000\000\000\000\002q\000\000\002q\tR\000\000\002q\000\000\002q\002q\002q\007\210\002q\002q\002q\007}\000\000\000\000\000\000\000\000\002q\002q\002q\002q\002q\000\000\002q\000\000\t\018\003\190\000\000\002\238\000\000\002q\002q\002q\002q\002q\003\146\t\250\000\000\017\174\000\000\002q\tr\002q\002q\000\000\000\246\001\218\016\166\017\030\002q\002q\002q\017>\017^\017n\000\000\014A\000\000\002q\002q\002q\002q\002q\002q\002q\002q\002q\000\000\n\246\011V\003\186\002q\002q\000\000\000\000\014A\014A\002q\002\226\014A\002q\002q\002q\000\000\002q\002q\002q\002q\n\254\000\000\011^\002q\000\000\002q\002q\000\000\002q\002q\002q\002q\002q\002q\002q\005-\000\000\002q\002q\002q\bb\007\206\002\238\000\000\002q\002q\002q\002q\002m\002m\t\253\002m\000\246\002m\t\138\b\150\002m\be\005-\002m\000\000\002m\000\000\000\000\002m\000\000\002m\002m\002m\017\142\002m\002m\002m\t\253\t\142\000\000\000\000\007\141\002m\002m\002m\002m\002m\014A\002m\000\000\003\210\000\000\be\000\000\022\194\002m\002m\002m\002m\002m\007\141\000\000\t\018\0112\007\141\002m\be\002m\002m\000\000\be\n:\000\000\000\000\002m\002m\002m\be\022\202\tz\000\000\be\000\246\002m\002m\002m\002m\002m\002m\002m\002m\002m\000\000\n\246\011V\000\000\002m\002m\000\000\t~\000\000\b\217\002m\000\000\000\000\002m\002m\002m\000\000\002m\002m\002m\002m\n\254\001\149\011^\002m\000\000\002m\002m\000\000\002m\002m\002m\002m\002m\002m\002m\tn\003\017\002m\002m\002m\001\149\000\000\000\000\007\141\002m\002m\002m\002m\002a\002a\000\246\002a\026Z\002a\000\000\b\150\002a\011\225\000\000\002a\000\000\002a\004J\000\000\002a\000\n\002a\002a\002a\000\000\002a\002a\002a\000\000\0206\000\000\026b\000\000\002a\002a\002a\002a\002a\003\017\002a\000\000\007\145\000\000\011\225\000\000\000\000\002a\002a\002a\002a\002a\003\017\003\017\t\018\b\209\t\130\002a\011\225\002a\002a\007\145\011\225\r\214\001\149\007\145\002a\002a\002a\011\225\000\000\000\000\000\000\011\225\000\246\002a\002a\002a\002a\002a\002a\002a\002a\002a\001\149\n\246\011V\000\000\002a\002a\000\000\000\000\001\149\000\000\002a\000\000\b\150\002a\002a\002a\016\206\002a\002a\002a\002a\n\254\000\246\011^\002a\000\000\002a\002a\000\000\002a\002a\002a\002a\002a\002a\002a\000\000\020:\002a\002a\002a\000\246\t\137\000\000\000\000\002a\002a\002a\002a\002i\002i\000\000\002i\007\145\002i\t\018\016\222\002i\000\246\000\000\002i\000\000\002i\000\000\000\000\002i\000\000\002i\002i\002i\000\000\002i\002i\002i 7\000\246\000\000\000\000\000\000\002i\002i\002i\002i\002i\000\246\002i\007J\000\000\000\000\n\226\006\238\003\193\002i\002i\002i\002i\002i\007j\000\000\000\000\000\000\007v\002i\007J\002i\002i\018b\006\238\018\178\nf\018\182\002i\002i\002i\007j\000\000\000\000\000\000\007v\006q\002i\002i\002i\002i\002i\002i\002i\002i\002i\t\137\tm\002i\000\000\002i\002i\000\000\000\000\000\000\000\000\002i\t\213\000\000\002i\002i\002i\000\000\002i\002i\002i\002i\016:\000\000\000\000\002i\018\186\002i\002i\000\000\011v\002i\002i\002i\002i\002i\002i\000\000\000\000\002i\002i\002i\000\246\000\000\tm\b\150\002i\002i\002i\002i\n\t\n\t\000\000\n\t\000\000\n\t\014I\003\222\n\t\000\000\000\000\n\t\000\000\n\t\tZ\tm\011\162\000\000\n\t\011\198\n\t\000\000\n\t\n\t\n\t\014I\014I\000\000\000\000\014I\011\218\011\242\011\250\011\226\012\002\000\000\n\t\007J\t\018\028\206\b\150\006\238\000\000\n\t\n\t\012\n\012\018\n\t\007j\006\194\tm\000\000\007v\n\t\0056\012\026\n\t\tm\000\246\028\210\004\"\004&\n\t\n\t\000\246\007\158\000\000\0042\000\000\014E\000\246\n\t\n\t\011\170\011\234\012\"\012*\012:\n\t\n\t\000\000\ti\n\t\t\018\n\t\012B\000\000\000\000\014E\014E\n\t \027\014E\n\t\n\t\012J\000\000\n\t\n\t\n\t\n\t\014I\001\214\000\246\n\t\000\000\n\t\n\t\000\000\012j\n\t\n\t\012r\0122\n\t\n\t\000\000\000\000\n\t\012R\n\t\000\000\000\000\ti\000\000\n\t\n\t\012Z\012b\002\157\002\157\000\000\002\157\000\246\002\157\000\000\000\000\002\157\000\000\016\014\002\157\000\000\002\157\000\000\ti\002\157\004n\002\157\002\157\002\157\000\000\002\157\002\157\002\157\003\017\003\017\020b\000\000\000\000\002\157\002\157\002\157\002\157\002\157\014E\002\157\000\000\000\000\000\000\003\017\000\000\000\000\002\157\002\157\002\157\002\157\002\157\004\226\000\000\ti\000\000\000\n\002\157\0056\002\157\002\157\ti\001\214\000\000\000\000\000\000\002\157\002\157\002\157\003\017\003\017\021\150\000\000\000\000\029\186\002\157\002\157\011\170\002\157\002\157\002\157\002\157\002\157\002\157\003\017\000\000\002\157\003\017\002\157\002\157\000\000\000\000\000\000\000\000\002\157\000\000\000\n\002\157\002\157\002\157\000\000\002\157\002\157\002\157\002\157\000\000\004n\000\000\002\157\000\000\002\157\002\157\000\000\002\157\002\157\002\157\002\157\002\157\002\157\002\157\000\000\003\017\002\157\002\157\002\157\022>\000\000\003\017\000\000\002\157\002\157\002\157\002\157\002\133\002\133\000\000\002\133\004\226\002\133\000\000\005m\002\133\000\246\000\000\002\133\000\000\002\133\000\000\000\000\002\133\000\n\002\133\002\133\002\133\000\000\002\133\002\133\002\133\000\000\000\000\000\000\000\000\000\000\002\133\002\133\002\133\002\133\002\133\003\017\002\133\000\000\018\138\000\000\r\234\002\174\000\000\002\133\002\133\002\133\002\133\002\133\003\017\003\017\000\000\000\000\000\000\002\133\r\242\002\133\002\133\000\000\r\254\000\000\000\000\000\000\002\133\002\133\002\133\014\n\000\000\000\000\000\000\014\022\000\000\002\133\002\133\011\170\002\133\002\133\002\133\002\133\002\133\002\133\018\142\000\000\002\133\000\000\002\133\002\133\000\000\000\000\000\000\005\145\002\133\000\000\000\000\002\133\002\133\002\133\018\154\002\133\002\133\002\133\002\133\005\145\000\000\b\150\002\133\000\000\002\133\002\133\000\000\002\133\002\133\002\133\002\133\002\133\002\133\002\133\000\000\000\000\002\133\002\133\002\133\000\000\n&\006\138\000\000\002\133\002\133\002\133\002\133\002\145\002\145\000\000\002\145\005\145\002\145\007\165\b\150\002\145\000\246\000\000\002\145\000\000\002\145\000\000\000\000\011\162\t\018\002\145\002\145\002\145\000\000\002\145\002\145\002\145\007\165\019\234\000\000\000\000\007\165\002\145\002\145\002\145\011\226\002\145\005\145\002\145\000\246\005\145\000\000\b]\000\000\000\000\002\145\002\145\002\145\002\145\002\145\000\000\000\000\t\018\000\000\000\000\002\145\b]\002\145\002\145\000\000\006\238\000\000\000\000\000\000\002\145\002\145\002\145\b]\000\000\029\154\000\000\b]\000\246\002\145\002\145\011\170\011\234\002\145\002\145\002\145\002\145\002\145\000\000\000\000\002\145\000\000\002\145\002\145\000\000\000\000\000\000\000\000\002\145\000\000\000\000\002\145\002\145\002\145\000\000\002\145\002\145\002\145\002\145\006j\000\000\b\150\002\145\000\000\002\145\002\145\000\000\002\145\002\145\002\145\002\145\002\145\002\145\002\145\000\000\000\000\002\145\002\145\002\145\000\000\020&\000\000\000\000\002\145\002\145\002\145\002\145\002\161\002\161\000\000\002\161\000\000\002\161\007\149\b\150\002\161\by\000\000\002\161\000\000\002\161\000\000\000\000\002\161\t\018\002\161\002\161\002\161\000\000\002\161\002\161\002\161\007\149\020B\000\000\000\000\007\149\002\161\002\161\002\161\002\161\002\161\000\000\002\161\000\246\002\238\000\000\by\002\174\000\000\002\161\002\161\002\161\002\161\002\161\000\000\000\000\t\018\000\000\000\000\002\161\by\002\161\002\161\000\000\006\238\000\000\000\000\000\000\002\161\002\161\002\161\by\000\000\000\000\000\000\by\000\246\002\161\002\161\011\170\002\161\002\161\002\161\002\161\002\161\002\161\021:\000\000\002\161\000\000\002\161\002\161\000\000\000\000\000\000\000\000\002\161\000\000\000\000\002\161\002\161\002\161\018\154\002\161\002\161\002\161\002\161\t\186\000\000\b\150\002\161\000\000\002\161\002\161\000\000\002\161\002\161\002\161\002\161\002\161\002\161\002\161\000\000\000\000\002\161\002\161\002\161\000\000\031\"\006\138\000\000\002\161\002\161\002\161\002\161\002\129\002\129\000\000\002\129\000\000\002\129\000\000\000\000\002\129\000\246\000\000\002\129\000\000\002\129\000\000\000\000\002\129\t\018\002\129\002\129\002\129\000\000\002\129\002\129\002\129\000\000\000\000\000\000\000\000\000\000\002\129\002\129\002\129\002\129\002\129\000\000\002\129\000\246\000\000\000\000\b\149\000\000\000\000\002\129\002\129\002\129\002\129\002\129\000\000\000\000\000\000\000\000\000\000\002\129\007J\002\129\002\129\000\000\006\238\000\000\000\000\000\000\002\129\002\129\002\129\b\149\000\000\000\000\000\000\b\149\000\000\002\129\002\129\011\170\002\129\002\129\002\129\002\129\002\129\002\129\000\000\000\000\002\129\000\000\002\129\002\129\000\000\000\000\000\000\000\000\002\129\000\000\000\000\002\129\002\129\002\129\000\000\002\129\002\129\002\129\002\129\000\000\000\000\000\000\002\129\000\000\002\129\002\129\000\000\002\129\002\129\002\129\002\129\002\129\002\129\002\129\000\000\000\000\002\129\002\129\002\129\000\000\000\000\000\000\000\000\002\129\002\129\002\129\002\129\002\141\002\141\000\000\002\141\000\000\002\141\000\000\000\000\002\141\b\141\000\000\002\141\000\000\002\141\000\000\000\000\011\162\000\000\002\141\002\141\002\141\000\000\002\141\002\141\002\141\000\000\000\000\000\000\000\000\000\000\002\141\002\141\002\141\011\226\002\141\000\000\002\141\000\000\000\000\000\000\b\141\000\000\000\000\002\141\002\141\002\141\002\141\002\141\000\000\000\000\000\000\000\000\000\000\002\141\014.\002\141\002\141\000\000\b\141\000\000\000\000\000\000\002\141\002\141\002\141\b\141\000\000\000\000\000\000\b\141\000\000\002\141\002\141\011\170\011\234\002\141\002\141\002\141\002\141\002\141\000\000\000\000\002\141\000\000\002\141\002\141\000\000\000\000\000\000\000\000\002\141\000\000\000\000\002\141\002\141\002\141\000\000\002\141\002\141\002\141\002\141\000\000\000\000\000\000\002\141\000\000\002\141\002\141\000\000\002\141\002\141\002\141\002\141\002\141\002\141\002\141\000\000\000\000\002\141\002\141\002\141\000\000\000\000\000\000\000\000\002\141\002\141\002\141\002\141\002\137\002\137\000\000\002\137\000\000\002\137\000\000\000\000\002\137\000\246\000\000\002\137\000\000\002\137\000\000\000\000\011\162\000\000\002\137\002\137\002\137\000\000\002\137\002\137\002\137\000\000\000\000\000\000\000\000\000\000\002\137\002\137\002\137\011\226\002\137\000\000\002\137\000\000\000\000\000\000\bY\000\000\000\000\002\137\002\137\002\137\002\137\002\137\000\000\000\000\000\000\000\000\000\000\002\137\bY\002\137\002\137\000\000\006\238\000\000\000\000\000\000\002\137\002\137\002\137\bY\000\000\000\000\000\000\bY\000\000\002\137\002\137\011\170\011\234\002\137\002\137\002\137\002\137\002\137\000\000\000\000\002\137\000\000\002\137\002\137\000\000\000\000\000\000\000\000\002\137\000\000\000\000\002\137\002\137\002\137\000\000\002\137\002\137\002\137\002\137\000\000\000\000\000\000\002\137\000\000\002\137\002\137\000\000\002\137\002\137\002\137\002\137\002\137\002\137\002\137\000\000\000\000\002\137\002\137\002\137\000\000\000\000\000\000\000\000\002\137\002\137\002\137\002\137\002\177\002\177\000\000\002\177\000\000\002\177\000\000\000\000\002\177\000\246\000\000\002\177\000\000\002\177\000\000\000\000\011\162\000\000\002\177\002\177\002\177\000\000\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\012\002\000\000\002\177\000\000\000\000\000\000\016v\000\000\000\000\002\177\002\177\012\n\012\018\002\177\000\000\000\000\000\000\000\000\000\000\002\177\r\242\012\026\002\177\000\000\r\254\000\000\000\000\000\000\002\177\002\177\000\246\014\n\000\000\000\000\000\000\014\022\000\000\002\177\002\177\011\170\011\234\012\"\012*\012:\002\177\002\177\000\000\000\000\002\177\000\000\002\177\012B\000\000\000\000\000\000\000\000\002\177\000\000\000\000\002\177\002\177\012J\000\000\002\177\002\177\002\177\002\177\000\000\000\000\000\000\002\177\000\000\002\177\002\177\000\000\002\177\002\177\002\177\002\177\0122\002\177\002\177\000\000\000\000\002\177\012R\002\177\000\000\000\000\000\000\000\000\002\177\002\177\012Z\012b\002\153\002\153\000\000\002\153\000\000\002\153\000\000\002\238\002\153\000\000\002\238\002\153\000\000\002\153\000\000\000\000\011\162\000\000\002\153\002\153\002\153\000\000\002\153\002\153\002\153\000\000\000\000\000\000\000\000\000\000\002\153\002\153\002\153\011\226\002\153\000\000\002\153\000\000\000\000\000\000\000\000\000\000\000\000\002\153\002\153\002\153\002\153\002\153\000\000\011b\000\000\003\210\015\018\002\153\003\210\002\153\002\153\000\000\000\000\000\000\000\000\000\000\002\153\002\153\002\153\014R\000\000\014b\015&\007\181\015:\002\153\002\153\011\170\011\234\002\153\002\153\002\153\002\153\002\153\000\000\000\000\002\153\000\000\002\153\002\153\000\000\000\000\007\181\000\000\002\153\000\000\007\181\002\153\002\153\002\153\000\000\002\153\002\153\002\153\002\153\000\000\000\000\000\000\002\153\000\000\002\153\002\153\000\000\002\153\002\153\002\153\002\153\002\153\002\153\002\153\000\000\000\000\002\153\002\153\002\153\000\000\000\000\000\000\000\000\002\153\002\153\002\153\002\153\002\149\002\149\000\000\002\149\000\000\002\149\000\000\000\000\002\149\000\000\000\000\002\149\000\000\002\149\000\000\000\000\011\162\000\000\002\149\002\149\002\149\000\000\002\149\002\149\002\149\000\000\000\000\000\000\000\000\000\000\002\149\002\149\002\149\011\226\002\149\007\181\002\149\000\000\000\000\000\000\000\000\000\000\000\000\002\149\002\149\002\149\002\149\002\149\000\000\000\000\000\000\011\026\000\000\002\149\011&\002\149\002\149\000\000\000\000\000\000\000\000\000\000\002\149\002\149\002\149\000\000\000\000\000\000\000\000\000\000\000\000\002\149\002\149\011\170\011\234\002\149\002\149\002\149\002\149\002\149\000\000\000\000\002\149\000\000\002\149\002\149\000\000\000\000\000\000\000\000\002\149\000\000\000\000\002\149\002\149\002\149\000\000\002\149\002\149\002\149\002\149\000\000\000\000\000\000\002\149\000\000\002\149\002\149\000\000\002\149\002\149\002\149\002\149\002\149\002\149\002\149\000\000\000\000\002\149\002\149\002\149\000\000\000\000\000\000\000\000\002\149\002\149\002\149\002\149\002\169\002\169\000\000\002\169\000\000\002\169\000\000\000\000\002\169\000\000\000\000\002\169\000\000\002\169\000\000\000\000\011\162\000\000\002\169\002\169\002\169\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\002\169\000\000\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\169\012\n\012\018\002\169\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\000\000\000\000\000\000\000\000\000\000\002\169\002\169\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\169\011\170\011\234\012\"\012*\002\169\002\169\002\169\000\000\000\000\002\169\000\000\002\169\002\169\000\000\000\000\000\000\000\000\002\169\000\000\000\000\002\169\002\169\002\169\000\000\002\169\002\169\002\169\002\169\000\000\000\000\000\000\002\169\000\000\002\169\002\169\000\000\002\169\002\169\002\169\002\169\0122\002\169\002\169\000\000\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\002\169\002\169\002\169\002\169\002}\002}\000\000\002}\000\000\002}\000\000\000\000\002}\000\000\000\000\002}\000\000\002}\000\000\000\000\011\162\000\000\002}\002}\002}\000\000\002}\002}\002}\000\000\000\000\000\000\000\000\000\000\002}\002}\002}\011\226\002}\000\000\002}\000\000\000\000\000\000\000\000\000\000\000\000\002}\002}\002}\002}\002}\000\000\000\000\000\000\000\000\000\000\002}\000\000\002}\002}\000\000\000\000\000\000\000\000\000\000\002}\002}\002}\000\000\000\000\000\000\000\000\000\000\000\000\002}\002}\011\170\011\234\002}\002}\002}\002}\002}\000\000\000\000\002}\000\000\002}\002}\000\000\000\000\000\000\000\000\002}\000\000\000\000\002}\002}\002}\000\000\002}\002}\002}\002}\000\000\000\000\000\000\002}\000\000\002}\002}\000\000\002}\002}\002}\002}\002}\002}\002}\000\000\000\000\002}\002}\002}\000\000\000\000\000\000\000\000\002}\002}\002}\002}\002y\002y\000\000\002y\000\000\002y\000\000\000\000\002y\000\000\000\000\002y\000\000\002y\000\000\000\000\011\162\000\000\002y\002y\002y\000\000\002y\002y\002y\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\002y\000\000\002y\000\000\000\000\000\000\000\000\000\000\000\000\002y\002y\012\n\012\018\002y\000\000\000\000\000\000\000\000\000\000\002y\000\000\002y\002y\000\000\000\000\000\000\000\000\000\000\002y\002y\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002y\002y\011\170\011\234\012\"\012*\002y\002y\002y\000\000\000\000\002y\000\000\002y\002y\000\000\000\000\000\000\000\000\002y\000\000\000\000\002y\002y\002y\000\000\002y\002y\002y\002y\000\000\000\000\000\000\002y\000\000\002y\002y\000\000\002y\002y\002y\002y\0122\002y\002y\000\000\000\000\002y\002y\002y\000\000\000\000\000\000\000\000\002y\002y\002y\002y\002\213\002\213\000\000\002\213\000\000\002\213\000\000\000\000\002\213\000\000\000\000\002\213\000\000\002\213\000\000\000\000\011\162\000\000\002\213\002\213\002\213\000\000\002\213\002\213\002\213\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\002\213\000\000\002\213\000\000\000\000\000\000\000\000\000\000\000\000\002\213\002\213\012\n\012\018\002\213\000\000\000\000\000\000\000\000\000\000\002\213\000\000\002\213\002\213\000\000\000\000\000\000\000\000\000\000\002\213\002\213\002\213\000\000\000\000\000\000\000\000\000\000\000\000\002\213\002\213\011\170\011\234\012\"\002\213\002\213\002\213\002\213\000\000\000\000\002\213\000\000\002\213\002\213\000\000\000\000\000\000\000\000\002\213\000\000\000\000\002\213\002\213\002\213\000\000\002\213\002\213\002\213\002\213\000\000\000\000\000\000\002\213\000\000\002\213\002\213\000\000\002\213\002\213\002\213\002\213\0122\002\213\002\213\000\000\000\000\002\213\002\213\002\213\000\000\000\000\000\000\000\000\002\213\002\213\002\213\002\213\002u\002u\000\000\002u\000\000\002u\000\000\000\000\002u\000\000\000\000\002u\000\000\002u\000\000\000\000\011\162\000\000\002u\002u\002u\000\000\002u\002u\002u\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\002u\000\000\002u\000\000\000\000\000\000\000\000\000\000\000\000\002u\002u\012\n\012\018\002u\000\000\000\000\000\000\000\000\000\000\002u\000\000\002u\002u\000\000\000\000\000\000\000\000\000\000\002u\002u\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002u\002u\011\170\011\234\012\"\012*\002u\002u\002u\000\000\000\000\002u\000\000\002u\002u\000\000\000\000\000\000\000\000\002u\000\000\000\000\002u\002u\002u\000\000\002u\002u\002u\002u\000\000\000\000\000\000\002u\000\000\002u\002u\000\000\002u\002u\002u\002u\0122\002u\002u\000\000\000\000\002u\002u\002u\000\000\000\000\000\000\000\000\002u\002u\002u\002u\002\173\002\173\000\000\002\173\000\000\002\173\000\000\000\000\002\173\000\000\000\000\002\173\000\000\002\173\000\000\000\000\011\162\000\000\002\173\002\173\002\173\000\000\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\002\173\000\000\002\173\000\000\000\000\000\000\000\000\000\000\000\000\002\173\002\173\012\n\012\018\002\173\000\000\000\000\000\000\000\000\000\000\002\173\000\000\002\173\002\173\000\000\000\000\000\000\000\000\000\000\002\173\002\173\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\173\002\173\011\170\011\234\012\"\012*\002\173\002\173\002\173\000\000\000\000\002\173\000\000\002\173\002\173\000\000\000\000\000\000\000\000\002\173\000\000\000\000\002\173\002\173\002\173\000\000\002\173\002\173\002\173\002\173\000\000\000\000\000\000\002\173\000\000\002\173\002\173\000\000\002\173\002\173\002\173\002\173\0122\002\173\002\173\000\000\000\000\002\173\002\173\002\173\000\000\000\000\000\000\000\000\002\173\002\173\002\173\002\173\002\165\002\165\000\000\002\165\000\000\002\165\000\000\000\000\002\165\000\000\000\000\002\165\000\000\002\165\000\000\000\000\011\162\000\000\002\165\002\165\002\165\000\000\002\165\002\165\002\165\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\002\165\000\000\002\165\000\000\000\000\000\000\000\000\000\000\000\000\002\165\002\165\012\n\012\018\002\165\000\000\000\000\000\000\000\000\000\000\002\165\000\000\002\165\002\165\000\000\000\000\000\000\000\000\000\000\002\165\002\165\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\165\002\165\011\170\011\234\012\"\012*\002\165\002\165\002\165\000\000\000\000\002\165\000\000\002\165\002\165\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\165\002\165\002\165\000\000\002\165\002\165\002\165\002\165\000\000\000\000\000\000\002\165\000\000\002\165\002\165\000\000\002\165\002\165\002\165\002\165\0122\002\165\002\165\000\000\000\000\002\165\002\165\002\165\000\000\000\000\000\000\000\000\002\165\002\165\002\165\002\165\002\181\002\181\000\000\002\181\000\000\002\181\000\000\000\000\002\181\000\000\000\000\002\181\000\000\002\181\000\000\000\000\011\162\000\000\002\181\002\181\002\181\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\012\002\000\000\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\002\181\012\n\012\018\002\181\000\000\000\000\000\000\000\000\000\000\002\181\000\000\012\026\002\181\000\000\000\000\000\000\000\000\000\000\002\181\002\181\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\181\002\181\011\170\011\234\012\"\012*\012:\002\181\002\181\000\000\000\000\002\181\000\000\002\181\012B\000\000\000\000\000\000\000\000\002\181\000\000\000\000\002\181\002\181\012J\000\000\002\181\002\181\002\181\002\181\000\000\000\000\000\000\002\181\000\000\002\181\002\181\000\000\002\181\002\181\002\181\002\181\0122\002\181\002\181\000\000\000\000\002\181\012R\002\181\000\000\000\000\000\000\000\000\002\181\002\181\012Z\012b\002\185\002\185\000\000\002\185\000\000\002\185\000\000\000\000\002\185\000\000\000\000\002\185\000\000\002\185\000\000\000\000\011\162\000\000\002\185\002\185\002\185\000\000\002\185\002\185\002\185\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\002\185\000\000\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\185\002\185\012\n\012\018\002\185\000\000\000\000\000\000\000\000\000\000\002\185\000\000\012\026\002\185\000\000\000\000\000\000\000\000\000\000\002\185\002\185\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\185\002\185\011\170\011\234\012\"\012*\012:\002\185\002\185\000\000\000\000\002\185\000\000\002\185\012B\000\000\000\000\000\000\000\000\002\185\000\000\000\000\002\185\002\185\012J\000\000\002\185\002\185\002\185\002\185\000\000\000\000\000\000\002\185\000\000\002\185\002\185\000\000\002\185\002\185\002\185\002\185\0122\002\185\002\185\000\000\000\000\002\185\002\185\002\185\000\000\000\000\000\000\000\000\002\185\002\185\012Z\012b\002\189\002\189\000\000\002\189\000\000\002\189\000\000\000\000\002\189\000\000\000\000\002\189\000\000\002\189\000\000\000\000\011\162\000\000\002\189\002\189\002\189\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\002\189\000\000\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\002\189\012\n\012\018\002\189\000\000\000\000\000\000\000\000\000\000\002\189\000\000\012\026\002\189\000\000\000\000\000\000\000\000\000\000\002\189\002\189\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\189\002\189\011\170\011\234\012\"\012*\012:\002\189\002\189\000\000\000\000\002\189\000\000\002\189\012B\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002\189\002\189\012J\000\000\002\189\002\189\002\189\002\189\000\000\000\000\000\000\002\189\000\000\002\189\002\189\000\000\002\189\002\189\002\189\002\189\0122\002\189\002\189\000\000\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\002\189\002\189\012Z\012b\t\197\t\197\000\000\t\197\000\000\t\197\000\000\000\000\t\197\000\000\000\000\t\197\000\000\t\197\000\000\000\000\011\162\000\000\t\197\t\197\t\197\000\000\t\197\t\197\t\197\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\012\002\000\000\t\197\000\000\000\000\000\000\000\000\000\000\000\000\t\197\t\197\012\n\012\018\t\197\000\000\000\000\000\000\000\000\000\000\t\197\000\000\012\026\t\197\000\000\000\000\000\000\000\000\000\000\t\197\t\197\000\246\000\000\000\000\000\000\000\000\000\000\000\000\t\197\t\197\011\170\011\234\012\"\012*\012:\t\197\t\197\000\000\000\000\t\197\000\000\t\197\012B\000\000\000\000\000\000\000\000\t\197\000\000\000\000\t\197\t\197\012J\000\000\t\197\t\197\t\197\t\197\000\000\000\000\000\000\t\197\000\000\t\197\t\197\000\000\t\197\t\197\t\197\t\197\0122\t\197\t\197\000\000\000\000\t\197\012R\t\197\000\000\000\000\000\000\000\000\t\197\t\197\012Z\012b\002\193\002\193\000\000\002\193\000\000\002\193\000\000\000\000\002\193\000\000\000\000\002\193\000\000\002\193\000\000\000\000\011\162\000\000\002\193\002\193\002\193\000\000\002\193\002\193\002\193\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\012\002\000\000\002\193\000\000\000\000\000\000\000\000\000\000\000\000\002\193\002\193\012\n\012\018\002\193\000\000\000\000\000\000\000\000\000\000\002\193\000\000\012\026\002\193\000\000\000\000\000\000\000\000\000\000\002\193\002\193\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\193\002\193\011\170\011\234\012\"\012*\012:\002\193\002\193\000\000\000\000\002\193\000\000\002\193\012B\000\000\000\000\000\000\000\000\002\193\000\000\000\000\002\193\002\193\012J\000\000\002\193\002\193\002\193\002\193\000\000\000\000\000\000\002\193\000\000\002\193\002\193\000\000\012j\002\193\002\193\012r\0122\002\193\002\193\000\000\000\000\002\193\012R\002\193\000\000\000\000\000\000\000\000\002\193\002\193\012Z\012b\t\193\t\193\000\000\t\193\000\000\t\193\000\000\000\000\t\193\000\000\000\000\t\193\000\000\t\193\000\000\000\000\011\162\000\000\t\193\t\193\t\193\000\000\t\193\t\193\t\193\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\012\002\000\000\t\193\000\000\000\000\000\000\000\000\000\000\000\000\t\193\t\193\012\n\012\018\t\193\000\000\000\000\000\000\000\000\000\000\t\193\000\000\012\026\t\193\000\000\000\000\000\000\000\000\000\000\t\193\t\193\000\246\000\000\000\000\000\000\000\000\000\000\000\000\t\193\t\193\011\170\011\234\012\"\012*\012:\t\193\t\193\000\000\000\000\t\193\000\000\t\193\012B\000\000\000\000\000\000\000\000\t\193\000\000\000\000\t\193\t\193\012J\000\000\t\193\t\193\t\193\t\193\000\000\000\000\000\000\t\193\000\000\t\193\t\193\000\000\t\193\t\193\t\193\t\193\0122\t\193\t\193\000\000\000\000\t\193\012R\t\193\000\000\000\000\000\000\000\000\t\193\t\193\012Z\012b\002\237\002\237\000\000\002\237\000\000\002\237\000\000\000\000\002\237\000\000\000\000\002\237\000\000\002\237\000\000\000\000\011\162\000\000\002\237\002\237\002\237\000\000\002\237\002\237\002\237\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\012\002\000\000\002\237\000\000\000\000\000\000\000\000\000\000\000\000\002\237\002\237\012\n\012\018\002\237\000\000\000\000\000\000\000\000\000\000\002\237\000\000\012\026\002\237\000\000\000\000\000\000\000\000\000\000\002\237\002\237\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\237\002\237\011\170\011\234\012\"\012*\012:\002\237\002\237\000\000\000\000\002\237\000\000\002\237\012B\000\000\000\000\000\000\000\000\002\237\000\000\000\000\002\237\002\237\012J\000\000\002\237\002\237\002\237\002\237\000\000\000\000\000\000\002\237\000\000\002\237\002\237\000\000\012j\002\237\002\237\012r\0122\002\237\002\237\000\000\000\000\002\237\012R\002\237\000\000\000\000\000\000\000\000\002\237\002\237\012Z\012b\002\253\002\253\000\000\002\253\000\000\002\253\000\000\000\000\002\253\000\000\000\000\002\253\000\000\002\253\000\000\000\000\011\162\000\000\002\253\002\253\002\253\000\000\002\253\002\253\002\253\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\012\002\000\000\002\253\000\000\000\000\000\000\000\000\000\000\000\000\002\253\002\253\012\n\012\018\002\253\000\000\000\000\000\000\000\000\000\000\002\253\000\000\012\026\002\253\000\000\000\000\000\000\000\000\000\000\002\253\002\253\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\253\002\253\011\170\011\234\012\"\012*\012:\002\253\002\253\000\000\000\000\002\253\000\000\002\253\012B\000\000\000\000\000\000\000\000\002\253\000\000\000\000\002\253\002\253\012J\000\000\002\253\002\253\002\253\002\253\000\000\000\000\000\000\002\253\000\000\002\253\002\253\000\000\012j\002\253\002\253\012r\0122\002\253\002\253\000\000\000\000\002\253\012R\002\253\000\000\000\000\000\000\000\000\002\253\002\253\012Z\012b\002\245\002\245\000\000\002\245\000\000\002\245\000\000\000\000\002\245\000\000\000\000\002\245\000\000\002\245\000\000\000\000\011\162\000\000\002\245\002\245\002\245\000\000\002\245\002\245\002\245\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\012\002\000\000\002\245\000\000\000\000\000\000\000\000\000\000\000\000\002\245\002\245\012\n\012\018\002\245\000\000\000\000\000\000\000\000\000\000\002\245\000\000\012\026\002\245\000\000\000\000\000\000\000\000\000\000\002\245\002\245\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\245\002\245\011\170\011\234\012\"\012*\012:\002\245\002\245\000\000\000\000\002\245\000\000\002\245\012B\000\000\000\000\000\000\000\000\002\245\000\000\000\000\002\245\002\245\012J\000\000\002\245\002\245\002\245\002\245\000\000\000\000\000\000\002\245\000\000\002\245\002\245\000\000\012j\002\245\002\245\012r\0122\002\245\002\245\000\000\000\000\002\245\012R\002\245\000\000\000\000\000\000\000\000\002\245\002\245\012Z\012b\002\225\002\225\000\000\002\225\000\000\002\225\000\000\000\000\002\225\000\000\000\000\002\225\000\000\002\225\000\000\000\000\011\162\000\000\002\225\002\225\002\225\000\000\002\225\002\225\002\225\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\012\002\000\000\002\225\000\000\000\000\000\000\000\000\000\000\000\000\002\225\002\225\012\n\012\018\002\225\000\000\000\000\000\000\000\000\000\000\002\225\000\000\012\026\002\225\000\000\000\000\000\000\000\000\000\000\002\225\002\225\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\225\002\225\011\170\011\234\012\"\012*\012:\002\225\002\225\000\000\000\000\002\225\000\000\002\225\012B\000\000\000\000\000\000\000\000\002\225\000\000\000\000\002\225\002\225\012J\000\000\002\225\002\225\002\225\002\225\000\000\000\000\000\000\002\225\000\000\002\225\002\225\000\000\012j\002\225\002\225\012r\0122\002\225\002\225\000\000\000\000\002\225\012R\002\225\000\000\000\000\000\000\000\000\002\225\002\225\012Z\012b\002\233\002\233\000\000\002\233\000\000\002\233\000\000\000\000\002\233\000\000\000\000\002\233\000\000\002\233\000\000\000\000\011\162\000\000\002\233\002\233\002\233\000\000\002\233\002\233\002\233\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\012\002\000\000\002\233\000\000\000\000\000\000\000\000\000\000\000\000\002\233\002\233\012\n\012\018\002\233\000\000\000\000\000\000\000\000\000\000\002\233\000\000\012\026\002\233\000\000\000\000\000\000\000\000\000\000\002\233\002\233\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\233\002\233\011\170\011\234\012\"\012*\012:\002\233\002\233\000\000\000\000\002\233\000\000\002\233\012B\000\000\000\000\000\000\000\000\002\233\000\000\000\000\002\233\002\233\012J\000\000\002\233\002\233\002\233\002\233\000\000\000\000\000\000\002\233\000\000\002\233\002\233\000\000\012j\002\233\002\233\012r\0122\002\233\002\233\000\000\000\000\002\233\012R\002\233\000\000\000\000\000\000\000\000\002\233\002\233\012Z\012b\002\229\002\229\000\000\002\229\000\000\002\229\000\000\000\000\002\229\000\000\000\000\002\229\000\000\002\229\000\000\000\000\011\162\000\000\002\229\002\229\002\229\000\000\002\229\002\229\002\229\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\012\002\000\000\002\229\000\000\000\000\000\000\000\000\000\000\000\000\002\229\002\229\012\n\012\018\002\229\000\000\000\000\000\000\000\000\000\000\002\229\000\000\012\026\002\229\000\000\000\000\000\000\000\000\000\000\002\229\002\229\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\229\002\229\011\170\011\234\012\"\012*\012:\002\229\002\229\000\000\000\000\002\229\000\000\002\229\012B\000\000\000\000\000\000\000\000\002\229\000\000\000\000\002\229\002\229\012J\000\000\002\229\002\229\002\229\002\229\000\000\000\000\000\000\002\229\000\000\002\229\002\229\000\000\012j\002\229\002\229\012r\0122\002\229\002\229\000\000\000\000\002\229\012R\002\229\000\000\000\000\000\000\000\000\002\229\002\229\012Z\012b\002\241\002\241\000\000\002\241\000\000\002\241\000\000\000\000\002\241\000\000\000\000\002\241\000\000\002\241\000\000\000\000\011\162\000\000\002\241\002\241\002\241\000\000\002\241\002\241\002\241\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\012\002\000\000\002\241\000\000\000\000\000\000\000\000\000\000\000\000\002\241\002\241\012\n\012\018\002\241\000\000\000\000\000\000\000\000\000\000\002\241\000\000\012\026\002\241\000\000\000\000\000\000\000\000\000\000\002\241\002\241\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\241\002\241\011\170\011\234\012\"\012*\012:\002\241\002\241\000\000\000\000\002\241\000\000\002\241\012B\000\000\000\000\000\000\000\000\002\241\000\000\000\000\002\241\002\241\012J\000\000\002\241\002\241\002\241\002\241\000\000\000\000\000\000\002\241\000\000\002\241\002\241\000\000\012j\002\241\002\241\012r\0122\002\241\002\241\000\000\000\000\002\241\012R\002\241\000\000\000\000\000\000\000\000\002\241\002\241\012Z\012b\003\001\003\001\000\000\003\001\000\000\003\001\000\000\000\000\003\001\000\000\000\000\003\001\000\000\003\001\000\000\000\000\011\162\000\000\003\001\003\001\003\001\000\000\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\012\002\000\000\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\003\001\012\n\012\018\003\001\000\000\000\000\000\000\000\000\000\000\003\001\000\000\012\026\003\001\000\000\000\000\000\000\000\000\000\000\003\001\003\001\000\246\000\000\000\000\000\000\000\000\000\000\000\000\003\001\003\001\011\170\011\234\012\"\012*\012:\003\001\003\001\000\000\000\000\003\001\000\000\003\001\012B\000\000\000\000\000\000\000\000\003\001\000\000\000\000\003\001\003\001\012J\000\000\003\001\003\001\003\001\003\001\000\000\000\000\000\000\003\001\000\000\003\001\003\001\000\000\012j\003\001\003\001\012r\0122\003\001\003\001\000\000\000\000\003\001\012R\003\001\000\000\000\000\000\000\000\000\003\001\003\001\012Z\012b\002\249\002\249\000\000\002\249\000\000\002\249\000\000\000\000\002\249\000\000\000\000\002\249\000\000\002\249\000\000\000\000\011\162\000\000\002\249\002\249\002\249\000\000\002\249\002\249\002\249\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\012\002\000\000\002\249\000\000\000\000\000\000\000\000\000\000\000\000\002\249\002\249\012\n\012\018\002\249\000\000\000\000\000\000\000\000\000\000\002\249\000\000\012\026\002\249\000\000\000\000\000\000\000\000\000\000\002\249\002\249\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\249\002\249\011\170\011\234\012\"\012*\012:\002\249\002\249\000\000\000\000\002\249\000\000\002\249\012B\000\000\000\000\000\000\000\000\002\249\000\000\000\000\002\249\002\249\012J\000\000\002\249\002\249\002\249\002\249\000\000\000\000\000\000\002\249\000\000\002\249\002\249\000\000\012j\002\249\002\249\012r\0122\002\249\002\249\000\000\000\000\002\249\012R\002\249\000\000\000\000\000\000\000\000\002\249\002\249\012Z\012b\002\221\002\221\000\000\002\221\000\000\002\221\000\000\000\000\002\221\000\000\000\000\002\221\000\000\002\221\000\000\000\000\011\162\000\000\002\221\002\221\002\221\000\000\002\221\002\221\002\221\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\012\002\000\000\002\221\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\221\012\n\012\018\002\221\000\000\000\000\000\000\000\000\000\000\002\221\000\000\012\026\002\221\000\000\000\000\000\000\000\000\000\000\002\221\002\221\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\221\011\170\011\234\012\"\012*\012:\002\221\002\221\000\000\000\000\002\221\000\000\002\221\012B\000\000\000\000\000\000\000\000\002\221\000\000\000\000\002\221\002\221\012J\000\000\002\221\002\221\002\221\002\221\000\000\000\000\000\000\002\221\000\000\002\221\002\221\000\000\012j\002\221\002\221\012r\0122\002\221\002\221\000\000\000\000\002\221\012R\002\221\000\000\000\000\000\000\000\000\002\221\002\221\012Z\012b\0025\0025\000\000\0025\000\000\0025\000\000\000\000\0025\000\000\000\000\0025\000\000\0025\000\000\000\000\0025\000\000\0025\0025\0025\000\000\0025\0025\0025\000\000\000\000\000\000\000\000\000\000\0025\0025\0025\0025\0025\000\000\0025\000\000\000\000\000\000\000\000\000\000\000\000\0025\0025\0025\0025\0025\000\000\000\000\000\000\000\000\000\000\0025\000\000\0025\0025\000\000\000\000\000\000\000\000\000\000\0025\0025\0025\000\000\000\000\000\000\000\000\000\000\000\000\0025\0025\0025\0025\0025\0025\0025\0025\0025\000\000\000\000\0025\000\000\0025\0025\000\000\000\000\000\000\000\000\0025\000\000\000\000\0025\0025\0025\000\000\0025\0025\0025\0025\000\000\000\000\000\000\0025\000\000\0025\0025\000\000\0025\0025\0025\0025\0025\0025\0025\000\000\000\000\0025\0025\016N\000\000\000\000\000\000\000\000\0025\0025\0025\0025\002Q\002Q\000\000\002Q\000\000\002Q\000\000\000\000\002Q\000\000\000\000\002Q\000\000\002Q\000\000\000\000\011\162\000\000\002Q\002Q\002Q\000\000\002Q\002Q\002Q\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\012\002\000\000\002Q\000\000\000\000\000\000\000\000\000\000\000\000\002Q\002Q\012\n\012\018\002Q\000\000\000\000\000\000\000\000\000\000\002Q\000\000\012\026\002Q\000\000\000\000\000\000\000\000\000\000\002Q\002Q\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002Q\002Q\011\170\011\234\012\"\012*\012:\002Q\002Q\000\000\000\000\002Q\000\000\002Q\012B\000\000\000\000\000\000\000\000\002Q\000\000\000\000\002Q\002Q\012J\000\000\002Q\002Q\016f\002Q\000\000\000\000\000\000\002Q\000\000\002Q\002Q\000\000\012j\002Q\002Q\012r\0122\002Q\002Q\000\000\000\000\002Q\012R\002Q\000\000\000\000\000\000\000\000\002Q\002Q\012Z\012b\002M\002M\000\000\002M\000\000\002M\000\000\000\000\002M\000\000\000\000\002M\000\000\002M\000\000\000\000\011\162\000\000\002M\002M\002M\000\000\002M\002M\002M\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\012\002\000\000\002M\000\000\000\000\000\000\000\000\000\000\000\000\002M\002M\012\n\012\018\002M\000\000\000\000\000\000\000\000\000\000\002M\000\000\012\026\002M\000\000\000\000\000\000\000\000\000\000\002M\002M\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002M\002M\011\170\011\234\012\"\012*\012:\002M\002M\000\000\000\000\002M\000\000\002M\012B\000\000\000\000\000\000\000\000\002M\000\000\000\000\002M\002M\012J\000\000\002M\002M\002M\002M\000\000\000\000\000\000\002M\000\000\002M\002M\000\000\012j\002M\002M\012r\0122\002M\002M\000\000\000\000\002M\012R\002M\000\000\000\000\000\000\000\000\002M\002M\012Z\012b\002\217\002\217\000\000\002\217\000\000\002\217\000\000\000\000\002\217\000\000\000\000\002\217\000\000\002\217\000\000\000\000\011\162\000\000\002\217\002\217\002\217\000\000\002\217\002\217\002\217\000\000\000\000\000\000\000\000\000\000\011\218\011\242\011\250\011\226\012\002\000\000\002\217\000\000\000\000\000\000\000\000\000\000\000\000\002\217\002\217\012\n\012\018\002\217\000\000\000\000\000\000\000\000\000\000\002\217\000\000\012\026\002\217\000\000\000\000\000\000\000\000\000\000\002\217\002\217\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\217\002\217\011\170\011\234\012\"\012*\012:\002\217\002\217\000\000\000\000\002\217\000\000\002\217\012B\000\000\000\000\000\000\000\000\002\217\000\000\000\000\002\217\002\217\012J\000\000\002\217\002\217\002\217\002\217\000\000\000\000\000\000\002\217\000\000\002\217\002\217\000\000\012j\002\217\002\217\012r\0122\002\217\002\217\000\000\000\000\002\217\012R\002\217\000\000\000\000\000\000\000\000\002\217\002\217\012Z\012b\002A\002A\000\000\002A\000\000\002A\000\000\000\000\002A\000\000\000\000\002A\000\000\002A\000\000\000\000\002A\000\000\002A\002A\002A\000\000\002A\002A\002A\000\000\000\000\000\000\000\000\000\000\002A\002A\002A\002A\002A\000\000\002A\000\000\000\000\000\000\000\000\000\000\000\000\002A\002A\002A\002A\002A\000\000\000\000\000\000\000\000\000\000\002A\000\000\002A\002A\000\000\000\000\000\000\000\000\000\000\002A\002A\002A\000\000\000\000\000\000\000\000\000\000\000\000\002A\002A\002A\002A\002A\002A\002A\002A\002A\000\000\000\000\002A\000\000\002A\002A\000\000\000\000\000\000\000\000\002A\000\000\000\000\002A\002A\002A\000\000\002A\002A\002A\002A\000\000\000\000\000\000\002A\000\000\002A\002A\000\000\002A\002A\002A\002A\002A\002A\002A\000\000\000\000\002A\002A\016N\000\000\000\000\000\000\000\000\002A\002A\002A\002A\002E\002E\000\000\002E\000\000\002E\000\000\000\000\002E\000\000\000\000\002E\000\000\002E\000\000\000\000\002E\000\000\002E\002E\002E\000\000\002E\002E\002E\b\193\000\000\000\000\007B\b\193\002E\002E\002E\002E\002E\000\000\002E\000\000\b\209\000\000\000\000\b\209\000\000\002E\002E\002E\002E\002E\007F\000\000\000\000\000\000\000\000\002E\000\000\002E\002E\000\000\000\000\026\022\000\000\000\000\002E\002E\002E\000\000\000\000\000\000\000\000\000\000\b\193\002E\002E\002E\002E\002E\002E\002E\002E\002E\b\209\000\000\002E\000\000\002E\002E\000\000\000\000\000\000\000\000\002E\b\193\000\246\002E\002E\002E\b\209\002E\002E\002E\002E\000\000\007B\000\000\002E\020\210\002E\002E\000\000\002E\002E\002E\002E\002E\002E\002E\000\000\000\000\002E\002E\016N\000\000\007F\b\209\b\177\002E\002E\002E\002E\001\014\0056\000\006\000\000\000\000\000\000\002\234\002\238\007J\003\026\002\174\000\000\006\238\007V\003\017\003&\001\018\003\017\000\000\007j\002\194\000\000\b\209\007v\000\000\001\218\000\000\000\000\000\000\004\n\001\026\n\002\n\006\001&\001*\000\000\000\000\000\246\003.\007\169\000\n\003\198\000\000\019\202\000\000\n*\n.\000\000\003\250\004\006\004\018\004\022\n2\bN\000\000\001B\003\017\002\226\007\169\000\000\004\014\t\170\007\169\000\000\000\000\t\174\t\178\t\190\t\210\000\000\006z\003\017\003\017\001F\001J\001N\001R\001V\000\000\000\000\nF\001Z\007J\000\000\000\000\001^\006\238\012\206\nR\nj\n\210\006\134\006\138\007j\000\000\001b\000\000\007v\000\000\003\017\000\000\001f\000\000\000\246\000\000\000\000\000\000\000\000\018\138\000\000\000\000\002\174\001\162\0076\000\000\000\000\006\142\t\198\000\000\001\166\000\000\016\150\004\166\n\230\001\014\001\174\000\006\001\178\001\182\025\018\002\234\002\238\000\000\003\026\002\174\000\000\000\000\000\000\000\000\003&\001\018\000\000\000\000\000\000\t\254\000\000\000\000\000\000\007J\001\218\018\142\000\000\006\238\004\n\001\026\n\002\n\006\001&\001*\007j\000\000\000\000\003.\007v\000\000\003\198\018\154\n\n\0256\n*\n.\000\000\003\250\004\006\004\018\004\022\n2\bN\000\000\001B\000\000\002\226\000\000\000\000\004\014\t\170\000\000\000\000\000\000\t\174\t\178\t\190\t\210\006\138\006z\000\000\000\000\001F\001J\001N\001R\001V\000\000\025B\nF\001Z\000\000\000\000\000\000\001^\007B\000\000\nR\nj\n\210\006\134\006\138\000\000\000\000\001b\000\000\024\214\000\000\000\000\000\000\001f\000\000\000\000\000\000\000\000\007F\000\000\000\000\000\000\000\000\000\000\001\162\007\138\000\000\000\000\006\142\t\198\014y\001\166\000\000\016\150\004\166\n\230\004\237\001\174\000\006\001\178\001\182\000\254\002\234\002\238\002\242\003\026\002\174\000\000\000\000\000\000\014y\003&\000\000\002&\003\154\000\000\002*\000\000\004\237\000\000\003\158\001\218\000\246\020\202\000\000\003*\000\000\003\162\003\166\000\000\0026\000\000\003\170\002>\003.\014e\000\000\003\198\000\000\020^\000\000\003\242\003\246\000\000\003\250\004\006\004\018\004\022\004\030\bN\000\000\000\000\020\194\002\226\000\000\000\000\004\014\t\170\020\218\002B\000\000\t\174\t\178\t\190\t\210\000\000\006z\007J\000\000\000\000\000\000\006\238\r\030\000\000\020\226\000\000\nF\000\000\007j\000\000\000\000\t\241\007v\000\000\nR\nj\n\210\006\134\006\138\020\234\021&\000\000\000\000\004\237\004\237\000\000\000\000\000\000\000\000\000\000\007\182\012\170\000\000\t\241\000\000\002F\019\170\000\000\000\000\000\000\021b\025j\006\142\t\198\018\014\000\185\000\000\t\222\004\166\n\230\000\185\004u\002\238\000\185\000\000\002\174\000\000\011\014\000\000\000\000\003&\018\138\000\000\000\185\002\174\000\185\000\000\000\185\000\000\000\185\001\218\000\000\011F\000\000\003*\000\246\000\000\000\000\000\000\000\000\011N\000\185\000\000\003.\000\000\000\000\003\198\000\000\000\185\000\000\000\000\000\000\000\185\000\000\004\006\000\246\001\198\000\000\000\185\000\000\000\000\000\185\002\226\018\142\000\000\004\014\t\170\000\185\000\185\000\185\t\174\t\178\t\190\000\000\014\186\006z\000\185\000\185\000\000\018\154\007J\t\241\000\000\000\185\006\238\012\174\004u\000\185\000\000\t\241\000\000\007j\000\000\000\000\000\000\007v\006\134\006\138\000\185\000\185\007J\000\000\000\185\000\185\006\238\n\138\006\138\000\000\000\000\000\000\000\000\007j\000\185\000\246\000\000\007v\000\000\000\000\000\000\000\185\000\185\006\142\t\198\000\000\000\000\000\209\t\222\004\166\016\234\000\185\000\209\000\185\002\238\000\209\029\"\002\174\000\000\011\014\000\000\000\000\003&\000\000\000\000\000\209\016\242\000\209\000\000\000\209\000\000\000\209\001\218\000\000\011F\000\000\003*\000\000\000\000\000\000\007J\001\025\011N\000\209\006\238\003.\001\025\000\000\003\198\000\000\000\209\007j\000\000\000\000\000\209\007v\004\006\000\000\001\198\000\000\000\209\000\000\000\000\000\209\002\226\001\025\000\000\004\014\t\170\000\209\000\209\000\209\t\174\t\178\t\190\000\000\014\186\006z\000\209\000\209\000\000\000\000\000\000\000\000\000\000\000\209\000\000\000\000\001\025\000\209\003:\000\000\000\000\000\000\000\000\000\000\000\000\001\025\006\134\006\138\000\209\000\209\000\000\001\025\000\209\000\209\001\210\001\214\000\000\000\000\000\000\000\000\001\025\001\025\000\209\000\000\000\000\000\000\000\000\000\000\000\000\000\209\000\209\006\142\t\198\001\218\002\178\000\000\t\222\004\166\000\000\000\209\000\000\000\209\000\014\000\018\000\022\000\026\000\030\001\025\000\"\000&\000*\000.\0002\000\000\0006\000:\001\025\002\222\000>\029\150\000\000\000\000\000B\002\218\000\000\002\226\004N\004Z\000\000\000F\000\000\000\000\000\000\004f\000\000\000J\000\000\000N\000R\000V\000Z\000^\000b\000f\000j\000\000\000\000\000\000\000n\000r\004j\000v\000z\029\194\000~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\130\029\174\000\000\000\134\000\138\000\000\000\000\000\000\000\000\000\000\000\142\000\146\000\150\000\000\000\000\000\000\000\000\000\000\000\000\000\154\000\158\000\162\000\166\000\000\000\170\000\174\000\178\000\000\000\000\000\000\000\182\000\186\000\190\000\000\000\000\000\000\000\194\000\006\000\198\000\202\000\254\002\234\002\238\002\242\003\026\002\174\000\000\000\206\000\000\000\210\003&\000\000\000\000\005\r\000\000\000\214\000\218\004.\000\222\003\158\001\218\000\000\000\000\000\000\003*\000\000\003\162\003\166\000\000\000\000\000\000\003\170\000\000\003.\000\000\000\000\003\198\000\000\020^\000\000\003\242\003\246\000\000\003\250\004\006\004\018\004\022\004\030\bN\000\000\000\000\020\194\002\226\000\000\000\000\004\014\t\170\020\218\000\000\000\000\t\174\t\178\t\190\t\210\003\153\006z\000\000\000\000\000\000\000\000\000\000\003\153\000\000\020\226\003\153\nF\000\000 Z\000\000\000\000\000\000\000\000\003\153\nR\nj\n\210\006\134\006\138\020\234\021&\003\153\000\000 {\017\186\000\000\000\000\000\000\000\000\000\000\000\000\003\153\000\000\000\000\000\000\000\000\016\170\003\153\000\000\003\153\000\000\025j\006\142\t\198\017\"\003\153\000\000\t\222\004\166\n\230\000\006\000\000\003\153\000\254\002\234\002\238\002\242\003\026\002\174\000\000\000\000\018\138\000\000\003&\002\174\000\000 \170\000\000\000\000\000\000\017B\000\000\003\158\001\218\000\000\020\230\000\000\003*\000\000\003\162\003\166\000\000\000\000\000\000\003\170\000\000\003.\000\000\000\000\003\198\000\000\020^\000\000\003\242\003\246\000\000\003\250\004\006\004\018\004\022\004\030\bN\000\000\018\142\020\194\002\226\000\000\002\014\004\014\t\170\020\218\000\000\000\000\t\174\t\178\t\190\t\210\002\018\006z\018\154\000\000\025\022\000\000\000\000\000\000\001\218\020\226\000\000\nF\000\000 Z\000\000\000\000\000\000\000\000\000\000\nR\nj\n\210\006\134\006\138\020\234\021&\003\130\000\000\005\021\006\138\018\138\000\000\bz\002\174\001\230\001\014\000\000\000\000\000\000\025\"\002\226\003>\002\238\n\194\000\000\002\174\025j\006\142\t\198\000\000\003&\001\018\t\222\004\166\n\230\002\194\000\000\024\214\000\000\000\000\001\218\000\000\000\000\000\000\001\022\001\026\001\030\003^\001&\001*\b~\000\000\018\142\000\000\000\000\000\000\000\000\004\217\003b\000\000\0016\0072\004\217\000\000\003Z\r\014\001\198\001>\018\154\000\000\001B\000\000\002\226\000\000\000\000\004\"\004&\000\000\000\000\000\000\004*\004\217\0042\006n\000\000\006z\000\000\000\000\001F\001J\001N\001R\001V\000\000\004\217\006\138\001Z\006~\000\000\004\217\001^\000\000\000\000\000\000\004\217\000\000\006\134\006\138\000\000\006\206\001b\000\000\000\000\004\217\000\000\000\000\001f\000\000\004\217\004\217\003\018\000\246\000\000\024\234\000\000\000\000\000\000\001\162\0076\004\217\000\000\006\142\007\150\000\000\001\166\000\000\001\170\004\166\001\014\000\000\001\174\004\217\001\178\001\182\003>\002\238\012\142\000\000\002\174\000\000\004\217\000\000\007\154\003&\001\018\004\217\004\217\003\018\002\194\000\000\000\000\000\000\000\000\001\218\004\217\004\217\004\217\001\022\001\026\001\030\003^\001&\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003b\000\000\0016\0072\000\000\000\000\003Z\r\014\001\198\001>\000\000\004\217\001B\000\000\002\226\000\246\000\000\004\"\004&\000\000\004\217\000\000\004*\000\000\0042\006n\000\000\006z\000\000\000\000\001F\001J\001N\001R\001V\000\000\000\000\000\000\001Z\006~\000\000\000\000\001^\000\000\000\000\000\000\000\000\000\000\006\134\006\138\000\000\006\206\001b\000\000\000\000\000\000\000\000\000\000\001f\000\000\007J\000\000\000\000\000\000\006\238\000\000\000\000\000\000\000\000\001\162\0076\007j\000\000\006\142\000\000\007v\001\166\000\000\001\170\004\166\000\000\0049\001\174\000\000\001\178\001\182\0049\003>\002\238\0049\0012\002\174\000\000\b\002\000\000\000\000\003&\003\017\000\000\0049\000\000\000\000\000\000\0049\003\017\0049\001\218\000\000\b:\000\000\000\000\000\000\000\000\003B\000\000\003\017\nv\0049\000\000\000\000\000\000\000\000\000\000\000\n\0049\000\000\000\000\003N\000\000\000\000\r^\000\000\001\198\000\000\0049\000\000\000\000\0049\002\226\003\017\000\000\004\"\004&\0049\0049\011\221\004*\003\017\0042\000\000\012\154\006z\000\000\000\000\003\017\000\000\000\000\007\133\000\000\0049\0049\000\000\007\133\006~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\134\006\138\0049\0049\rn\003\017\0049\0049\000\000\007\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\221\000\000\011\026\000\000\011\221\r\146\0049\006\142\000\000\000\000\000\000\011\221\001\014\004\166\007\133\011\221\000\000\0049\003>\002\238\rb\003\174\002\174\007\133\000\000\000\000\028\218\003&\001\018\007\133\007\133\000\246\002\194\000\000\000\000\000\000\000\000\001\218\007\133\007\133\000\000\001\022\001\026\001\030\003^\001&\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003b\000\000\0016\0072\000\000\000\000\003Z\r\014\001\198\001>\007\133\003\017\001B\000\000\002\226\000\246\000\000\004\"\004&\007\133\000\000\003\017\004*\000\000\0042\006n\000\000\006z\000\000\003\017\001F\001J\001N\001R\001V\000\000\027\146\000\n\001Z\006~\000\000\000\000\001^\000\000\000\000\000\000\000\000\003\017\006\134\006\138\000\000\006\206\001b\003\017\000\000\003\017\000\000\000\000\001f\000\000\007J\003\017\000\000\000\000\006\238\028\222\000\000\000\000\003\017\001\162\0076\007j\000\000\006\142\000\000\007v\001\166\000\000\001\170\004\166\001\014\000\000\001\174\000\000\001\178\001\182\003>\002\238\015\250\000\000\002\174\003\017\000\000\000\000\000\000\003&\001\018\000\000\000\000\000\000\002\194\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\000\001\022\001\026\001\030\003^\001&\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\253\003b\000\000\0016\0072\022\142\000\000\003Z\r\014\001\198\001>\000\000\000\000\001B\000\000\002\226\000\000\000\000\004\"\004&\000\000\000\000\005\005\004*\003\158\0042\006n\025\150\006z\000\000\000\000\001F\001J\001N\001R\001V\000\000\000\000\000\000\001Z\006~\000\000\000\000\001^\000\000\000\000\003\158\022\186\000\000\006\134\006\138\000\000\006\206\001b\000\000\000\000\020\194\000\000\000\000\001f\000\000\000\000\020\218\000\000\000\000\000\000\000\000\000\000\000\000\026\n\001\162\0076\022\230\000\000\006\142\000\000\000\000\001\166\020\194\001\170\004\166\001\014\000\000\001\174\020\218\001\178\001\182\003>\002\238\007\018\000\000\002\174\000\000\026\174\026\190\000\000\003&\001\018\004\253\000\000\000\000\002\194\000\000\000\000\000\000\000\000\001\218\023J\000\000\000\000\001\022\001\026\001\030\003^\001&\001*\000\000\000\000\000\000\000\000\005\005\001\214\000\000\000\000\003b\000\000\0016\0072\000\000\027\178\003Z\012\162\001\198\001>\000\000\000\000\001B\000\000\002\226\001\218\000\000\004\"\004&\000\000\000\000\000\000\004*\000\000\0042\006n\000\000\006z\022v\000\000\001F\001J\001N\001R\001V\000\000\000\000\000\000\001Z\006~\000\000\004n\001^\022\238\000\000\000\000\000\000\002\226\006\134\006\138\000\000\006\206\001b\000\000\000\000\023\006\000\000\000\000\001f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\162\0076\000\000\000\000\006\142\000\000\000\000\001\166\000\000\001\170\004\166\000\000\t\221\001\174\000\006\001\178\001\182\000\254\002\234\002\238\002\026\003\026\002\174\000\000\000\000\000\000\000\000\003&\000\000\000\000\021f\000\000\t\221\000\000\t\221\t\221\003\158\001\218\000\000\000\000\000\000\003*\000\000\003\162\003\166\000\000\000\000\000\000\021j\000\000\003.\000\000\000\000\003\198\000\000\021\146\000\000\003\242\003\246\000\000\003\250\004\006\004\018\004\022\004\030\bN\000\000\000\000\020\194\002\226\000\000\000\000\004\014\t\170\020\218\000\000\000\000\t\174\t\178\t\190\t\210\000\000\006z\000\000\000\000\000\000\000\000\000\000\005\193\014\185\020\226\000\000\nF\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nR\nj\n\210\006\134\006\138\020\234\022*\005\193\000\000\004\225\000\000\005\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\221\000\000\n\030\000\000\000\000\022:\006\142\t\198\t\221\002\014\000\000\t\222\004\166\n\230\011\249\000\000\000\000\011\249\000\000\002\018\011\249\011\249\000\000\000\000\011\249\000\000\011\249\001\218\000\000\011\249\000\000\000\000\000\000\011\249\011\249\000\000\011\249\011\249\000\000\011\249\000\000\011\249\000\000\000\000\000\000\003\130\011\249\014\185\014\185\011\249\000\000\bz\000\000\001\230\000\000\000\000\000\000\000\000\011\249\002\226\011\249\005\193\000\000\011\249\000\000\011\249\000\000\014\185\000\000\014\185\000\000\011\249\000\000\000\000\011\249\011\249\000\000\005\193\011\249\011\249\005\193\011\249\000\000\011\249\011\249\000\000\003\017\000\000\000\000\b~\000\000\003\017\000\000\011\249\000\000\003\017\011\249\000\000\003\017\000\000\000\000\000\000\000\000\003\017\000\000\011\249\011\249\000\000\000\000\011\249\003\017\011\249\000\000\003\017\000\000\000\000\006\170\003\017\000\000\000\n\000\000\000\n\000\000\011\249\011\249\011\249\003\017\011\249\011\249\003\017\011\249\000\000\011\249\003\017\011\249\003\017\011\249\003\017\011\249\003\017\003\017\000\000\003\017\003\017\003\017\003\017\003\017\000\000\003\017\003\017\003\017\000\000\003\017\003\017\003\017\003\017\000\000\003\017\003\017\000\000\003\017\000\000\003\017\000\n\003\017\003\017\000\n\003\017\003\017\bR\000\000\003\017\000\n\000\000\003\017\000\n\018B\000\000\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\000\000\003\017\003\017\000\000\003\017\003\017\000\000\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\000\000\003\017\003\017\000\000\003\017\003\017\000\000\003\017\000\000\003\017\000\000\000\000\000\000\003\017\003\017\003\017\003\017\003\017\000\000\018~\000\000\000\000\003\017\003\017\000\000\003\017\003\017\000\000\003\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\017\003\017\bV\000a\000\000\003\017\003\017\003\017\000a\003\017\000a\000a\003\017\003\017\003\017\003\017\000\000\000\000\000\000\000a\000\000\000a\000a\000a\000\000\000a\000a\000a\000\000\tU\000\000\000\000\000\254\000\000\000\000\002\242\000\000\000\000\000\000\000a\000\000\000\000\000\000\000\000\000\000\005\r\000a\000a\000\000\000\000\000a\003\158\000\000\000\000\000a\000\000\000a\000\000\000\000\000a\000\000\000\000\000\000\003\170\000\000\000a\000a\000a\000\000\000\000\020^\000\000\000\000\000\000\000a\000a\000\000\000\000\000\000\000\000\0282\000a\000a\020\194\000\000\000a\000\000\000\000\000a\020\218\000\000\000\000\000\000\000\000\000\000\000\000\000a\000a\000a\000\000\000a\000a\000\000\000\000\000\000\020\226\tU\000\000\000\000\000\000\000a\000\000\000a\000\000\000a\000\000\000\000\005\145\000a\000\000\020\234\021&\005\145\000a\005\145\005\145\005\145\000a\000\000\000a\005\145\000\000\005\145\005\145\000\000\005\145\000\000\005\145\000\000\005\145\000\000\005\145\025j\005\145\005\145\005\145\000\000\005\145\005\145\005\145\000\000\000\000\000\000\005\145\000\000\000\000\000\000\000\000\000\000\000\000\005\145\005\145\000\000\000\000\000\000\000\000\000\000\000\000\005\145\005\145\000\000\000\000\005\145\005\145\000\000\000\000\005\145\000\000\005\145\005\145\005\145\005\145\000\000\000\000\019\226\000\000\000\000\005\145\005\145\005\145\000\000\002\014\000\000\000\000\000\000\005\145\005\145\005\145\000\000\005\145\000\000\002\018\000\000\005\145\000\000\000\000\000\000\005\145\000\000\001\218\005\145\005\145\005\145\000\000\005\145\005\145\000\000\000\000\005\145\005\145\005\145\000\000\005\145\005\145\000\000\000\000\000\000\003\130\000\000\000\000\000\000\023\210\005\145\bz\005\145\001\230\005\145\000\000\000\000\002\210\005\145\002\226\000\000\005\145\000\000\005\145\000\000\000\000\0075\005\145\000A\005\145\005\145\000\000\000A\000A\000\000\000A\000A\000\000\000\000\000\000\000\000\000A\000\000\000\000\000\000\000\000\0075\000\000\000\000\b~\000\000\000A\000\000\000\000\000\000\000A\000\000\000A\000A\000\000\000\000\000\000\000\000\000\000\000A\000\000\000\000\000A\000\000\000\000\000\000\000A\000A\000\000\000A\000A\000A\000A\000A\000A\000\000\000\000\000\000\000A\000\000\000\000\000A\000A\000\000\000\000\000\000\000A\000A\000A\000A\000\000\000A\000\000\000\000\000\000\000\000\000\000\007\157\000\000\000\000\000\000\000A\007\157\000\000\000\000\007\157\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\007\157\0071\000\000\000=\007\157\000\000\007\157\000=\000=\000\000\000=\000=\000\000\000\000\000\000\000\000\000=\000\000\007\157\000\000\000\000\0071\000A\000A\000\000\007\157\000=\000A\000A\000A\000=\000\000\000=\000=\000\000\007\157\000\000\000\000\007\157\000=\000\000\000\000\000=\000\000\007\157\007\157\000=\000=\000\000\000=\000=\000=\000=\000=\000=\000\000\000\000\000\000\000=\000\000\007\157\000=\000=\000\000\007\157\000\000\000=\000=\000=\000=\000\000\000=\000\000\000\000\000\000\007\157\007\157\020r\000\000\007\157\007\157\000=\014\029\000\000\000\000\014\029\000\000\000\000\000\000\000=\000=\000=\000=\000=\021\166\014\029\007A\007\157\014\001\000\000\000\000\014\029\014\001\014\001\000\000\014\001\014\001\000\000\000\000\000\000\000\000\014\001\000\000\014\029\000\000\000\000\007A\000=\000=\000\000\014\029\014\001\000=\000=\000=\014\001\000\000\014\001\014\001\000\000\014\029\000\000\000\000\014\029\014\001\000\000\000\000\014\001\000\000\014\029\000\000\014\001\014\001\000\000\014\001\014\001\014\001\014\001\014\001\014\001\000\000\000\000\000\000\014\001\000\000\014\029\014\001\014\001\000\000\014\029\000\000\014\001\014\001\014\001\014\001\000\000\014\001\000\000\000\000\000\000\014\029\014\029\000\000\000\000\014\029\000\000\014\001\000\000\000\000\000\000 R\000\000\000\000\000\000\014\001\014\001\014\001\014\001\014\001\000\000\000\000\007=\014\029\r\253\000\000\000\000\000\000\r\253\r\253\000\000\r\253\r\253\000\000\000\000\000\000\000\000\r\253\000\000\000\000\000\000\000\000\007=\014\001\014\001\000\000\000\000\r\253\014\001\014\001\014\001\r\253\000\000\r\253\r\253\000\000\000\000\000\000\000\000\000\000\r\253\000\000\000\000\r\253\000\000\000\000\000\000\r\253\r\253\000\000\r\253\r\253\r\253\r\253\r\253\r\253\001\210\002\170\000\000\r\253\002\174\000\000\r\253\r\253\000\000\000\000\000\000\r\253\r\253\r\253\r\253\000\000\r\253\000\000\000\000\001\218\002\178\001\238\002\186\000\000\000\000\000\000\r\253\000\000\000\000\001\250\000\000\000\000\000\000\000\000\r\253\r\253\r\253\r\253\r\253\000\000\000\000\000\000\000\000\002\190\002\198\002\206\000\000\000\000\000\000\002\218\000\000\002\226\004N\004Z\000\000\000\000\000\000\000\000\000\000\024\194\000\000\024\198\r\253\r\253\000\000\t\201\t\201\r\253\r\253\r\253\t\201\000\000\001\214\t\201\000\000\000\000\004j\000\000\000\000\000\000\000\000\t\201\000\000\t\201\t\201\t\201\006\138\t\201\t\201\t\201\000\000\000\000\000\000\000\000\004\217\000\000\024\210\004\217\000\000\000\000\000\000\t\201\000\000\000\000\000\000\000\000\000\000\004\217\t\201\t\201\000\000\000\000\t\201\004\217\024\214\000\000\004n\000\000\t\201\000\000\000\000\t\201\000\000\000\000\000\000\004\217\000\000\t\201\t\201\t\201\000\000\000\000\004\217\000\000\000\000\000\000\t\201\t\201\000\000\000\000\000\000\000\000\004\217\t\201\000\000\004\217\000\000\004\226\000\000\000\000\t\201\004\217\003\018\000\000\000\000\000\000\000\000\000\000\t\201\t\201\t\201\000\000\t\201\t\201\000\000\000\000\000\000\004\217\000\000\000\000\000\000\004\217\t\201\000\000\t\201\000\000\t\201\000\000\000\000\000\000\t\201\000\000\004\217\004\217\000\000\t\201\004\217\000\000\000\000\t\201\000\000\t\201\t\201\0149\0149\000\000\000\000\000\000\0149\000\000\001\214\0149\000\000\000\000\004\217\000\000\000\000\000\000\000\000\004\242\000\000\0149\0149\0149\000\000\0149\0149\0149\000\000\000\000\000\000\000\000\000\254\000\000\000\000\002\242\000\000\000\000\000\000\0149\000\000\000\000\000\000\000\000\000\000 \170\0149\0149\000\000\000\000\0149\003\158\000\000\000\000\004n\000\000\0149\000\000\000\000\0149\000\000\000\000\000\000\003\170\000\000\0149\0149\0149\000\000\000\000\020^\000\000\000\000\000\000\0149\0149\000\000\000\000\000\000\000\000\0282\0149\000\000\020\194\000\000\004\226\000\000\000\000\0149\020\218\000\000\000\000\000\000\000\000\000\000\000\000\0149\0149\0149\000\000\0149\0149\000\000\000\000\000\000\020\226\000\000\000\000\000\000 Z\0149\000\000\0149\000\000\0149\000\000\000\000\000\000\0149\000\000\020\234\021&\000\000\0149\005\021\000\000\000\000\0149\000\000\0149\0149\t\205\t\205\000\000\000\000\000\000\t\205\000\000\001\214\t\205\000\000\000\000\025j\000\000\000\000\000\000\000\000\t\205\000\000\t\205\t\205\t\205\000\000\t\205\t\205\t\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014y\014e\t\205\000\000\000\000\000\000\000\000\000\000\000\000\t\205\t\205\000\000\000\000\t\205\000\000\000\000\000\000\004n\000\000\t\205\014y\000\000\t\205\002&\000\000\020\030\002*\000\000\t\205\t\205\t\205\000\000\002\014\0022\000\000\000\000\000\000\t\205\t\205\000\000\0026\000\000\002\018\002>\t\205\014e\000\000\000\000\004\226\000\000\001\218\t\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\205\t\205\t\205\000\000\t\205\t\205\000\000\000\000\000\000\003\130\002B\000\000\000\000\000\000\t\205\bz\t\205\001\230\t\205\000\000\000\000\000\000\t\205\002\226\002\238\000\000\000\000\t\205\000\000\012\005\000\000\t\205\012\005\t\205\t\205\003>\002\238\000\000\000\000\002\174\000\000\000\000\001\218\000\000\003&\000\000\000\000\000\000\012\005\012\005\000\000\012\005\012\005\b~\001\218\025\138\002F\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\026\202\000\000\003\210\000\000\026\206\000\000\000\000\012\005\002\226\003N\000\000\000\000\003Z\n\130\001\198\000\000\026\254\000\000\000\000\000\000\002\226\000\000\000\000\004\"\004&\000\000\000\000\012\005\004*\000\000\0042\006n\000\000\006z\000\000\000\000\000\000\000\000\000\000\000\000\027\014\000\000\012\005\000\000\000\000\006~\012\001\000\000\000\000\012\001\000\000\000\000\003>\002\238\006\134\006\138\002\174\006\206\012\005\000\000\012\005\003&\000\000\000\000\000\000\012\001\012\001\000\000\012\001\012\001\000\000\001\218\012\005\012\005\000\000\000\000\012\005\012\005\003B\006\142\000\000\012\005\000\000\012\005\000\000\004\166\000\000\012\005\000\000\000\000\012\001\000\000\003N\000\000\000\000\007\014\000\000\001\198\000\000\000\000\005\197\014\185\000\000\002\226\000\000\000\000\004\"\004&\000\000\000\000\012\001\004*\000\000\0042\006n\000\000\006z\000\000\000\000\005\197\000\000\000\000\000\000\005\197\000\000\012\001\000\000\000\000\006~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\134\006\138\000\000\006\206\012\001\000\000\012\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014=\014=\012\001\012\001\000\000\014=\012\001\012\001\014=\006\142\000\000\012\001\000\000\012\001\000\000\004\166\004\210\012\001\014=\014=\014=\000\000\014=\014=\014=\000\000\000\000\001!\014\185\014\185\000\000\000\000\001!\000\000\000\000\000\000\014=\000\000\000\000\000\000\000\000\000\000\005\197\014=\014=\000\000\000\000\014=\014\185\000\000\014\185\001!\000\000\014=\000\000\000\000\014=\000\000\005\197\000\000\000\000\005\197\014=\014=\014=\000\000\000\000\000\000\000\000\000\000\000\000\014=\014=\000\000\001!\000\000\022~\000\000\014=\000\000\000\000\000\000\014=\001!\000\000\014=\000\000\000\000\000\000\001!\000\000\000\000\000\000\014=\014=\014=\000\000\014=\014=\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014=\000\000\014=\000\000\014=\000\000\003M\003M\014=\000\000\000\000\003M\000\000\014=\003M\000\000\000\000\014=\001!\014=\014=\014y\014e\000\000\003M\003M\003M\001!\003M\003M\003M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020.\000\000\000\000\014y\003M\000\000\002&\002\014\000\000\002*\000\000\003M\004\182\000\000\000\000\003M\002\254\002\018\000\000\000\000\000\000\003M\000\000\0026\003M\001\218\002>\000\000\014e\000\000\003M\003M\003M\000\000\000\000\000\000\000\000\000\000\000\000\003M\003M\000\000\000\000\003\130\000\000\000\000\003M\000\000\000\000\bz\003M\001\230\002B\003M\000\000\000\000\000\000\002\226\000\000\000\000\000\000\003M\003M\003M\000\000\003M\003M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003M\000\000\003M\000\000\003M\000\000\r\161\r\161\003M\000\000\000\000\r\161\b~\003M\r\161\000\000\000\000\003M\000\000\003M\003M\000\000\000\000\002F\r\161\r\161\r\161\000\000\r\161\r\161\r\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\161\000\000\000\000\000\000\000\000\000\000\000\000\r\161\004\194\000\000\000\000\r\161\000\000\000\000\000\000\000\000\000\000\r\161\000\000\000\000\r\161\000\000\000\000\000\000\000\000\000\000\r\161\r\161\r\161\000\000\000\000\000\000\000\000\000\000\000\000\r\161\r\161\000\000\000\000\000\000\000\000\000\000\r\161\000\000\000\000\000\000\r\161\000\000\000\000\r\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\161\r\161\r\161\000\000\r\161\r\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\161\000\000\r\161\000\000\r\161\000\000\r\177\r\177\r\161\000\000\000\000\r\177\000\000\r\161\r\177\000\000\000\000\r\161\000\000\r\161\r\161\000\000\000\000\000\000\r\177\r\177\r\177\000\000\r\177\r\177\r\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\177\000\000\000\000\000\000\000\000\000\000\000\000\r\177\004\194\000\000\000\000\r\177\000\000\000\000\000\000\000\000\000\000\r\177\000\000\000\000\r\177\000\000\000\000\000\000\000\000\000\000\r\177\r\177\r\177\000\000\000\000\000\000\000\000\000\000\000\000\r\177\r\177\000\000\000\000\000\000\000\000\000\000\r\177\000\000\000\000\000\000\r\177\000\000\000\000\r\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\177\r\177\r\177\000\000\r\177\r\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\177\000\000\r\177\000\000\r\177\000\000\r\173\r\173\r\177\000\000\000\000\r\173\000\000\r\177\r\173\000\000\000\000\r\177\000\000\r\177\r\177\000\000\000\000\000\000\r\173\r\173\r\173\000\000\r\173\r\173\r\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\173\000\000\000\000\000\000\000\000\000\000\000\000\r\173\004\182\000\000\000\000\r\173\000\000\000\000\000\000\000\000\000\000\r\173\000\000\000\000\r\173\000\000\000\000\000\000\000\000\000\000\r\173\r\173\r\173\000\000\000\000\000\000\000\000\000\000\000\000\r\173\r\173\000\000\000\000\000\000\000\000\000\000\r\173\000\000\000\000\000\000\r\173\000\000\000\000\r\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\173\r\173\r\173\000\000\r\173\r\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\173\000\000\r\173\000\000\r\173\000\000\rY\rY\r\173\000\000\000\000\rY\000\000\r\173\rY\000\000\000\000\r\173\000\000\r\173\r\173\000\000\000\000\000\000\rY\rY\rY\000\000\rY\rY\rY\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rY\000\000\000\000\000\000\000\000\000\000\000\000\rY\004\194\000\000\000\000\rY\000\000\000\000\000\000\000\000\000\000\rY\000\000\000\000\rY\000\000\000\000\000\000\000\000\000\000\rY\rY\rY\000\000\000\000\000\000\000\000\000\000\000\000\rY\rY\000\000\000\000\000\000\000\000\000\000\rY\000\000\000\000\000\000\rY\000\000\000\000\rY\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rY\rY\rY\000\000\rY\rY\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rY\000\000\rY\000\000\rY\000\000\rU\rU\rY\000\000\000\000\rU\000\000\rY\rU\000\000\000\000\rY\000\000\rY\rY\000\000\000\000\000\000\rU\rU\rU\000\000\rU\rU\rU\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rU\000\000\000\000\000\000\000\000\000\000\000\000\rU\004\182\000\000\000\000\rU\000\000\000\000\000\000\000\000\000\000\rU\000\000\000\000\rU\000\000\000\000\000\000\000\000\000\000\rU\rU\rU\000\000\000\000\000\000\000\000\000\000\000\000\rU\rU\000\000\000\000\000\000\000\000\000\000\rU\000\000\000\000\000\000\rU\000\000\000\000\rU\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rU\rU\rU\000\000\rU\rU\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rU\000\000\rU\000\000\rU\000\000\ri\ri\rU\000\000\000\000\ri\000\000\rU\ri\000\000\000\000\rU\000\000\rU\rU\000\000\000\000\000\000\ri\ri\ri\000\000\ri\ri\ri\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ri\000\000\000\000\000\000\000\000\000\000\000\000\ri\004\194\000\000\000\000\ri\000\000\000\000\000\000\000\000\000\000\ri\000\000\000\000\ri\000\000\000\000\000\000\000\000\000\000\ri\ri\ri\000\000\000\000\000\000\000\000\000\000\000\000\ri\ri\000\000\000\000\000\000\000\000\000\000\ri\000\000\000\000\000\000\ri\000\000\000\000\ri\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ri\ri\ri\000\000\ri\ri\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ri\000\000\ri\000\000\ri\000\000\re\re\ri\000\000\000\000\re\000\000\ri\re\000\000\000\000\ri\000\000\ri\ri\000\000\000\000\000\000\re\re\re\000\000\re\re\re\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\re\000\000\000\000\000\000\000\000\000\000\000\000\re\004\182\000\000\000\000\re\000\000\000\000\000\000\000\000\000\000\re\000\000\000\000\re\000\000\000\000\000\000\000\000\000\000\re\re\re\000\000\000\000\000\000\000\000\000\000\000\000\re\re\000\000\000\000\000\000\000\000\000\000\re\000\000\000\000\000\000\re\000\000\000\000\re\000\000\000\000\000\000\000\000\000\000\000\000\000\000\re\re\re\000\000\re\re\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\re\000\000\re\000\000\re\000\000\rq\rq\re\000\000\000\000\rq\000\000\re\rq\000\000\000\000\re\000\000\re\re\000\000\000\000\000\000\rq\rq\rq\000\000\rq\rq\rq\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rq\000\000\000\000\000\000\000\000\000\000\000\000\rq\004\194\000\000\000\000\rq\000\000\000\000\000\000\000\000\000\000\rq\000\000\000\000\rq\000\000\000\000\000\000\000\000\000\000\rq\rq\rq\000\000\000\000\000\000\000\000\000\000\000\000\rq\rq\000\000\000\000\000\000\000\000\000\000\rq\000\000\000\000\000\000\rq\000\000\000\000\rq\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rq\rq\rq\000\000\rq\rq\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rq\000\000\rq\000\000\rq\000\000\rm\rm\rq\000\000\000\000\rm\000\000\rq\rm\000\000\000\000\rq\000\000\rq\rq\000\000\000\000\000\000\rm\rm\rm\000\000\rm\rm\rm\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rm\000\000\000\000\000\000\000\000\000\000\000\000\rm\004\182\000\000\000\000\rm\000\000\000\000\000\000\000\000\000\000\rm\000\000\000\000\rm\000\000\000\000\000\000\000\000\000\000\rm\rm\rm\000\000\000\000\000\000\000\000\000\000\000\000\rm\rm\000\000\000\000\000\000\000\000\000\000\rm\000\000\000\000\000\000\rm\000\000\000\000\rm\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rm\rm\rm\000\000\rm\rm\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rm\000\000\rm\000\000\rm\000\000\ra\ra\rm\000\000\000\000\ra\000\000\rm\ra\000\000\000\000\rm\000\000\rm\rm\000\000\000\000\000\000\ra\ra\ra\000\000\ra\ra\ra\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ra\000\000\000\000\000\000\000\000\000\000\000\000\ra\004\194\000\000\000\000\ra\000\000\000\000\000\000\000\000\000\000\ra\000\000\000\000\ra\000\000\000\000\000\000\000\000\000\000\ra\ra\ra\000\000\000\000\000\000\000\000\000\000\000\000\ra\ra\000\000\000\000\000\000\000\000\000\000\ra\000\000\000\000\000\000\ra\000\000\000\000\ra\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ra\ra\ra\000\000\ra\ra\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ra\000\000\ra\000\000\ra\000\000\r]\r]\ra\000\000\000\000\r]\000\000\ra\r]\000\000\000\000\ra\000\000\ra\ra\000\000\000\000\000\000\r]\r]\r]\000\000\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r]\000\000\000\000\000\000\000\000\000\000\000\000\r]\004\182\000\000\000\000\r]\000\000\000\000\000\000\000\000\000\000\r]\000\000\000\000\r]\000\000\000\000\000\000\000\000\000\000\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\000\000\r]\r]\000\000\000\000\000\000\000\000\000\000\r]\000\000\000\000\000\000\r]\000\000\000\000\r]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r]\r]\r]\000\000\r]\r]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r]\000\000\r]\000\000\r]\000\000\r\157\r\157\r]\000\000\000\000\r\157\000\000\r]\r\157\000\000\000\000\r]\000\000\r]\r]\000\000\000\000\000\000\r\157\r\157\r\157\000\000\r\157\r\157\r\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\157\000\000\000\000\000\000\000\000\000\000\000\000\r\157\004\182\000\000\000\000\r\157\000\000\000\000\000\000\000\000\000\000\r\157\000\000\000\000\r\157\000\000\000\000\000\000\000\000\000\000\r\157\r\157\r\157\000\000\000\000\000\000\000\000\000\000\000\000\r\157\r\157\000\000\000\000\000\000\000\000\000\000\r\157\000\000\000\000\000\000\r\157\000\000\000\000\r\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\157\r\157\r\157\000\000\r\157\r\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\157\000\000\r\157\000\000\r\157\000\000\ry\ry\r\157\000\000\000\000\ry\000\000\r\157\ry\000\000\000\000\r\157\000\000\r\157\r\157\000\000\000\000\000\000\ry\ry\ry\000\000\ry\ry\ry\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ry\000\000\000\000\000\000\000\000\000\000\000\000\ry\004\194\000\000\000\000\ry\000\000\000\000\000\000\000\000\000\000\ry\000\000\000\000\ry\000\000\000\000\000\000\000\000\000\000\ry\ry\ry\000\000\000\000\000\000\000\000\000\000\000\000\ry\ry\000\000\000\000\000\000\000\000\000\000\ry\000\000\000\000\000\000\ry\000\000\000\000\ry\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ry\ry\ry\000\000\ry\ry\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ry\000\000\ry\000\000\ry\000\000\ru\ru\ry\000\000\000\000\ru\000\000\ry\ru\000\000\000\000\ry\000\000\ry\ry\000\000\000\000\000\000\ru\ru\ru\000\000\ru\ru\ru\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ru\000\000\000\000\000\000\000\000\000\000\000\000\ru\004\182\000\000\000\000\ru\000\000\000\000\000\000\000\000\000\000\ru\000\000\000\000\ru\000\000\000\000\000\000\000\000\000\000\ru\ru\ru\000\000\000\000\000\000\000\000\000\000\000\000\ru\ru\000\000\000\000\000\000\000\000\000\000\ru\000\000\000\000\000\000\ru\000\000\000\000\ru\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ru\ru\ru\000\000\ru\ru\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ru\000\000\ru\000\000\ru\000\000\r\137\r\137\ru\000\000\000\000\r\137\000\000\ru\r\137\000\000\000\000\ru\000\000\ru\ru\000\000\000\000\000\000\r\137\r\137\r\137\000\000\r\137\r\137\r\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\137\000\000\000\000\000\000\000\000\000\000\000\000\r\137\004\194\000\000\000\000\r\137\000\000\000\000\000\000\000\000\000\000\r\137\000\000\000\000\r\137\000\000\000\000\000\000\000\000\000\000\r\137\r\137\r\137\000\000\000\000\000\000\000\000\000\000\000\000\r\137\r\137\000\000\000\000\000\000\000\000\000\000\r\137\000\000\000\000\000\000\r\137\000\000\000\000\r\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\137\r\137\r\137\000\000\r\137\r\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\137\000\000\r\137\000\000\r\137\000\000\r\133\r\133\r\137\000\000\000\000\r\133\000\000\r\137\r\133\000\000\000\000\r\137\000\000\r\137\r\137\000\000\000\000\000\000\r\133\r\133\r\133\000\000\r\133\r\133\r\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\133\000\000\000\000\000\000\000\000\000\000\000\000\r\133\004\182\000\000\000\000\r\133\000\000\000\000\000\000\000\000\000\000\r\133\000\000\000\000\r\133\000\000\000\000\000\000\000\000\000\000\r\133\r\133\r\133\000\000\000\000\000\000\000\000\000\000\000\000\r\133\r\133\000\000\000\000\000\000\000\000\000\000\r\133\000\000\000\000\000\000\r\133\000\000\000\000\r\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\133\r\133\r\133\000\000\r\133\r\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\133\000\000\r\133\000\000\r\133\000\000\r\145\r\145\r\133\000\000\000\000\r\145\000\000\r\133\r\145\000\000\000\000\r\133\000\000\r\133\r\133\000\000\000\000\000\000\r\145\r\145\r\145\000\000\r\145\r\145\r\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\145\000\000\000\000\000\000\000\000\000\000\000\000\r\145\004\194\000\000\000\000\r\145\000\000\000\000\000\000\000\000\000\000\r\145\000\000\000\000\r\145\000\000\000\000\000\000\000\000\000\000\r\145\r\145\r\145\000\000\000\000\000\000\000\000\000\000\000\000\r\145\r\145\000\000\000\000\000\000\000\000\000\000\r\145\000\000\000\000\000\000\r\145\000\000\000\000\r\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\145\r\145\r\145\000\000\r\145\r\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\145\000\000\r\145\000\000\r\145\000\000\r\141\r\141\r\145\000\000\000\000\r\141\000\000\r\145\r\141\000\000\000\000\r\145\000\000\r\145\r\145\000\000\000\000\000\000\r\141\r\141\r\141\000\000\r\141\r\141\r\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\141\000\000\000\000\000\000\000\000\000\000\000\000\r\141\004\182\000\000\000\000\r\141\000\000\000\000\000\000\000\000\000\000\r\141\000\000\000\000\r\141\000\000\000\000\000\000\000\000\000\000\r\141\r\141\r\141\000\000\000\000\000\000\000\000\000\000\000\000\r\141\r\141\000\000\000\000\000\000\000\000\000\000\r\141\000\000\000\000\000\000\r\141\000\000\000\000\r\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\141\r\141\r\141\000\000\r\141\r\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\141\000\000\r\141\000\000\r\141\000\000\r\129\r\129\r\141\000\000\000\000\r\129\000\000\r\141\r\129\000\000\000\000\r\141\000\000\r\141\r\141\000\000\000\000\000\000\r\129\r\129\r\129\000\000\r\129\r\129\r\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\129\000\000\000\000\000\000\000\000\000\000\000\000\r\129\004\194\000\000\000\000\r\129\000\000\000\000\000\000\000\000\000\000\r\129\000\000\000\000\r\129\000\000\000\000\000\000\000\000\000\000\r\129\r\129\r\129\000\000\000\000\000\000\000\000\000\000\000\000\r\129\r\129\000\000\000\000\000\000\000\000\000\000\r\129\000\000\000\000\000\000\r\129\000\000\000\000\r\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\129\r\129\r\129\000\000\r\129\r\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\129\000\000\r\129\000\000\r\129\000\000\r}\r}\r\129\000\000\000\000\r}\000\000\r\129\r}\000\000\000\000\r\129\000\000\r\129\r\129\000\000\000\000\000\000\r}\r}\r}\000\000\r}\r}\r}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r}\000\000\000\000\000\000\000\000\000\000\000\000\r}\004\182\000\000\000\000\r}\000\000\000\000\000\000\000\000\000\000\r}\000\000\000\000\r}\000\000\000\000\000\000\000\000\000\000\r}\r}\r}\000\000\000\000\000\000\000\000\000\000\000\000\r}\r}\000\000\000\000\000\000\000\000\000\000\r}\000\000\000\000\000\000\r}\000\000\000\000\r}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r}\r}\r}\000\000\r}\r}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r}\000\000\r}\000\000\r}\000\000\r\169\r\169\r}\000\000\000\000\r\169\000\000\r}\r\169\000\000\000\000\r}\000\000\r}\r}\000\000\000\000\000\000\r\169\r\169\r\169\000\000\r\169\r\169\r\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\169\000\000\000\000\000\000\000\000\000\000\000\000\r\169\004\194\000\000\000\000\r\169\000\000\000\000\000\000\000\000\000\000\r\169\000\000\000\000\r\169\000\000\000\000\000\000\000\000\000\000\r\169\r\169\r\169\000\000\000\000\000\000\000\000\000\000\000\000\r\169\r\169\000\000\000\000\000\000\000\000\000\000\r\169\000\000\000\000\000\000\r\169\000\000\000\000\r\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\169\r\169\r\169\000\000\r\169\r\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\169\000\000\r\169\000\000\r\169\000\000\r\165\r\165\r\169\000\000\000\000\r\165\000\000\r\169\r\165\000\000\000\000\r\169\000\000\r\169\r\169\000\000\000\000\000\000\r\165\r\165\r\165\000\000\r\165\r\165\r\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\165\000\000\000\000\000\000\000\000\000\000\000\000\r\165\004\182\000\000\000\000\r\165\000\000\000\000\000\000\000\000\000\000\r\165\000\000\000\000\r\165\000\000\000\000\000\000\000\000\000\000\r\165\r\165\r\165\000\000\000\000\000\000\000\000\000\000\000\000\r\165\r\165\000\000\000\000\000\000\000\000\000\000\r\165\000\000\000\000\000\000\r\165\000\000\000\000\r\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\165\r\165\r\165\000\000\r\165\r\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\165\000\000\r\165\000\000\r\165\000\000\r\153\r\153\r\165\000\000\000\000\r\153\000\000\r\165\r\153\000\000\000\000\r\165\000\000\r\165\r\165\000\000\000\000\000\000\r\153\r\153\r\153\000\000\r\153\r\153\r\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\153\000\000\000\000\000\000\000\000\000\000\000\000\r\153\004\194\000\000\000\000\r\153\000\000\000\000\000\000\000\000\000\000\r\153\000\000\000\000\r\153\000\000\000\000\000\000\000\000\000\000\r\153\r\153\r\153\000\000\000\000\000\000\000\000\000\000\000\000\r\153\r\153\000\000\000\000\000\000\000\000\000\000\r\153\000\000\000\000\000\000\r\153\000\000\000\000\r\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\153\r\153\r\153\000\000\r\153\r\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\153\000\000\r\153\000\000\r\153\000\000\r\149\r\149\r\153\000\000\000\000\r\149\000\000\r\153\r\149\000\000\000\000\r\153\000\000\r\153\r\153\000\000\000\000\000\000\r\149\r\149\r\149\000\000\r\149\r\149\r\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\149\000\000\000\000\000\000\000\000\000\000\000\000\r\149\004\182\000\000\000\000\r\149\000\000\000\000\000\000\000\000\000\000\r\149\000\000\000\000\r\149\000\000\000\000\000\000\000\000\000\000\r\149\r\149\r\149\000\000\000\000\000\000\000\000\000\000\000\000\r\149\r\149\000\000\000\000\000\000\000\000\000\000\r\149\000\000\000\000\000\000\r\149\000\000\000\000\r\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\149\r\149\r\149\000\000\r\149\r\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\149\000\000\r\149\000\000\r\149\000\000\002\017\002\017\r\149\000\000\000\000\002\017\000\000\r\149\002\017\000\000\000\000\r\149\000\000\r\149\r\149\000\000\000\000\000\000\002\017\002\017\002\017\000\000\002\017\002\017\002\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\000\000\000\000\000\000\002\017\002\017\000\000\000\000\002\017\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\002\017\000\000\000\000\000\000\000\000\000\000\002\017\002\017\002\017\000\000\000\000\000\000\000\000\000\000\000\000\002\017\002\017\000\000\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\002\017\000\000\000\000\002\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\017\002\017\002\017\000\000\002\017\002\017\000\000\000\000\000\000\000\000\000\000\003>\002\238\000\000\002\017\002\174\002\017\b\002\002\017\000\000\003&\000\000\002\017\000\000\000\000\000\000\000\000\002\017\000\000\000\000\001\218\0056\b:\002\017\000\000\000\000\000\000\003B\000\000\000\000\nv\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003N\000\000\000\000\r^\004\237\001\198\000\000\000\000\000\000\000\254\000\000\002\226\002\242\000\000\004\"\004&\000\000\000\000\011\221\004*\000\000\0042\003\154\012\154\006z\000\000\004\237\000\000\003\158\000\000\000\000\000\000\000\000\004\133\000\000\000\000\006~\000\000\000\000\000\000\003\170\000\000\000\000\000\000\000\000\006\134\006\138\020^\000\000\rn\000\000\006\017\006\017\000\000\000\000\000\000\006\017\0282\000\000\006\017\020\194\000\000\000\000\011\221\000\000\000\000\020\218\011\221\011\221\006\017\006\142\006\017\000\000\006\017\011\221\006\017\004\166\000\000\011\221\004\133\000\000\000\000\020\226\000\000\000\000\000\000\000\000\006\017\000\000\000\000\000\000\000\000\000\000\000\000\006\017\006\017\000\000\020\234\021&\000\000\006\017\004\237\004\237\000\000\006\017\t\217\000\000\006\017\016\190\000\000\000\000\000\000\000\000\006\017\006\017\006\017\000\000\000\000\000\000\025j\000\000\011\162\000\000\000\000\014\142\t\217\000\000\t\217\t\217\006\017\006\017\000\000\000\000\006\017\000\000\011\218\011\242\011\250\011\226\012\002\000\000\000\000\000\000\000\000\006\017\006\017\006\017\000\000\006\017\006\017\012\n\012\018\000\000\000\000\t&\000\000\000\000\000\000\000\000\000\000\012\026\000\000\006\017\000\000\000\000\006\017\006\017\000\000\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\000\001\014\006\017\011\170\011\234\012\"\012*\012:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012B\000\000\001\018\000\000\000\000\016\198\002\194\000\000\000\000\000\000\012J\000\000\000\000\000\000\000\000\001\022\001\026\001\030\001\"\001&\001*\000\000\000\000\000\000\012j\t\217\000\000\012r\0122\001.\000\000\0016\001:\t\217\012R\000\000\000\000\000\000\001>\000\000\000\000\001B\012Z\012b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001F\001J\001N\001R\001V\000\000\000\000\000\000\001Z\000\000\000\000\000\000\001^\003\141\003\141\000\000\000\000\000\000\003\141\000\000\000\000\003\141\001b\000\000\000\000\000\000\000\000\000\000\001f\003\141\003\141\003\141\000\000\003\141\003\141\003\141\000\000\003\141\000\000\001\162\031n\000\000\000\000\000\000\000\000\000\000\001\166\003\141\001\170\003\141\000\000\003\141\001\174\003\141\001\178\001\182\003\141\003\141\000\000\000\000\000\000\000\000\005\153\000\000\000\000\003\141\003\141\000\000\000\000\003\141\000\000\000\000\003\141\003\141\000\000\003\141\003\141\003\141\005\157\000\000\000\000\000\000\003\141\000\000\000\000\003\141\000\000\000\000\000\000\000\000\000\000\003\141\003\141\003\141\000\000\003\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\141\003\141\003\141\000\000\003\141\003\141\000\000\006\005\006\005\000\000\005\153\000\000\006\005\000\000\000\000\006\005\003\141\003\141\003\141\003\141\003\141\003\141\003\141\000\000\000\000\006\005\005\157\006\005\000\000\006\005\000\000\006\005\000\000\003\141\003\141\003\141\000\000\000\000\003\141\000\000\000\000\000\000\000\000\006\005\000\000\000\000\000\000\000\000\000\000\003\141\006\005\006\005\000\000\000\000\000\000\000\000\tn\000\000\000\000\000\000\006\005\007\153\000\000\006\005\001\161\000\000\000\000\000\000\000\000\006\005\006\005\000\246\015\214\000\000\000\000\000\000\000\000\011\162\000\000\000\000\007\153\000\000\000\000\001\161\007\153\006\005\006\005\000\000\000\000\006\005\000\000\011\218\011\242\011\250\011\226\012\002\000\000\000\000\000\000\000\000\006\005\006\005\006\005\000\000\006\005\006\005\012\n\012\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\026\000\000\006\005\000\000\000\000\006\005\006\005\000\000\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\005\011\170\011\234\012\"\012*\012:\000\000\000\000\000\000\000\000\000\000\000\000\007\153\012B\000\000\000\000\000\000\000\000\001\161\000\000\000\000\000\000\000\000\012J\000\000\000\000\000\000\000\000\015\218\000\000\001\169\000\000\000\000\000\000\000\000\000\000\000\000\012j\001\161\000\000\012r\0122\000\000\011\162\000\000\000\000\001\161\012R\000\000\001\169\000\000\000\000\000\000\000\000\001\161\012Z\012b\011\218\011\242\011\250\011\226\012\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003]\012\n\012\018\000\000\000\000\003]\000\000\000\000\003]\000\000\000\000\012\026\000\000\000\000\000\000\000\000\000\000\000\000\003]\000\000\000\246\000\000\003]\000\000\003]\000\000\000\000\000\000\000\000\011\170\011\234\012\"\012*\012:\000\000\000\000\003]\018\162\000\000\000\000\000\000\012B\000\000\003]\000\000\000\000\001\169\000\000\000\000\001\233\000\000\012J\000\000\000\000\001\233\000\000\003]\000\000\001\165\000\000\000\000\000\000\003]\003]\003]\012j\001\169\000\000\012r\0122\000\000\011\162\000\000\001\233\001\169\012R\000\000\001\165\003]\000\000\000\000\000\000\001\169\012Z\012b\011\218\011\242\011\250\011\226\012\002\000\000\000\000\000\000\003]\003]\000\000\001\233\003]\003]\000\000\012\n\012\018\000\000\000\000\000\000\001\233\000\000\000\000\000\000\000\000\012\026\001\233\001\233\000\246\019*\003]\000\000\000\000\000\000\000\246\001\233\001\233\000\000\000\000\000\000\000\000\000\000\000\000\011\170\011\234\012\"\012*\012:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012B\000\000\000\000\000\000\000\000\001\165\001\014\001\233\000\000\000\000\012J\000\000\000\000\000\000\000\000\000\000\001\233\000\000\000\000\000\000\000\000\000\000\001\018\000\000\012j\001\165\000\000\012r\0122\000\000\000\000\000\000\000\000\001\165\012R\001\022\001\026\001\030\001\"\001&\001*\001\165\012Z\012b\000\000\000\000\000\000\000\000\000\000\001.\000\000\0016\001:\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001F\001J\001N\001R\001V\000\000\000\000\000\000\001Z\000\000\000\000\000\000\001^\t-\t-\000\000\000\000\000\000\t-\000\000\000\000\t-\001b\000\000\000\000\000\000\000\000\000\000\001f\000\000\000\000\t-\000\000\t-\000\000\t-\000\000\t-\000\000\001\162\031\138\000\000\000\000\000\000\000\000\000\000\001\166\000\000\001\170\t-\000\000\000\000\001\174\000\000\001\178\001\182\t-\t-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t-\000\000\000\000\t-\000\000\000\000\000\000\000\000\000\000\t-\t-\t-\015\005\015\005\000\000\000\000\000\000\015\005\000\000\000\000\015\005\000\000\000\000\000\000\000\000\t-\000\000\000\000\000\000\t-\015\005\000\000\015\005\000\000\015\005\000\000\015\005\000\000\000\000\000\000\t-\t-\t-\000\000\t-\t-\000\000\000\000\015\005\000\000\000\000\000\000\000\000\000\000\t-\015\005\015\005\000\000\t-\000\000\000\000\004v\t-\000\000\000\000\015\005\000\000\000\000\015\005\000\000\000\000\0056\000\000\t-\015\005\015\005\015\005\015\t\015\t\000\000\000\000\000\000\015\t\000\000\000\000\015\t\000\000\000\000\000\000\000\000\015\005\000\000\000\000\000\000\015\005\015\t\000\000\015\t\000\000\015\t\000\000\015\t\000\000\000\000\000\000\015\005\015\005\015\005\000\000\015\005\015\005\000\000\000\000\015\t\000\000\004\134\000\000\000\000\000\000\000\000\015\t\015\t\000\000\015\005\000\000\000\000\004v\015\005\000\000\000\000\015\t\020\018\000\000\015\t\001\153\000\000\000\000\000\000\015\005\015\t\015\t\015\t\000\000\000\000\000\000\000\000\000\000\011\162\000\000\000\000\000\000\020\022\000\000\001\153\000\000\015\t\000\000\000\000\000\000\015\t\000\000\011\218\011\242\011\250\011\226\012\002\000\000\000\000\000\000\000\000\015\t\015\t\015\t\000\000\015\t\015\t\012\n\012\018\000\000\000\000\004\134\000\000\000\000\000\000\000\000\000\000\012\026\000\000\015\t\000\000\000\000\000\000\015\t\000\000\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\t\011\170\011\234\012\"\012*\012:\000\000\000\000\000\000\001\245\000\000\000\000\000\000\012B\001\245\000\000\001\214\001\245\001\153\000\000\000\000\000\000\000\000\012J\000\000\t\169\000\000\001\245\000\000\000\000\000\000\001\245\000\000\001\245\000\000\000\000\000\000\012j\001\153\020\026\012r\0122\020*\000\000\000\000\001\245\001\153\012R\000\000\000\000\000\000\000\000\001\245\001\245\000\000\012Z\012b\000\000\000\000\000\000\004n\000\000\001\245\000\000\000\000\001\245\000\000\000\000\000\000\000\000\000\000\001\245\001\245\001\245\001\241\000\000\000\000\000\000\000\000\001\241\000\000\001\214\001\241\000\000\000\000\000\000\000\000\001\245\001\245\000\000\t\165\004\226\001\241\000\000\000\000\000\000\001\241\000\000\001\241\000\000\000\000\000\000\001\245\001\245\000\000\000\000\001\245\001\245\000\000\000\000\001\241\000\000\000\000\000\000\000\000\000\000\001\245\001\241\001\241\000\000\000\000\000\000\000\000\000\000\001\245\004n\000\000\001\241\000\000\001\245\001\241\000\000\000\000\000\000\000\000\001\245\001\241\001\241\001\241\002\001\000\000\000\000\000\000\000\000\002\001\000\000\001\214\002\001\000\000\000\000\000\000\000\000\001\241\001\241\000\000\t\181\004\226\002\001\000\000\000\000\000\000\002\001\000\000\002\001\000\000\000\000\000\000\001\241\001\241\000\000\000\000\001\241\001\241\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\001\241\002\001\002\001\000\000\000\000\000\000\000\000\000\000\001\241\004n\000\000\002\001\000\000\001\241\002\001\000\000\000\000\000\000\000\000\001\241\002\001\002\001\002\001\001\253\000\000\000\000\000\000\000\000\001\253\000\000\001\214\001\253\000\000\000\000\000\000\000\000\002\001\002\001\000\000\t\177\004\226\001\253\000\000\000\000\000\000\001\253\000\000\001\253\000\000\000\000\000\000\002\001\002\001\000\000\000\000\002\001\002\001\000\000\000\000\001\253\000\000\000\000\000\000\000\000\000\000\002\001\001\253\001\253\000\000\000\000\000\000\000\000\000\000\002\001\004n\000\000\001\253\000\000\002\001\001\253\000\000\000\000\000\000\000\000\002\001\001\253\001\253\001\253\001\249\000\000\000\000\000\000\000\000\001\249\000\000\001\214\001\249\000\000\000\000\000\000\000\000\001\253\001\253\000\000\t\173\004\226\001\249\000\000\000\000\000\000\001\249\000\000\001\249\000\000\000\000\000\000\001\253\001\253\000\000\000\000\001\253\001\253\000\000\000\000\001\249\000\000\000\000\000\000\000\000\000\000\001\253\001\249\001\249\000\000\000\000\000\000\000\000\000\000\001\253\004n\000\000\001\249\000\000\001\253\001\249\000\000\000\000\000\000\000\000\001\253\001\249\001\249\001\249\003q\000\000\000\000\000\000\000\000\003q\000\000\001\214\003q\000\000\000\000\000\000\000\000\001\249\001\249\000\000\t\161\004\226\003q\000\000\000\000\000\000\003q\000\000\003q\000\000\000\000\000\000\001\249\001\249\000\000\000\000\001\249\001\249\000\000\000\000\003q\000\000\000\000\000\000\000\000\000\000\001\249\003q\001\237\000\000\000\000\000\000\000\000\000\000\001\249\004n\000\000\003q\000\000\001\249\003q\000\000\000\000\000\000\000\000\001\249\003q\003q\003q\003m\000\000\000\000\000\000\000\000\003m\000\000\001\214\003m\000\000\000\000\000\000\000\000\003q\003q\000\000\t\161\004\226\003m\000\000\000\000\000\000\003m\000\000\003m\000\000\000\000\000\000\003q\003q\000\000\000\000\003q\003q\000\000\000\000\003m\000\000\000\000\000\000\000\000\000\000\003q\003m\001\237\000\000\000\000\000\000\000\000\000\000\003q\004n\000\000\003m\000\000\003q\003m\000\000\000\000\000\000\000\000\003q\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003m\003m\000\000\000\000\004\226\000\254\001\210\001\214\002\026\000\000\000\000\000\000\000\000\000\000\000\000\003m\003m\000\000\021f\003m\003m\000\000\004\225\000\000\003\158\001\218\002\178\001\238\000\000\003m\000\000\000\000\000\000\000\000\000\000\001\250\021j\003m\000\000\000\000\000\000\000\000\003m\021\146\000\000\000\000\000\000\000\000\003m\001\254\002\198\002\206\000\000\000\000\000\000\002\218\020\194\002\226\004N\004Z\000\000\000\193\020\218\000\000\000\000\004f\000\193\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\226\000\193\000\000\000\193\004j\000\193\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\234\022*\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\193\022:\000\000\000\193\000\000\000\000\004\162\000\000\004\166\000\193\000\193\000\246\001\005\000\000\000\000\000\000\000\000\001\005\000\193\000\193\001\005\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\193\001\005\000\000\001\005\000\000\001\005\000\000\001\005\000\000\000\000\000\000\000\193\000\193\000\000\000\000\000\193\000\193\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\193\001\005\000\000\000\000\000\000\001\005\000\000\000\193\000\193\000\000\000\000\001\005\000\000\000\000\001\005\000\000\000\000\000\193\000\000\000\193\001\005\001\005\000\246\000\201\000\000\000\000\000\000\000\000\000\201\001\005\001\005\000\201\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\001\005\000\201\000\000\000\201\000\000\000\201\000\000\000\201\000\000\000\000\000\000\001\005\001\005\000\000\000\000\001\005\001\005\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\001\005\000\201\000\000\000\000\000\000\000\201\000\000\001\005\001\005\000\000\000\000\000\201\000\000\000\000\000\201\000\000\000\000\001\005\000\000\001\005\000\201\000\201\000\246\000\197\000\000\000\000\000\000\000\000\000\197\000\201\000\201\000\197\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\000\000\201\000\197\000\000\000\197\000\000\000\197\000\000\000\197\000\000\000\000\000\000\000\201\000\201\000\000\000\000\000\201\000\201\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\201\000\197\000\000\000\000\000\000\000\197\000\000\000\201\000\201\000\000\000\000\000\197\000\000\000\000\000\197\000\000\000\000\000\201\000\000\000\201\000\197\000\197\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\000\000\197\000\000\001\205\000\000\000\000\000\000\000\000\001\205\000\000\000\000\001\205\000\197\000\197\000\000\000\000\000\197\000\197\000\000\000\000\000\000\001\205\000\000\000\000\000\000\001\205\000\197\001\205\000\000\000\000\000\000\000\000\000\000\000\197\000\197\000\000\000\000\000\000\000\000\001\205\001\205\000\000\000\000\000\197\000\000\000\197\001\205\000\000\000\000\000\000\000\000\000\000\005\153\000\000\000\000\000\000\001\205\000\000\000\000\001\205\000\000\000\000\000\000\000\000\000\000\001\205\001\205\001\205\015\001\015\001\000\000\000\000\000\000\015\001\000\000\000\000\015\001\000\000\000\000\000\000\000\000\001\205\000\000\000\000\000\000\001\205\015\001\000\000\015\001\000\000\015\001\000\000\015\001\000\000\000\000\000\000\001\205\001\205\000\000\000\000\001\205\001\205\000\000\000\000\015\001\000\000\005\153\000\000\000\000\000\000\001\205\015\001\015\001\000\000\000\000\000\000\000\000\001\205\001\205\000\000\000\000\015\001\000\000\001\205\015\001\000\000\000\000\000\000\000\000\001\205\015\001\015\001\015\001\014\253\014\253\000\000\000\000\000\000\014\253\000\000\000\000\014\253\000\000\000\000\000\000\000\000\015\001\000\000\000\000\000\000\015\001\014\253\000\000\014\253\000\000\014\253\000\000\014\253\000\000\000\000\000\000\015\001\015\001\015\001\000\000\015\001\015\001\000\000\000\000\014\253\000\000\000\000\000\000\000\000\000\000\000\000\014\253\014\253\000\000\015\001\000\000\000\000\000\000\015\001\000\000\000\000\014\253\000\000\000\000\014\253\000\000\000\000\0056\000\000\015\001\014\253\014\253\014\253\t1\t1\000\000\000\000\000\000\t1\000\000\000\000\t1\000\000\000\000\000\000\000\000\014\253\000\000\000\000\000\000\014\253\t1\000\000\t1\000\000\t1\000\000\t1\000\000\000\000\000\000\014\253\014\253\014\253\000\000\014\253\014\253\000\000\000\000\t1\000\000\000\000\000\000\000\000\000\000\b\194\t1\t1\000\000\014\253\000\000\000\000\000\000\014\253\000\000\000\000\t1\000\000\000\000\t1\000\000\000\000\000\000\000\000\014\253\t1\t1\000\246\000\000\014\197\000\000\000\000\000\000\000\000\014\197\000\000\000\000\000\000\000\000\000\000\000\000\t1\000\000\003>\002\238\t1\000\000\002\174\000\000\b\002\000\000\000\000\003&\014\197\000\000\000\000\t1\t1\t1\000\000\t1\t1\001\218\000\000\b:\000\000\000\000\000\000\000\000\003B\t1\000\000\nv\000\000\t1\000\000\014\197\000\000\t1\000\000\000\000\000\000\000\000\003N\000\000\014\197\012\138\000\000\001\198\t1\000\000\014\197\014\197\000\246\002\226\000\000\000\000\004\"\004&\000\000\014\197\014\197\004*\000\000\0042\000\000\012\154\006z\000\000\000\000\000\000\000\000\003>\002\238\000\000\000\000\002\174\000\000\b\002\006~\000\000\003&\000\000\000\000\000\000\000\000\000\000\014\197\006\134\006\138\000\000\001\218\012\230\b:\000\000\000\000\014\197\000\000\003B\000\000\000\000\nv\000\000\000\000\000\000\000\000\000\000\000\000\011\026\000\000\000\000\r2\003N\006\142\000\000\012\138\000\000\001\198\000\000\004\166\000\000\000\000\000\000\002\226\000\000\000\000\004\"\004&\000\000\000\000\000\000\004*\000\000\0042\000\000\012\154\006z\000\000\000\000\000\000\000\000\003>\002\238\000\000\000\000\002\174\000\000\b\002\006~\000\000\003&\000\000\000\000\000\000\000\000\000\000\000\000\006\134\006\138\000\000\001\218\012\230\b:\000\000\000\000\000\000\000\000\003B\000\000\000\000\nv\000\000\000\000\000\000\000\000\000\000\000\000\011\026\000\000\000\000\011&\003N\006\142\011*\r^\000\000\001\198\000\000\004\166\001\210\001\214\r\150\002\226\000\000\000\000\004\"\004&\000\000\000\000\000\000\004*\000\000\0042\000\000\012\154\006z\000\000\001\237\001\218\001\222\001\238\000\000\001\237\000\000\001\214\001\237\000\000\006~\001\250\000\000\000\000\000\000\000\000\t\161\000\000\001\237\006\134\006\138\000\000\001\237\rn\001\237\001\254\002\198\002\206\000\000\000\000\000\000\002\218\000\000\002\226\004N\004Z\001\237\000\000\000\000\011\026\000\000\004f\011&\001\237\006\142\000\000\000\000\006=\006=\000\000\004\166\004n\006=\001\237\000\000\006=\001\237\000\000\004j\000\000\000\000\000\000\001\237\001\237\001\237\006=\000\000\006=\000\000\006=\000\000\006=\000\000\000\000\000\000\000\000\000\000\000\000\001\237\001\237\000\000\000\000\004\226\006=\000\000\000\000\000\000\000\000\000\000\000\000\006=\006=\000\000\001\237\001\237\000\000\tn\001\237\001\237\000\000\006=\000\000\000\000\006=\000\000\000\000\000\000\001\237\000\000\006=\006=\000\246\000\000\000\000\000\000\001\237\000\000\000\000\000\000\000\000\001\237\t\245\000\000\000\000\000\000\006=\001\237\003>\002\238\006=\000\000\002\174\000\000\000\000\000\000\000\000\003&\000\000\000\000\000\000\006=\006=\006=\t\245\006=\006=\001\218\000\000\000\000\001\210\001\214\000\000\000\000\003B\000\000\000\000\000\000\000\000\006=\000\000\000\000\000\000\006=\000\000\000\000\000\000\000\000\003N\001\218\002\178\003Z\016\214\001\198\006=\000\000\000\000\000\000\000\000\002\226\000\000\000\000\004\"\004&\018\166\000\000\000\000\004*\000\000\0042\006n\000\000\006z\002\222\000\000\004n\000\000\000\000\000\000\002\218\000\000\002\226\004N\004Z\006~\000\000\000\000\0069\b\150\004f\000\000\018\174\0069\006\134\006\138\0069\006\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0069\004j\0069\000\000\0069\018\254\0069\t\245\000\000\000\000\000\000\000\000\000\000\006\142\000\000\t\245\000\000\n^\0069\004\166\000\000\000\000\000\000\000\000\000\000\0069\t\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0069\000\000\000\000\0069\000\000\000\000\000\000\000\000\000\000\0069\0069\000\246\015\r\015\r\000\000\000\000\000\000\015\r\000\000\000\000\015\r\000\000\000\000\000\000\000\000\0069\000\000\000\000\000\000\0069\015\r\000\000\015\r\000\000\015\r\000\000\015\r\000\000\000\000\000\000\0069\0069\0069\000\000\0069\0069\000\000\000\000\015\r\000\000\000\000\000\000\000\000\000\000\000\000\015\r\015\r\000\000\0069\000\000\000\000\000\000\0069\000\000\000\000\015\r\000\000\000\000\015\r\000\000\000\000\000\000\000\000\0069\015\r\015\r\000\246\015\017\015\017\000\000\000\000\000\000\015\017\000\000\000\000\015\017\000\000\000\000\000\000\000\000\015\r\000\000\000\000\000\000\015\r\015\017\000\000\015\017\000\000\015\017\000\000\015\017\000\000\000\000\000\000\015\r\015\r\015\r\000\000\015\r\015\r\000\000\000\000\015\017\000\000\000\000\000\000\000\000\000\000\000\000\015\017\t\018\000\000\015\r\000\000\000\000\000\000\015\r\000\000\000\000\015\017\000\000\000\000\015\017\000\000\000\000\000\000\000\000\015\r\015\017\015\017\000\246\006Q\b\150\000\000\000\000\000\000\006Q\000\000\000\000\006Q\000\000\000\000\000\000\000\000\015\017\000\000\000\000\000\000\015\017\006Q\000\000\006Q\000\000\006Q\000\000\006Q\000\000\000\000\000\000\015\017\015\017\015\017\000\000\015\017\015\017\000\000\000\000\006Q\000\000\000\000\000\000\000\000\000\000\000\000\006Q\t\018\000\000\015\017\000\000\000\000\000\000\015\017\000\000\000\000\006Q\000\000\000\000\006Q\000\000\000\000\000\000\000\000\015\017\006Q\006Q\000\246\006U\006U\000\000\000\000\000\000\006U\000\000\000\000\006U\000\000\000\000\000\000\000\000\006Q\000\000\000\000\000\000\006Q\006U\000\000\006U\000\000\006U\000\000\006U\000\000\000\000\000\000\006Q\006Q\006Q\000\000\006Q\006Q\000\000\000\000\006U\000\000\000\000\000\000\000\000\000\000\000\000\006U\006U\000\000\006Q\000\000\000\000\000\000\006Q\000\000\000\000\006U\000\000\000\000\006U\000\000\000\000\000\000\000\000\006Q\006U\006U\006U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006U\000\000\003>\002\238\006U\000\000\002\174\000\000\b\002\000\000\000\000\003&\000\000\000\000\000\000\006U\006U\006U\000\000\006U\006U\001\218\000\000\b:\000\000\000\000\000\000\000\000\003B\000\000\000\000\nv\000\000\006U\000\000\000\000\000\000\006U\000\000\000\000\n\206\000\000\003N\000\000\000\000\015\246\000\000\001\198\t:\000\000\007q\007q\000\000\002\226\000\000\000\000\004\"\004&\000\000\000\000\000\000\004*\000\000\0042\000\000\012\154\006z\000\000\003i\007q\007q\007q\000\000\003i\000\000\001\214\003i\000\000\006~\007q\000\000\000\000\000\000\000\000\000\000\000\000\003i\006\134\006\138\000\000\003i\000\000\003i\007q\007q\007q\000\000\000\000\000\000\007q\000\000\007q\007q\007q\003i\000\000\000\000\000\000\000\000\007q\016\006\003i\006\142\000\000\000\000\000\000\000\000\000\000\004\166\004n\000\000\003i\000\000\000\000\003i\000\000\007q\000\000\000\000\000\000\003i\003i\003i\003e\000\000\000\000\000\000\000\000\003e\000\000\001\214\003e\000\000\000\000\000\000\000\000\003i\003i\000\000\000\000\004\226\003e\000\000\000\000\000\000\003e\000\000\003e\000\000\000\000\000\000\003i\003i\000\000\000\000\003i\003i\000\000\000\000\003e\000\000\006\002\000\000\000\000\000\000\003i\003e\000\000\000\000\000\000\000\000\000\000\001Y\003i\004n\000\000\003e\001Y\003i\003e\001Y\000\000\000\000\000\000\003i\003e\003e\003e\000\000\000\000\001Y\000\000\001Y\000\000\001Y\000\000\001Y\000\000\000\000\000\000\000\000\003e\003e\000\000\000\000\004\226\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\001Y\003e\003e\000\000\001Y\003e\003e\000\000\000\000\000\000\001Y\000\000\000\000\001Y\000\000\003e\000\000\000\000\000\000\001Y\001Y\000\246\001U\003e\000\000\000\000\000\000\001U\003e\001Y\001U\000\000\000\000\000\000\003e\001Y\000\000\000\000\000\000\001Y\001U\000\000\001U\000\000\001U\000\000\001U\000\000\000\000\000\000\001Y\001Y\001Y\000\000\001Y\001Y\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\001Y\001U\000\000\000\000\000\000\001U\000\000\000\000\001Y\000\000\000\000\001U\000\000\000\000\001U\000\000\000\000\000\000\000\000\001Y\001U\001U\000\246\000\000\000\000\000\000\001\145\000\000\000\000\000\000\001U\001\145\000\000\014]\001\145\000\000\001U\000\000\000\000\000\000\001U\000\000\014]\000\000\001\145\000\000\001\145\000\000\001\145\000\000\001\145\001U\001U\001U\000\000\001U\001U\000\000\000\000\000\000\000\000\000\000\001\145\000\000\000\000\001U\000\000\000\000\000\000\001\145\014]\000\000\000\000\001U\000\000\000\000\000\000\014]\000\000\000\000\000\000\000\000\001\145\000\000\001U\000\000\000\000\000\000\001\145\001\145\001\145\001E\000\000\000\000\000\000\000\000\001E\000\000\000\165\001E\000\000\000\000\000\000\000\000\001\145\000\000\000\000\000\165\014]\001E\000\000\001E\000\000\001E\000\000\001E\000\000\000\000\000\000\001\145\001\145\001\145\000\000\001\145\001\145\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\000\000\001E\000\165\000\000\000\000\002\t\000\000\000\000\001\145\000\165\002\t\000\000\018\138\002\t\001E\002\174\000\000\000\000\000\000\001\145\001E\001E\001E\002\t\000\000\000\000\000\000\002\t\000\000\002\t\000\000\000\000\000\000\000\000\000\000\000\000\001E\000\000\000\000\000\000\000\165\002\t\000\000\000\000\000\000\000\000\000\000\000\000\002\t\000\000\000\000\001E\001E\001E\018\142\001E\001E\000\000\002\t\000\000\000\000\002\t\000\000\000\000\000\000\000\000\000\000\002\t\002\t\000\000\018\154\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\t\001E\003>\002\238\002\t\000\000\002\174\000\000\b\002\000\000\000\000\003&\000\000\000\000\006\138\002\t\002\t\000\000\000\000\002\t\002\t\001\218\000\000\b:\000\000\000\000\000\000\000\000\003B\002\t\000\000\nv\000\000\000\000\000\000\000\000\000\000\002\t\000\000\000\000\027\026\000\000\003N\000\000\000\000\025\130\000\000\001\198\002\t\000\000\000\000\000\000\000\000\002\226\000\000\000\000\004\"\004&\000\000\000\000\000\000\004*\000\000\0042\000\000\012\154\006z\000\000\000\000\000\000\000\000\003>\002\238\000\000\000\000\002\174\000\000\b\002\006~\000\000\003&\000\000\000\000\000\000\000\000\000\000\000\000\006\134\006\138\000\000\001\218\025\134\b:\000\000\000\000\000\000\000\000\003B\000\000\000\000\nv\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\230\003N\006\142\000\000\r^\000\000\001\198\000\000\004\166\000\000\000\000\000\000\002\226\000\000\000\000\004\"\004&\000\000\000\000\000\000\004*\000\000\0042\000\000\012\154\006z\000\000\000\000\000\000\000\000\003>\002\238\000\000\000\000\002\174\000\000\b\002\006~\000\000\003&\000\000\000\000\000\000\000\000\000\000\000\000\006\134\006\138\000\000\001\218\rn\b:\000\000\000\000\000\000\000\000\003B\000\000\000\000\nv\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\"\003N\006\142\000\000\r^\000\000\001\198\000\000\004\166\000\000\000\000\000\000\002\226\000\000\000\000\004\"\004&\000\000\000\000\000\000\004*\000\000\0042\000\000\012\154\006z\000\000\000\000\000\000\000\000\004\193\004\193\000\000\000\000\004\193\000\000\000\000\006~\000\000\004\193\000\000\000\000\000\000\000\000\000\000\004\193\006\134\006\138\000\000\004\193\rn\000\000\000\000\000\000\000\000\000\000\004\193\026\210\000\000\000\000\026\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\130\004\193\006\142\000\000\004\193\004\193\004\193\000\000\004\166\000\000\000\000\000\000\004\193\000\000\000\000\004\193\004\193\000\000\000\000\000\246\004\193\000\000\004\193\004\193\006\198\004\193\000\000\000\000\000\000\000\000\003>\002\238\000\000\000\000\002\174\000\000\000\000\004\193\000\000\003&\000\000\000\000\000\000\000\000\006\202\000\000\004\193\004\193\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003N\004\193\000\000\003Z\012\130\001\198\000\000\004\193\000\000\000\000\000\000\002\226\000\000\000\000\004\"\004&\000\000\000\000\000\000\004*\000\000\0042\006n\000\000\006z\004\217\b\150\000\000\000\000\000\000\004\217\000\000\000\000\004\217\000\000\000\000\006~\000\000\000\000\000\000\000\000\000\000\000\000\004\217\000\000\006\134\006\138\004\217\006\206\004\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\217\000\000\000\000\007\238\000\000\000\000\007\138\004\217\t\018\006\142\000\000\004\217\000\000\tn\000\000\004\166\000\000\004\217\000\000\000\000\004\217\000\000\000\000\000\000\000\000\000\000\004\217\003\018\000\246\b\189\000\000\000\000\000\000\000\000\b\189\004\217\004\217\b\189\000\000\000\000\000\000\000\000\004\217\004\217\000\000\000\000\004\217\b\189\000\000\000\000\000\000\b\189\000\000\b\189\000\000\000\000\000\000\004\217\004\217\000\000\000\000\004\217\004\217\000\000\000\000\b\189\000\000\t&\000\000\000\000\000\000\004\217\b\189\000\000\000\000\000\000\b\189\000\000\000\000\004\217\000\000\000\000\b\189\000\000\029\"\b\189\000\000\000\000\000\000\000\000\004\217\b\189\b\189\000\246\b\185\000\000\000\000\000\000\000\000\b\185\b\189\b\189\b\185\000\000\000\000\000\000\000\000\b\189\000\000\000\000\000\000\b\189\b\185\000\000\000\000\000\000\b\185\000\000\b\185\000\000\000\000\000\000\b\189\b\189\b\189\000\000\b\189\b\189\000\000\000\000\b\185\000\000\000\000\000\000\000\000\000\000\b\189\b\185\000\000\000\000\000\000\b\185\000\000\000\000\b\189\000\000\000\000\b\185\000\000\000\000\b\185\000\000\000\000\000\000\000\000\000\000\b\185\b\185\000\246\003]\000\000\000\000\000\000\000\000\003]\b\185\b\185\003]\000\000\000\000\000\000\000\000\b\185\000\000\000\000\000\000\b\185\003]\000\000\000\000\000\000\003]\000\000\003]\000\000\000\000\000\000\b\185\b\185\b\185\000\000\b\185\b\185\000\000\000\000\003]\018\162\000\000\000\000\000\000\000\000\b\185\003]\000\000\000\000\000\000\000\000\000\000\000\000\b\185\006\241\000\000\003]\000\000\000\000\003]\000\000\002\238\000\000\000\000\002\174\003]\003]\003]\000\000\003&\000\000\000\000\000\000\000\000\006\241\000\000\000\000\000\000\000\000\001\218\000\000\003]\000\000\003*\000\000\003]\000\000\000\000\000\000\000\000\000\000\000\000\003.\000\000\000\000\003\198\003]\003]\029*\000\000\003]\003]\000\000\004\006\000\000\001\198\000\000\000\000\000\000\000\000\003]\002\226\000\000\000\000\004\014\t\170\000\000\019*\003]\t\174\t\178\t\190\000\000\003]\006z\000\000\000\000\000\000\000\000\003]\000\000\000\000\000\000\000\000\003>\002\238\000\000\000\000\002\174\000\000\b\002\000\000\000\000\003&\000\000\006\134\006\138\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\b:\000\000\000\000\000\000\000\000\003B\000\000\000\000\nv\000\000\000\000\000\000\000\000\000\000\000\000\006\142\t\198\000\000\000\000\003N\t\222\004\166\n\190\000\000\001\198\000\000\000\000\000\000\000\000\000\000\002\226\000\000\000\000\004\"\004&\000\000\000\000\007\025\004*\000\000\0042\000\000\012\154\006z\002\238\000\000\000\000\002\174\000\000\000\000\000\000\000\000\003&\000\000\000\000\006~\000\000\007\025\000\000\000\000\000\000\000\000\001\218\000\000\006\134\006\138\003*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003.\000\000\000\000\003\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\001\198\006\142\000\000\000\000\000\000\000\000\002\226\004\166\000\000\004\014\t\170\000\000\000\000\000\000\t\174\t\178\t\190\000\000\029\002\006z\000\000\000\000\000\000\000\000\003>\002\238\000\000\000\000\002\174\000\000\000\000\000\000\000\000\003&\000\000\000\000\000\000\000\000\000\000\000\000\006\134\006\138\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003N\006\142\t\198\003Z\000\000\001\198\t\222\004\166\000\000\000\000\000\000\002\226\000\000\000\000\004\"\004&\000\000\000\000\000\000\004*\000\000\0042\006n\000\000\006z\003]\000\000\000\000\000\000\000\000\003]\000\000\000\000\003]\000\000\000\000\006~\000\000\000\000\000\000\000\000\000\000\000\000\003]\000\000\006\134\006\138\003]\006\206\003]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003]\018\162\000\000\000\000\000\000\000\000\000\000\003]\000\000\006\142\000\000\014U\000\000\n^\000\000\004\166\014U\003]\000\000\014U\003]\000\000\000\000\000\000\000\000\000\000\003]\003]\003]\014U\000\000\000\000\000\000\014U\000\000\014U\000\000\000\000\000\000\000\000\000\000\005\145\003]\000\000\000\000\000\000\003]\014U\000\000\000\000\000\000\000\000\000\000\000\000\014U\000\000\000\000\003]\003]\029Z\000\000\003]\003]\000\000\014U\000\000\000\000\014U\000\000\000\000\000\000\000\000\000\000\014U\014U\000\000\000\000\000\000\019*\003]\000\000\000\000\000\000\000\000\003]\006\242\000\000\000\000\000\000\014U\000\000\003>\002\238\014U\000\000\002\174\000\000\000\000\000\000\000\000\003&\000\000\000\000\000\000\014U\014U\002\166\004.\014U\014U\001\218\000\000\000\000\007Z\000\000\000\000\000\000\003B\014U\001\210\001\214\026&\000\000\030\182\000\000\000\000\014U\000\000\000\000\000\000\000\000\003N\000\000\000\000\003Z\000\000\001\198\014U\001\218\001\222\001\238\000\000\002\226\000\000\000\000\004\"\004&\000\000\001\250\000\000\004*\000\000\0042\006n\000\000\006z\002\002\000\000\000\000\007N\000\000\000\000\001\254\002\198\002\206\003>\002\238\006~\002\218\002\174\002\226\004N\004Z\000\000\003&\000\000\006\134\006\138\004f\006\206\000\000\007\162\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\007u\007u\004j\000\000\000\000\000\000\000\000\000\000\006\142\000\000\007\222\000\000\003N\000\000\004\166\003Z\004^\001\198\000\000\007u\007u\007u\000\000\002\226\000\000\000\000\004\"\004&\000\000\007u\000\000\004*\000\000\0042\006n\000\000\006z\000\000\000\000\000\000\007n\000\000\000\000\007u\007u\007u\003>\002\238\006~\007u\002\174\007u\007u\007u\000\000\003&\000\000\006\134\006\138\007u\006\206\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\007u\000\000\000\000\000\000\000\000\000\000\006\142\000\000\000\000\000\000\003N\000\000\004\166\003Z\000\000\001\198\000\000\000\000\000\000\000\000\000\000\002\226\000\000\000\000\004\"\004&\000\000\000\000\000\000\004*\000\000\0042\006n\000\000\006z\000\000\000\000\000\000\004R\000\000\007u\000\000\006\245\000\000\000\000\000\000\006~\000\000\003>\002\238\000\000\000\000\002\174\000\000\000\000\006\134\006\138\003&\006\206\000\000\000\000\000\000\006\245\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\000\000\006\142\000\000\000\000\000\000\000\000\000\000\004\166\000\000\003N\000\000\000\000\003Z\000\000\001\198\000\000\000\000\000\000\000\000\000\000\002\226\000\000\000\000\004\"\004&\000\000\000\000\000\000\004*\000\000\0042\006n\r\246\006z\000\000\000\000\000\000\000\000\003>\002\238\000\000\000\000\002\174\000\000\000\000\006~\000\000\003&\000\000\000\000\000\000\000\000\014\002\000\000\006\134\006\138\000\000\001\218\003>\002\238\000\000\000\000\002\174\000\000\003B\000\000\000\000\003&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\218\003N\006\142\000\000\003Z\000\000\001\198\003B\004\166\000\000\000\000\000\000\002\226\000\000\000\000\004\"\004&\000\000\000\000\000\000\004*\003N\0042\006n\003Z\006z\001\198\000\000\000\000\000\000\000\000\000\000\002\226\000\000\000\000\004\"\004&\006~\000\000\000\000\004*\000\000\0042\006n\000\000\006z\006\134\006\138\000\000\006\206\000\000\000\000\000\000\014\014\000\000\000\000\000\000\006~\000\000\003>\002\238\000\000\000\000\002\174\000\000\000\000\006\134\006\138\003&\006\206\000\000\006\142\000\000\000\000\000\000\000\000\000\000\004\166\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\000\000\006\142\000\000\000\000\000\000\000\000\000\000\004\166\000\000\003N\000\000\000\000\003Z\000\000\001\198\000\000\001\210\001\214\000\000\000\000\002\226\000\000\000\000\004\"\004&\000\000\000\000\000\000\004*\000\000\0042\006n\000\000\006z\005\233\001\218\002\178\000\000\000\000\005\233\000\000\000\000\005\233\000\000\000\000\006~\000\000\000\000\000\000\000\000\000\000\000\000\005\233\000\000\006\134\006\138\005\233\006\206\005\233\002\214\029\242\004n\000\000\000\000\000\000\002\218\000\000\002\226\004N\004Z\005\233\000\000\000\000\000\000\000\000\004f\000\000\005\233\000\000\006\142\000\000\000\000\000\000\tn\000\000\004\166\000\000\005\233\000\000\000\000\005\233\000\000\004j\000\000\000\000\000\000\005\233\005\233\000\246\005\237\000\000\000\000\000\000\000\000\005\237\000\000\000\000\005\237\000\000\000\000\000\000\000\000\005\233\005\233\000\000\000\000\005\233\005\237\000\000\000\000\000\000\005\237\000\000\005\237\000\000\b\237\b\237\005\233\005\233\b\237\000\000\005\233\005\233\000\000\b\237\005\237\000\000\000\000\000\000\000\000\019r\000\000\005\237\000\000\b\237\000\000\000\000\000\000\tn\005\233\000\000\b\237\005\237\000\000\000\000\005\237\000\000\000\000\000\000\000\000\005\233\005\237\005\237\000\246\000\000\b\237\000\000\000\000\b\237\b\237\b\237\000\000\000\000\000\000\000\000\000\000\b\237\005\237\005\237\b\237\b\237\005\237\000\000\000\000\b\237\000\000\b\237\b\237\000\000\b\237\000\000\000\000\005\237\005\237\003]\000\000\005\237\005\237\000\000\003]\000\000\b\237\003]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\237\b\237\003]\000\000\005\237\000\000\003]\000\000\003]\000\000\000\000\000\000\000\000\000\000\000\000\005\237\000\000\000\000\000\000\000\000\003]\018\162\000\000\000\000\000\000\b\237\000\000\003]\000\000\000\000\000\000\b\237\000\000\006\169\000\000\000\000\000\000\003]\006\169\000\000\003]\006\169\000\000\000\000\000\000\000\000\003]\003]\003]\000\000\000\000\006\169\000\000\000\000\000\000\006\169\000\000\006\169\000\000\000\000\000\000\000\000\003]\000\000\000\000\000\000\003]\000\000\000\000\006\169\000\000\000\000\000\000\000\000\000\000\000\000\006\169\003]\003]\0216\000\000\003]\003]\000\000\000\000\000\000\006\169\000\000\000\000\006\169\000\000\000\000\000\000\000\000\000\000\006\169\006\169\000\246\019*\003]\007\161\b\150\000\000\000\000\000\000\007\161\000\000\000\000\007\161\000\000\000\000\006\169\000\000\000\000\000\000\006\169\000\000\000\000\007\161\000\000\000\000\000\000\007\161\000\000\007\161\000\000\006\169\006\169\025\014\000\000\006\169\006\169\000\000\000\000\000\000\000\000\007\161\000\000\000\000\000\000\006\169\000\000\000\000\007\161\t\018\000\000\000\000\001\217\006\169\000\000\000\000\000\000\001\217\007\161\000\000\001\217\007\161\000\000\000\000\006\169\000\000\000\000\007\161\007\161\000\246\001\217\000\000\000\000\000\000\001\217\000\000\001\217\000\000\000\000\000\000\000\000\000\000\000\000\007\161\000\000\000\000\000\000\007\161\001\217\000\000\000\000\000\000\000\000\000\000\000\000\001\217\000\000\000\000\007\161\007\161\000\000\002\r\007\161\007\161\000\000\001\217\002\r\000\000\001\217\002\r\000\000\000\000\000\000\000\000\001\217\001\217\001\217\000\000\000\000\002\r\007\161\000\000\000\000\002\r\000\000\002\r\000\000\000\000\000\000\000\000\001\217\000\000\000\000\000\000\001\217\000\000\000\000\002\r\000\000\000\000\000\000\000\000\000\000\000\000\002\r\001\217\001\217\000\000\000\000\001\217\001\217\000\000\000\000\000\000\002\r\021B\000\000\002\r\000\000\000\000\000\000\000\000\000\000\002\r\002\r\000\000\006\173\001\217\000\000\000\000\000\000\006\173\001\217\000\000\006\173\000\000\000\000\000\000\000\000\002\r\000\000\000\000\000\000\002\r\006\173\000\000\000\000\000\000\006\173\000\000\006\173\000\000\000\000\000\000\002\r\002\r\000\000\000\000\002\r\002\r\000\000\000\000\006\173\000\000\000\000\000\000\000\000\000\000\002\r\006\173\000\000\000\000\000\000\000\000\000\000\014U\002\r\000\000\000\000\006\173\014U\024\234\006\173\014U\000\000\000\000\000\000\002\r\006\173\006\173\000\246\000\000\000\000\014U\000\000\000\000\000\000\014U\000\000\014U\000\000\000\000\000\000\000\000\006\173\005\145\000\000\000\000\006\173\000\000\000\000\014U\000\000\000\000\000\000\000\000\000\000\000\000\014U\006\173\006\173\000\000\000\000\006\173\006\173\000\000\000\000\000\000\000\000\000\000\000\000\014U\000\000\006\173\000\000\000\000\000\000\014U\014U\000\000\000\000\006\173\000\000\000\000\000\000\014\r\000\000\002\238\014\r\000\000 b\000\000\006\173\014U\000\000 f\000\000\000\000\014\r\000\000\000\000\000\000\000\000\000\000\014\r\000\000\000\000\000\000\014U\014U\002\166\000\000\014U\014U\000\000\000\000\014\r\000\000\000\000\000\000\000\000\000\000\014U\014\r\000\000\000\000\000\000\030\238\000\000\001\n\014U\001\198\000\000\014\r\000\000\004\217\014\r\000\000\000\000\000\000\004\217\014U\014\r\004\217\000\000\000\000\000\000\000\000\000\000\000\000 j\000\000\000\000\004\217\000\000\000\000\000\000\004\217\014\r\004\217\000\000\000\000\014\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\217 n\014\r\014\r\000\000\000\000\014\r\004\217\000\000\000\000\000\000\001}\000\000\000\000\000\000\000\000\001}\004\217\000\000\001}\004\217\000\000\000\000\000\000\014\r\000\000\004\217\003\018\000\000\001}\000\000\001}\000\000\001}\000\000\001}\000\000\000\000\000\000\000\000\000\000\000\000\004\217\000\000\000\000\000\000\004\217\001}\000\000\000\000\000\000\000\000\000\000\000\000\001}\000\000\000\000\004\217\004\217\000\000\000\249\004\217\004\217\000\000\000\000\000\249\000\000\001}\000\249\000\000\000\000\b\194\000\000\001}\001}\000\246\000\000\000\000\000\249\004\217\000\000\000\000\000\249\000\000\000\249\000\000\000\000\000\000\000\000\001}\004\217\000\000\000\000\000\000\000\000\000\000\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\249\001}\001}\001}\000\253\001}\001}\000\000\000\000\000\253\000\249\000\000\000\253\000\249\000\000\000\000\000\000\000\000\000\000\000\249\000\249\000\246\000\253\001}\000\000\000\000\000\253\000\000\000\253\000\000\000\000\000\000\000\000\000\000\001}\000\249\000\000\000\000\000\000\000\249\000\253\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\000\000\000\000\249\000\249\000\000\000\000\000\249\000\249\004\185\000\253\000\000\000\000\000\253\004\185\000\000\000\000\004\185\000\000\000\253\000\253\000\246\000\000\000\000\000\000\000\249\000\000\004\185\000\000\000\000\000\000\004\185\000\000\004\185\000\000\000\253\000\249\001\210\002\170\000\253\000\000\002\174\000\000\000\000\000\000\004\185\000\000\000\000\000\000\000\000\000\253\000\253\004\185\000\000\000\253\000\253\001\218\002\178\001\238\000\000\000\000\000\000\000\000\000\000\000\000\004\185\001\250\000\000\000\000\000\000\000\000\004\185\000\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\002\198\002\206\000\253\000\000\000\000\002\218\004\185\002\226\004N\004Z\003>\002\238\000\000\000\000\002\174\024\194\000\000\030\154\000\000\003&\000\000\004\185\004\185\000\000\000\000\004\185\004\185\000\000\000\000\001\218\000\000\000\000\004j\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\000\000\006\138\004\185\000\000\000\000\000\000\000\000\000\000\000\000\003N\000\000\030\166\012\158\021\226\001\198\000\000\001\210\001\214\000\000\000\000\002\226\000\000\000\000\004\"\004&\000\000\000\000\000\000\004*\024\214\0042\000\000\000\000\006z\006\161\001\218\002\178\000\000\000\000\006\161\000\000\000\000\006\161\000\000\000\000\006~\000\000\000\000\000\000\021\018\000\000\000\000\006\161\000\000\006\134\006\138\006\161\000\000\006\161\005\006\005~\004n\000\000\000\000\000\000\002\218\000\000\002\226\004N\004Z\006\161\000\000\000\000\000\000\000\000\004f\000\000\006\161\000\000\006\142\000\000\005\245\b\150\000\000\000\000\004\166\005\245\006\161\000\000\005\245\006\161\000\000\004j\000\000\000\000\000\000\006\161\006\161\000\000\005\245\000\000\000\000\000\000\005\245\000\000\005\245\000\000\000\000\000\000\000\000\000\000\000\000\006\161\000\000\000\000\000\000\006\161\005\245\000\000\000\000\000\000\000\000\000\000\000\000\005\245\t\018\000\000\006\161\006\161\000\000\r\189\006\161\006\161\000\000\000\000\r\189\000\000\005\245\r\189\000\000\000\000\000\000\000\000\005\245\005\245\000\246\000\000\000\000\r\189\006\161\000\000\000\000\r\189\000\000\r\189\000\000\000\000\000\000\000\000\005\245\000\000\000\000\000\000\000\000\000\000\000\000\r\189\000\000\000\000\000\000\000\000\000\000\000\000\r\189\005\245\005\245\000\000\004\177\005\245\005\245\000\000\000\000\004\177\r\189\000\000\004\177\r\189\000\000\000\000\000\000\000\000\000\000\r\189\000\000\000\000\004\177\005\245\000\000\000\000\004\177\000\000\004\177\000\000\000\000\000\000\000\000\000\000\000\000\r\189\011\150\000\000\000\000\r\189\004\177\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\000\000\r\189\r\189\000\000\000\000\r\189\r\189\000\000\004\177\000\000\000\000\004\177\000\000\000\000\000\000\000\000\000\000\004\177\000\000\000\000\004\217\000\000\000\000\r\189\000\000\004\217\000\000\000\000\004\217\000\000\000\000\000\000\000\000\004\177\012z\000\000\000\000\004\177\004\217\000\000\000\000\000\000\004\217\000\000\004\217\000\000\000\000\000\000\004\177\004\177\004\169\000\000\004\177\004\177\000\000\004\169\004\217\000\000\004\169\000\000\000\000\000\000\000\000\004\217\000\000\000\000\000\000\000\000\004\169\004v\004\177\000\000\004\169\000\000\004\169\000\000\004\217\000\000\000\000\000\000\000\000\020\154\004\217\003\018\000\000\000\000\004\169\000\000\000\000\000\000\000\000\000\000\000\000\004\169\000\000\000\000\000\000\004\201\004\217\000\000\000\000\000\000\004\201\004\169\000\000\004\201\004\169\000\000\000\000\000\000\000\000\000\000\004\169\004\217\004\217\004\201\000\000\004\217\004\217\004\201\000\000\004\201\000\000\004\134\000\000\000\000\000\000\000\000\004\169\000\000\000\000\000\000\004\169\004\201\000\000\004\217\000\000\000\000\000\000\000\000\004\201\000\000\000\000\004\169\004\169\000\000\004\153\004\169\004\169\000\000\004\201\004\153\000\000\004\201\004\153\000\000\000\000\000\000\000\000\004\201\000\000\000\000\000\000\000\000\004\153\004\169\000\000\000\000\004\153\000\000\004\153\000\000\000\000\000\000\000\000\004\201\023\142\000\000\000\000\004\201\000\000\000\000\004\153\000\000\000\000\000\000\000\000\000\000\000\000\004\153\004\201\004\201\000\000\004\225\004\201\004\201\000\000\000\000\000\254\004\153\000\000\002\026\004\153\000\000\000\000\000\000\000\000\000\000\004\153\000\000\000\000\021f\004\201\000\000\000\000\b9\000\000\003\158\b9\000\000\000\000\000\000\000\000\024\134\004\153\000\000\000\000\000\000\004\153\021j\000\000\001\210\001\214\026\134\b9\b9\021\146\b9\b9\004\153\004\153\000\000\000\000\004\153\004\153\002\194\000\000\000\000\000\000\020\194\001\218\001\222\001\238\000\000\000\000\020\218\000\000\000\000\000\000\b9\001\250\004\153\000\000\000\000\000\000\000\000\000\000\000\000\002\002\000\000\000\000\020\226\028\006\000\000\001\254\002\198\002\206\000\000\bM\b9\002\218\bM\002\226\004N\004Z\000\000\020\234\022*\000\000\000\000\004f\004\225\000\000\000\000\b9\000\000\000\000\bM\bM\000\000\bM\bM\000\000\000\000\000\000\000\000\000\000\004j\022:\000\000\b9\000\000\b9\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bM\000\000\006\230\b9\000\000\000\000\b9\b9\000\000\000\000\000\000\b9\000\000\b9\000\000\000\000\018\146\b9\b%\000\000\000\246\b%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bM\000\000\b%\b%\000\000\b%\b%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bM\000\000\bM\000\000\004\217\000\000\000\000\000\000\000\000\004\217\000\000\b%\004\217\000\000\bM\bM\000\000\000\000\006\238\bM\000\000\000\000\004\217\bM\000\000\bM\004\217\000\000\004\217\bM\bQ\b%\000\000\bQ\000\000\000\000\000\000\000\000\000\000\000\000\004\217\000\000\000\000\000\000\000\000\000\000\b%\004\217\000\000\bQ\bQ\000\000\bQ\bQ\000\000\000\000\000\000\000\000\000\000\000\000\004\217\000\000\b%\000\000\b%\000\000\004\217\003\018\000\000\000\000\bA\000\000\000\000\bA\bQ\000\000\b%\b%\000\000\000\000\006\238\b%\004\217\000\000\000\000\b%\000\000\b%\000\000\bA\bA\b%\bA\bA\000\246\000\000\000\000\004\217\004\217\000\000\000\000\004\217\004\217\000\000\000\000\000\000\000\000\000\000\000\000\bQ\000\000\007Z\000\000\000\000\bA\000\000\000\000\001\210\001\214\004\217\000\000\000\000\000\000\000\000\024\234\bQ\000\000\bQ\000\000\000\000\000\000\000\000\000\000\004.\000\246\000\000\001\218\002\178\001\238\bQ\bQ\000\000\000\000\006\238\bQ\000\000\001\250\000\000\bQ\bA\bQ\000\000\000\000\000\000\bQ\000\000\000\000\000\000\000\000\000\000\001\254\002\198\002\206\000\000\000\000\bA\002\218\bA\002\226\004N\004Z\000\000\000\000\004\161\000\000\000\000\004f\000\000\004\161\007J\bA\004\161\000\000\006\238\bA\000\000\000\000\000\000\bA\000\000\bA\004\161\000\000\004j\bA\004\161\004\209\004\161\000\000\000\000\000\000\004\209\000\000\000\000\004\209\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\004\209\000\000\004\161\000\000\004\209\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\004\162\004\209\004\166\000\000\004\161\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\161\004\209\000\000\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\161\004\161\000\000\000\000\004\161\004\161\000\000\000\000\004\209\000\000\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\161\004\209\004\209\000\000\000\000\004\209\004\209\001\218\002\178\001\238\000\000\024\026\000\000\000\000\000\000\000\000\000\000\001\250\000\000\000\000\000\000\000\000\000\000\004\209\000\000\002\002\000\000\000\000\000\000\015\021\015\021\001\254\002\198\002\206\024\174\000\000\011\030\002\218\000\000\002\226\004N\004Z\001\210\001\214\000\000\000\000\000\000\004f\015\021\015\021\015\021\b\170\000\000\000\000\000\000\000\000\000\000\000\000\015\021\000\000\000\000\001\218\002\178\001\238\004j\000\000\000\000\000\000\000\000\000\000\000\000\001\250\015\021\015\021\015\021\000\000\000\000\011*\015\021\000\000\015\021\015\021\015\021\001\210\001\214\001\254\002\198\002\206\015\021\000\000\000\000\002\218\000\000\002\226\004N\004Z\000\000\000\000\000\000\000\000\000\000\004f\001\218\002\178\001\238\015\021\000\000\000\000\000\000\000\000\000\000\000\000\001\250\000\000\000\000\004\225\000\000\000\000\004j\000\000\000\254\000\000\000\000\002\026\000\000\000\000\001\254\002\198\002\206\000\000\000\000\000\000\002\218\021f\002\226\004N\004Z\004\225\000\000\003\158\000\000\000\000\004f\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\021j\000\000\000\000\000\000\000\000\000\000\000\000\021\146\004j\000\000\000\000\001\218\002\178\001\238\000\000\000\000\000\000\000\000\000\000\000\000\020\194\001\250\000\000\000\000\022v\000\000\020\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\222\000\000\023\206\000\000\022\238\000\000\002\218\020\226\002\226\004N\004Z\001\210\001\214\000\000\000\000\000\000\023\222\000\000\000\000\000\000\000\000\000\000\020\234\022*\000\000\000\000\004\225\004\225\000\000\000\000\001\218\002\178\001\238\004j\000\000\000\000\000\000\000\000\000\000\000\000\001\250\000\000\000\000\000\000\022:\000\000\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\001\254\004\186\002\206\001\210\001\214\000\000\002\218\000\000\002\226\004N\004Z\001\218\002\178\001\238\000\000\000\000\004f\000\000\000\000\000\000\000\000\001\250\001\218\002\178\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\004j\000\000\001\254\004\198\002\206\001\210\001\214\000\000\002\218\000\000\002\226\004N\004Z\001\254\005^\002\206\000\000\000\000\004f\002\218\000\000\002\226\004N\004Z\001\218\002\178\001\238\000\000\000\000\004f\000\000\000\000\000\000\000\000\001\250\004j\000\000\000\000\000\000\000\000\001\210\001\214\000\000\000\000\000\000\000\000\004j\000\000\001\254\005\154\002\206\001\210\001\214\000\000\002\218\000\000\002\226\004N\004Z\001\218\002\178\001\238\000\000\000\000\004f\000\000\000\000\000\000\000\000\001\250\001\218\002\178\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\004j\000\000\001\254\005\178\002\206\001\210\001\214\000\000\002\218\000\000\002\226\004N\004Z\001\254\005\202\002\206\000\000\000\000\004f\002\218\000\000\002\226\004N\004Z\001\218\001\222\000\000\000\000\000\000\004f\000\000\000\000\000\000\000\000\000\000\004j\000\000\000\000\000\000\018\166\000\000\000\000\000\000\000\000\000\000\000\000\004j\000\000\002\222\000\000\004n\001\210\001\214\000\000\002\218\000\000\002\226\004N\004Z\000\000\000\000\000\000\000\000\000\000\004f\000\000\018\174\000\000\000\000\000\000\001\218\002\178\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\004j\000\000\000\000\000\000\018\254\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\001\254\029\226\002\206\001\210\001\214\000\000\002\218\000\000\002\226\004N\004Z\001\218\002\178\001\238\000\000\000\000\004f\000\000\000\000\000\000\000\000\001\250\001\218\002\178\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\004j\000\000\001\254\030\014\002\206\001\210\001\214\000\000\002\218\000\000\002\226\004N\004Z\001\254\030&\002\206\000\000\000\000\004f\002\218\000\000\002\226\004N\004Z\001\218\002\178\001\238\000\000\000\000\004f\000\000\000\000\000\000\000\000\001\250\004j\000\000\000\000\000\000\000\000\001\210\001\214\000\000\000\000\000\000\000\000\004j\000\000\001\254\030>\002\206\001\210\001\214\000\000\002\218\000\000\002\226\004N\004Z\001\218\002\178\001\238\000\000\000\000\004f\000\000\000\000\000\000\000\000\001\250\001\218\002\178\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\004j\000\000\001\254\030b\002\206\001\210\001\214\000\000\002\218\000\000\002\226\004N\004Z\001\254\030\138\002\206\000\000\000\000\004f\002\218\000\000\002\226\004N\004Z\001\218\002\178\000\000\000\000\000\000\004f\000\000\000\000\000\000\000\000\000\000\004j\000\000\000\000\000\000\019\014\000\000\001\210\001\214\000\000\000\000\000\000\004j\000\000\002\222\000\000\004n\000\000\001\210\001\214\002\218\000\000\002\226\004N\004Z\000\000\001\218\002\178\000\000\000\000\004f\000\000\000\000\000\000\000\000\000\000\000\000\001\218\002\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004j\000\000\000\000\002\222\019\022\029\150\001\210\001\214\000\000\002\218\000\000\002\226\004N\004Z\002\222\000\000\029\150\000\000\000\000\004f\002\218\000\000\002\226\004N\004Z\001\218\002\178\000\000\000\000\000\000\004f\000\000\000\000\000\000\001\210\001\214\004j\000\000\000\000\005a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004j\000\000\002\202\005e\004n\000\000\001\218\002\178\002\218\029\174\002\226\004N\004Z\000\000\000\000\000\000\000\000\000\000\004f\000\000\029\174\000\000\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\005\130\000\000\004n\000\000\000\000\004j\002\218\000\000\002\226\004N\004Z\001\218\002\178\000\000\000\000\000\000\004f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004j\000\000\029\246\000\000\004n\000\000\000\000\000\000\002\218\000\000\002\226\004N\004Z\000\000\000\000\000\000\000\000\000\000\004f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004j")) + ((16, "FfUfI@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022$I@\000\000\000\000\021*I@Ff\002\238\000K\000/xV\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0009\000\164\000\171\000\000\000\170\001b\000\000\001\174\001>\003\252\000\000\000\128\003~\004\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\020\000\000\000\000\000\000\002\226\137\020\000\000\000\000\000\000\002\002\000\000\000\000S\128\004\206\005|\000\000\000\000\154HP\006\021*Kjy\002\021*\168dT\128\021*Z\170\000\000\004\132\000\000Z\170\b<\000\000FN\000\000\0032\000\000\000\000\005L\000\000\002\002\000\000\021*\002\002\000\000\000\000\000\000\000\000\021*\000\000\000\000\b\136\000\000FN\000\000\000\000\005L\020h\003\004\150\178{TY\228\133\134\000\000\002\002\000\000\164p\168\164\000\000\177x\154HR\186\157\128\154HH\254\172 \154HI@Ff\000\000\000\000T\128\021*[\170Z\170\005\b\150\178\159\216\000\000\162\\I@FfUf\021*\000\000\000\000\017\"U\028\021*H\136]f\000\000\002\240\000\000\000\000\003\242\000\000\000\000K\210\004*\021\196\002\168\003\168\000\000\000\000\001\136\000\000Kj\bP\b\134\021*\024b\021*FfFf\000\000\000\000\000\000N\200N\200\021*\024b\024b\021*\000\000\007\248\004H\000F\000\000\bx\006\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000Uf\021*\000\000Dv\151TFf\000\000\001\002\000\000]f\148@\152\232\154\016\000\000\000F\000\000\0070\000\000\000\000\025Z\130\222VT\157\128\177\176\154H\154\220\000\000\130\222\154\220\000\000\130\222\130\222\001\016\000\000\n\208\001,\000\000\021\240\000\000\006L\000\000\000\000\006L\000\000\000\000\000\000\130\222\002\002\000\000_\196\174&\177x\000\000`\166\174l\177xa\136\000\000^\226\139\012\000\000\011\210\007\012\000\000\000\000Zr\001\016\000\000\000\000\000\000[r\139\012\\rbj\000\000\165:\154H\000\000\n@\001\016\001\016\000\000\000\000\130\222\000\000\0020\000\000u\214\n\128\002\002\000\000\023\000\002\002\000\000\139\012\001\148\139\012\n\146\000\000\003l\130\222\007:\011^\174\178\177xcLd.\000\000[.\139\012\012\194\000\000\0032\000\000\130\222\0044\177\246\154H\025\250\130\222\b\150\012\152\174\200\177xe\016e\242\000\000\012\182\175\014\177xf\212g\182\000\000\rJ\175T\177xh\152iz\000\000j\\\000\000\000\000\000\000\002(\000\000\130\222\000\000\020\172\142\134\000\000\130\222\006\020\130\222\027\154\000\000\028\156\000\000\b\024\004\142\000\000\r\002\130\222\006V\000\000\bZ\000\000\005f\000\000\000\000\001|\000\000\000\000\000\000\026&\130\222\tR\015N\175j\177xk>l \000\000\015\212\175\176\177xm\002m\228\000\000\016h\175\246\177xn\198o\168\000\000\026n\0318]fUH\021*]f\000\000\001\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R\142\022\012\000\000\000\000\000\000\002\b\028&\148@\000\000\000\000UT\021*]f\000\000\000\000\168\144]f\169\014\154\016\000\000\169\138\000\000]f\000\000\000\000^\012P\158\006\014\006\014\000\000\016\202]f\000\000\000\000\000\000\005,\017H\000\000C\172\000\000\000\000\154\164\000\000\170\b\170\170\000\000\n\b\000\000\000\000\1558\000\000\170X\001L\000\000\000\000\000\000\000\000\017^\000\000M\178\000\000\000\000\154\164\000\000\004@\000\000\000\000G\016\138\224\000\000\000\000D\196\024\"\025\006\025$\000\000\000\000\000\000\000\000\t4\000\000\000\000\000\000\b\226\000\000\000\000v\154\n\022\t\"\t\"\007\002\137\020\027\014\130\222\004T\007Z\017\198\000\000\017\242\000\000\000\000\011\004\011^\t\"\011\186\000\000UHS\192N\200\021*\024b\000K\000\178\t\182\000\000\017\160KjKj\000K\000\178\000\178Kj\000\000\139\138\012*Z\170\000F\007\000\172f\000\000\130\222\134\b\130\222}$\134\138\130\222\t\204\130\222\135\012\000\000\012~\012^\011\bKj\140\012\000\000\012v\t\016y\"\000\000\000\000\000\000\000\000Kj\140\142Kj\141\016\000\152\001\016}\166\006\n\001\016~(\000\000\141\146\012*\000\000\000\000\000\000\024\018\000\000\000\000\028\026\000\000\012f\024b\000\000y\202\024b\000\000\025\166\000\000\000\000Kj\025,\000\000\000\000\000\000\000\000w\\\000\000\b\134\000\000FfJ\014\n\210\000P\000\000\023\028T\nUf\021*J\014UH\021*\017\"\017\"\000\000\000\000\000\000\000\000\002\004\022jEn\000\000WJX\bN\200\021*\024b\t8\\\232\000\000\030\246\000\000X\198Y\132\155\212\024\178\130\222\n\206\000\000Uf\021*\000\000UT\021*\138\224]f\027\150\000\000UH\021*\151\222\004\014\000\000]f]fG8\137\020\028*\130\222\b\\\t\138\011\186\018\132\000\000\011\186\018\172\000\000\000\000\000\000K\210\012\236\018\144\0186\002\002\0192\000\000\000\000\025p\002\002\019H\142&\000\000UT\021*]f\026\182\000\000UH\021*\017\"\023\028\017\"\003\006\b\218\000\000\000\000\017\"\r\b\019\014\002\250\172|\000\000\0282\172\244\000\000\024\168\130\222\028\176\019N\000\000\000\000\019\020\000\000\017\"\004\b\019 \000\000%8\000\000\rh\000\000\000\000\027$\000\000\018$\024\030\000\000\000\000\000\000\000\000\011\202\000\000\000\000\028&\000\000\029(\000\000\030*\000\000\019&\025 \000\000\000\000\000\000I@\000\000\000\000\000\000\000\000\031,\000\000 .\000\000!0\000\000\"2\000\000#4\000\000$6\000\000%8\000\000&:\000\000'<\000\000(>\000\000)@\000\000*B\000\000+D\000\000,F\000\000-H\000\000.J\000\000/L\000\0000N\000\0001P\000\0002R\021*\148@\000/\135\160L\200\rd\026D\002\002\019b\136*M\190\rf\029x\002\002\019f\136*\164\220P\158]fG\016\000\000\n\002\002\002\000\000\139\012\005\200\139\012\019j\000\000\029,\130\222\012\144\000\000D@\173\012\030\002\130\222\012\188\000\000\000\000\000\000\000\000\018\222\000\000\000\000\000\000\000\000\136*\000\000\000\000\000\000\019\134\136*\000\000\022\158\000\000\000\000]f\019\158\000\000F\026\173\012\030.\130\222\012\254\000\000\000\000\019\164\136\180\000\000\000\000\019\020\000\000\000\000\000\000\000\000\136\180\000\000\137\020\0310\130\222\012\188\000\000\000\000\019\022\000\000\000\000\000\000N\182\137\020\r\190\019\b\130\222\r\002\000\000\000\000\031|\130\222\r\146\000\000\000\000\019\026\000\000\000\000\000\000\025\180\130\222\r\168\000\000\000\000\029\188\000\000\000\000\156^\000\000\030\190\156\134\000\000\031\192\157\"\000\000 \194\bZ\000\000\000\000\000\000\000\000!\196]f\"\198\000\000\148\206\148\206\000\000\000\000\000\0003T\000\000\007\022\000\000\000\000\000\000\014\016\000\000\000\000\r\162\t\220\000\000\014T\000\000\000\000w\200Q\150\000\000\000\000\012P\000\000\000\000\000\000\014\244\000\000\000\000\000\000\017\"\005\n\n\222\000\000\014j\000\000\006\012\000\0004V\000\000\r\142\000\000\007\014\000\0005X\000\000\015\018\000\000\b\016\000\0006Z%>\000\000\014\164\t\018\000\0007\\\000\000\014\144\n\020\000\0008^\000\000\015:\011\022\000\0009`\r\182\011\224\000\000\015*\012\024\000\000:b\000\000\014\194\r\026\000\000;d\000\000\015\246\014\028\000\000j]f\000\000\000\000\020\018\000\000?l\000\000@n\000\000#\200\000\000\000\000\014\136\000\000\000\000]f\000\000\000\000\152^\015l\000\000\000\000J\014\000\000\t\228\000\000\000\000w\200\000\000~\148\021*\025\230\021*\138\224]f\026\148\000\000z6G\172\000\000z\252\000\000z6\000\000{\194\000\000\000\000\000\000\nn\000\000\000\000\000\000J\014\000\000\016X\000\000\000\000w\200\n \000\000K\002\000\000\015\146\000\000\000\000w\200\005\022\000\000\007\188\015H\000\000\000\000\023\028\021\238\000F\000\000%\194\000\000 :\031\180\000F\000\000\000\000\016<\000\000\000\000\002\002\024\030^x\000\000\026\"\000\000\015\134\000\000\000\000\016\248\000\000\000\000z6\0042\007\188\000\000\000\000\015n\000\000\000\000\016(\000\000\000\000w\200\006\024\000\000\000\000\016n\000\000\000\000w\200\011\"\000\000\000\000\021*\024b\011\140\000\000\000\000\007\248\002\168\003\168\004\248\024b\157\176Kj\026\216\024b\1582\019\146\000\000\000\000\004\248\000\000D\132\020\230\030h\000\000\001\208\020\012\000\000\020\014\000\"\139\012\139\012\1276\007\b\000\000\000\000\000\000\019\222\019f\137\020 \002\130\222\022N\021\022\015\158\021\002\000\000C\128\020$\000\000\027J\000\000\000\000\139\012\127\184\020<\164X\139\012\128:\139\012\128\188\129>\000\000\137D\176\014\172 \\.\139\012\0208Tt \018\139\012\020\026\139\012\142\182\129\192\020 \139\012\1438\130B\b\024\019\222\000\000\000\000\000\000\021*\158Z\000\000\148@\148\206\000\000\000\000\020`\000\000\011\186\020d\000\000\000\000\000\000Ap\000\000\000\000\r\236\000\000\000\000w\200\011p\000\000\000\000N\200\021*\024b\002*\000\000]F\000\000\0318\000\000\002\250\000\000\000\000\020h\000\000\020\154\138\224Br~\148\000\000\000\000_\214\000\000\031\248\000\000`\004\000\000\026.\000\000Kj :\000\000\148\206\000\000\021*\024b\148\206\000\000\029N\007\248\004H\002\002W\226Kj\160Z\148\206\000\000\006\246\006\174\003\168\004\248\148\206\166\136\002\168\003\168\004\248\148\206\166\136\000\000\000\000\004\248\148\206\000\000I@Ff]fD@\000\000\000\000I@FfJ\138\000\000\002\238\000K\000/\019\186\137\020 2\130\222\149P\019\242\020\170\165j\000\000\148\206\000\000\149\210D\132\020\230\030h\158\240 l\r\004\160\184\r\204\019\232\021*\148\206\000\000\021*\148\206\000\000\130\222\173|\021\196\0050\000\n\001\016\167\n\000\000\000\n\001\016\167\n\000\000\029\158\007\248\004H\002\002W\226Kj\148\206\000\000\006\246\n\182\022@\0148\000\000\167\n\000\000\003\168\019\240Kj\148\206\171&\002\168\003\168\019\242Kj\148\206\171&\000\000\000\000\005\250\000\000\148\206\000\000Kj\165\200\148\206\000\000\005\250\000\000D\132\020\230\030h\150T\030\n\026\002\000\208\002\212\000\000\015hFN\000\000\016T\000\000FN\000\000\020t\0204P\224\021*_\024\130\222\015J\000\000M\028\000\208\005V\0160\000\000\016h\000\000\020\154\020<\130\222L&\000\000\021\022\028\006\017\006\000\000\016l\000\000\020\218\020\144\137\020L&\000\000\020\236P\224\021z\020\202\000\n\000\000\001nP\224\130\222\016|\001\016\000\000\130\222\015\178\016\180\000\000\000\000\143\154\000\000\000\000\016\250P\224\144\028L&\000\000\021*\130\222\016\b\130\222\135\144L&\000\000\015\208\000\000\000\000L&\000\000\000\000M\028\000\000\148\206\167F\000\208\002\212\015h\021\130\0214P\224\148\206\167F\000\000\000\000\000\208\002\212\015h\021\142\021\020\173\136\137\198\139\012\021\162\173\136\130\222\026\234\021\164\173\136\139\012\021\170\173\136\016\180\017h\144\164\145&\000\000\162\186\000\000\000\000\148\206\171T\000\208\002\212\015h\021\164\021(\173\136\148\206\171T\000\000\000\000\000\000\173|\000\000\000\000\000\000\000\000\000\000\000\000\000\000\148\206\000\000P\006\021*Kj\148\206\000\000\167\164\021*FN\021\176\150\178\159\216\000\000\162\\\167\164\000\000\000\000\000\000\171\130\021*FN\021\188\015\236\021ZY\228\170\170\007\b\022\028\000\000\000\000\145\132\150T\021*\000\000\161\026\030h\000\000\000\000\162\\\171\130\000\000\000\000\000\000\159RE@K\014\007\b\0222\000\000\000\000\000\000\150T\021*\000\000\007\b\0228\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\176\030\n\000\208\002\212\015h\022\b\146\024K\210Z\216\021*H\136MH\000\208\000\208\017n\000\000\0224\002\250\000\000\000\000\022\012\000\000\000\000Lp\000\000\0070\017|\000\000\017D\000\000\022\128\022\006\130\222\138\166\022\144\n\b\000\000\000\000\022H\000\000\000\000\021\022\012\254\017\194\000\000\022\170\146\162\173\012\r\190\022D\130\222\016l\000\000\000\000\022j\000\000\000\000\000\000Lp\000\000\029<\017\224\000\000\017\142\000\000\022\200\022T\137\020\000\000\022\216\147,\174\016\r\190\022\132\130\222\016\180\000\000\000\000\022\168\000\000\000\000\000\000\021*\000\000Lp\000\000\021L\020\236Z\216Z\216\147\182I@\021*\158Z\148@\0070\000\000\021j\000\n\000\000\017\142Z\216\130\222\018\n\000F\000\000\021*\146\024\146\024Z\216\0174Z\216\000\000GTHD\000\000\131X\000\000\000\000\131\218\000\000\000\000\132\\\000\000\017\186Z\216\132\222\158Z\148@\0070\000\000\006\000\000\000\000\000\173\136\018r\000\000\000\000ON\023\004\000\000Lp\000\000Z\216ONLp\000\000\021*\130\222Lp\000\000\017\138\000\000\000\000Lp\000\000\000\000MH\000\000\163\028\173\136\022\190Z\216\163z\146\024\000\000\148\206\168\006\000\208\002\212\015h\023\026\146\024\148\206\168\006\000\000\000\000\000\000v\254UH\000\000\000\000\000\000\000\000\000\000\000\000\166*\148\206\000\000N\200\021*\024b\148\206\000\000\167\164\000\000\000\000\000\000\000\000\148\206v\254\000\000\000\000\000\000\166*\023X\000\000\023\\\000\000\148\206v\254\000\000\000\000\018n\000\000\000\000\138L\028t\000\000\000\000O\156\000\000\130\222\018\024\000\000MH\018t\000\000\000\000\023\142\152\232\000\000Ct\023f\000\000\000\000\023hC\178Gf\030h\150T l\021*\000\000\148\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153v l\021*\000\000\018j\150\178\159\216\000\000\162\\\000\000\023\128C\178Gf\148\206\000\000\023\150\000\000!\004\130\222\018\156\023p\176z\177xp\138ql\000\000\030\206\137\020\t@\t\242\021*\177\028\000\000\000\000\029\142\1772\000\000\000\000\023 \000\000!\b\130\222\018\170\023t\176\144\177xrNs0\000\000\019\006\000\000!\020\130\222\018\200\023\132\176\214\177xt\018t\244\000\000\023\144\007\b\023\192\000\000\000\000\161\156\000\000\000\000Y\228\000\000\162\\\000\000\023\184C\178K\186\169\212\000\000\000\000\000\000\000\000\0194\150\178\163\220Y\228\000\000\162\\\000\000\023\234C\178K\186\169\212\000\000\018\140\000\000\000\000 \250\000\000\148\206\000\000\023\254\000\000\000\000\023\\\000\000\023b\000\000\023t\000\000\000\000Q\150\023z\000\000\000\000\022\238xV\024\024\000\000\000\000\000\000\018.\t\016|x\024*\000\000\000\000\000\000\000\000\000\000\000\000\023\146\000\000 l\000\000\023\148\000\000\130\222\000\000\007Z\000\000\000\000\023\150\000\000\000\000\001\016\000\000\n\188\000\000\000\000\000\000\018\b\000\000\024b\000\000\007\178\000\000Kj\000\000\028\026\000\000\012^\000\000\023\162\000\000]f\026\148\000\000\000\000\011\186\023\166\000\000\000\000\023\160\012\188J\014\002\002\161\216\000\000\000\000\000\000\000\000\000\000X\160\000\000\000\000\024N\000\000R\142\000\000\005\150\024^\000\000\024b\000\000K\002K\002V\132V\132\000\000\000\000S\176V\132\000\000\000\000\000\000S\176V\132\023\206\000\000\023\228\000\000"), (16, "\nU\nU\000\006\nU\0012\nU\002\246\002\250\nU\003*\002\182\nU\004\137\nU\004\137\0036\nU\001r\nU\nU\nU\001j\nU\nU\nU\001\218\001\n\000\246\001\198\003:\nU\003\178\003\182\012\154\nU\nI\nU\001\130\003>\001\146\007\213\003\214\002\250\nU\nU\004\002\004\006\nU\004\n\004\022\004\"\004&\004.\b\254\019\222\nU\nU\002\238\nI\007\213\004\030\nZ\nU\nU\nU\n^\nb\nn\n\130\000\246\007*\nU\nU\nU\nU\nU\nU\nU\nU\nU\n\246\003\029\nU\001n\nU\nU\003\226\003a\011\002\011\026\011\162\0076\007:\nU\nU\nU\003\029\nU\nU\nU\nU\001n\003a\017z\nU\001z\nU\nU\004\137\nU\nU\nU\nU\nU\nU\nU\007>\nv\nU\nU\nU\n\142\004\198\011\182\007\213\nU\nU\nU\nU\015\t\015\t\020f\015\t\t:\015\t\nj\015\t\015\t\t\026\015\t\015\t\015\t\015\t\001\214\015\t\015\t\004\137\015\t\015\t\015\t\004\154\015\t\015\t\015\t\015\t\004\137\015\t\001\214\015\t\015\t\015\t\015\t\015\t\015\t\015\t\015\t\b*\015\t\000\246\004\137\015\t\t\206\015\t\015\t\015\t\015\t\015\t\0075\015\t\t\214\015\t\001\138\015\t\004*\015\t\015\t\015\t\004\142\t\218\015\t\015\t\015\t\015\t\015\t\015\t\015\t\015\t\0075\015\t\015\t\015\t\015\t\015\t\015\t\015\t\015\t\015\t\015\t\015\t\000]\015\t\015\t\006\178\015\t\015\t\001\n\003\138\001\198\005J\015\t\015\t\015\t\015\t\015\t\015\t\026\254\015\t\015\t\015\t\015\t\015\t\001~\015\t\015\t\001n\015\t\015\t\003a\015\t\015\t\015\t\015\t\015\t\015\t\015\t\015\t\015\t\015\t\015\t\015\t\015\t\015\t\002\202\000]\015\t\015\t\015\t\015\t\001\145\001\145\001\145\001\145\024R\001\145\001\226\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\000]\001\145\t\214\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\021*\006J\001\145\n\001\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\230\001\145\003\142\001\145\004\198\001\145\001\145\001\145\005\138\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\n\030\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\000\246\001\145\001\145\000\246\019\206\004\137\004\137\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\018\230\n\166\001\145\007n\001\145\001\145\023\154\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\001\145\021B\001\145\001\145\001\145\001\145\001\145\011\161\011\161\n\001\011\161\021.\011\161\001\214\011\161\011\161\006N\011\161\011\161\011\161\011\161\021F\011\161\011\161\000\246\011\161\011\161\011\161\000\n\011\161\011\161\011\161\011\161\015-\011\161\014\213\011\161\011\161\011\161\011\161\011\161\011\161\011\161\011\161\002\205\011\161\002\205\015-\011\161\005\206\011\161\011\161\011\161\011\161\011\161\014\213\011\161\002\166\011\161\002\205\011\161\002J\011\161\011\161\011\161\001\214\003V\011\161\011\161\011\161\011\161\011\161\011\161\011\161\011\161\002N\011\161\011\161\011\161\011\161\011\161\011\161\011\161\011\161\011\161\011\161\011\161\003Z\011\161\011\161\001\154\011\161\011\161\000\246\003~\003\130\027\018\011\161\011\161\011\161\011\161\011\161\011\161\001\206\011\161\011\161\011\161\011\161\011\206\004\142\012.\011\161\011\234\011\161\011\161\011\246\011\161\011\161\011\161\011\161\011\161\011\161\011\161\011\161\011\161\011\161\011\161\011\161\011\161\011\161\007=\011\161\011\161\011\161\011\161\011\161\003\173\003\173\005\210\003\173\005\018\003\173\001\190\003\173\003\173\011*\003\173\003\173\003\173\003\173\007=\003\173\003\173\007i\003\173\003\173\003\173\n-\003\173\003\173\003\173\003\173\001\194\003\173\bZ\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\007i\003\173\004\137\019\026\003\173\n\005\003\173\003\173\003\173\003\173\003\173\001\142\003\173\b^\003\173\011.\003\173\011f\003\173\003\173\003\173\003\145\003b\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\014\205\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003f\011\198\012&\004\137\003\173\003\173\000\246\003V\014\205\006\134\003\173\003\173\003\173\003\173\003\173\003\173\000\246\003\173\003\173\003\173\003\173\011\206\000\246\012.\003\173\n-\003\173\003\173\003Z\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\007E\003\173\003\173\003\173\003\173\003\173\003\157\003\157\n\005\003\157\003\145\003\157\001\214\003\157\003\157\017\250\003\157\003\157\003\157\003\157\007E\003\157\003\157\007u\003\157\003\157\003\157\001\242\003\157\003\157\003\157\003\157\002\205\003\157\018\150\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\007u\003\157\002V\t\026\003\157\023\230\003\157\003\157\003\157\003\157\003\157\001\158\003\157\003\018\003\157\000\n\003\157\002.\003\157\003\157\003\157\n\025\002Z\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\006\166\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\023\238\011\198\012&\002\205\003\157\003\157\019\142\003b\004\161\006M\003\157\003\157\003\157\003\157\003\157\003\157\018\002\003\157\003\157\003\157\003\157\011\206\000]\012.\003\157\019\150\003\157\003\157\003f\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\028\218\003\157\003\157\003\157\003\157\003\157\011\t\011\t\006\170\011\t\003\"\011\t\003\238\011\t\011\t\017\250\011\t\011\t\011\t\011\t\028\222\011\t\011\t\000]\011\t\011\t\011\t\006\201\011\t\011\t\011\t\011\t\004\137\011\t\019F\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\006N\011\t\004\170\t\026\011\t\001\246\011\t\011\t\011\t\011\t\011\t\000]\011\t\003\242\011\t\007\198\011\t\015\242\011\t\011\t\011\t\000\246\006\150\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\000\246\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\r\178\011\t\011\t\004\182\011\t\011\t\023V\003~\003\130\004\137\011\t\011\t\011\t\011\t\011\t\011\t\018\002\011\t\011\t\011\t\011\t\011\t\021\218\011\t\011\t\023b\011\t\011\t\028\226\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\004\137\004\137\011\t\011\t\011\t\011\t\011\025\011\025\006j\011\025\015v\011\025\004\170\011\025\011\025\004\137\011\025\011\025\011\025\011\025\003\137\011\025\011\025\004N\011\025\011\025\011\025\0272\011\025\011\025\011\025\011\025\015z\011\025\006N\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\019\238\011\025\019\242\004R\011\025\005\162\011\025\011\025\011\025\011\025\011\025\006=\011\025\005\006\011\025\000\246\011\025\016\n\011\025\011\025\011\025\003\141\027:\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\0065\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\003\"\011\025\011\025\019\246\011\025\011\025\000\246\n1\tV\003\137\011\025\011\025\011\025\011\025\011\025\011\025\004\161\011\025\011\025\011\025\011\025\011\025\000\246\011\025\011\025\t^\011\025\011\025\b\194\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\002\205\002\205\011\025\011\025\011\025\011\025\011\017\011\017\n\030\011\017\003\141\011\017 \227\011\017\011\017\nf\011\017\011\017\011\017\011\017\004\161\011\017\011\017\000\246\011\017\011\017\011\017\000\n\011\017\011\017\011\017\011\017\n\029\011\017\014\209\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\0156\011\017\002\205\003\150\011\017\n1\011\017\011\017\011\017\011\017\011\017\014\209\011\017!#\011\017\002\205\011\017\016\"\011\017\011\017\011\017\004E\006\158\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\000\246\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\002\138\011\017\011\017\004\137\011\017\011\017\001\n\005\238\001\198\n\029\011\017\011\017\011\017\011\017\011\017\011\017\003\154\011\017\011\017\011\017\011\017\011\017\000\246\011\017\011\017\b\166\011\017\011\017\n\030\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\000\246\n\029\011\017\011\017\011\017\011\017\n\253\n\253\000\246\n\253\004E\n\253\t\166\n\253\n\253\nV\n\253\n\253\n\253\n\253\002:\n\253\n\253\b\150\n\253\n\253\n\253\011\210\n\253\n\253\n\253\n\253\003\234\n\253\006N\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\016\214\n\253\016\226\002\142\n\253\004\137\n\253\n\253\n\253\n\253\n\253 \158\n\253\001\230\n\253\006\202\n\253\016:\n\253\n\253\n\253\b\186\b\190\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\030\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\004A\n\253\n\253\000\246\n\253\n\253\b\170\000\246\003~\003\130\n\253\n\253\n\253\n\253\n\253\n\253\000\246\n\253\n\253\n\253\n\253\n\253\t\030\n\253\n\253\017\238\n\253\n\253\004\137\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\b\018\000\246\n\253\n\253\n\253\n\253\011\005\011\005\0312\011\005\n\202\011\005\b\154\011\005\011\005\017\250\011\005\011\005\011\005\011\005\b\022\011\005\011\005\r\162\011\005\011\005\011\005\015\150\011\005\011\005\011\005\011\005\004A\011\005\000\246\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\015\178\011\005\015\194\r\170\011\005\005F\011\005\011\005\011\005\011\005\011\005\017\250\011\005\b\182\011\005\b\230\011\005\016N\011\005\011\005\011\005\000\246\tz\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\0055\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\005n\011\005\011\005\005\146\011\005\011\005\017\242\003~\023\n\027Z\011\005\011\005\011\005\011\005\011\005\011\005\018\002\011\005\011\005\011\005\011\005\011\005\023\030\011\005\011\005\011\234\011\005\011\005\011\246\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\016\242\018v\011\005\011\005\011\005\011\005\011\001\011\001\005V\011\001\004\150\011\001\018\002\011\001\011\001\017\250\011\001\011\001\011\001\011\001\004\150\011\001\011\001\nf\011\001\011\001\011\001\015\226\011\001\011\001\011\001\011\001\018N\011\001\000\246\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\015\250\011\001\016\018\b\238\011\001\020\234\011\001\011\001\011\001\011\001\011\001\017\250\011\001\019\"\011\001!\003\011\001\016b\011\001\011\001\011\001\004\166\n\242\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\004\178\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\005\166\011\001\011\001\016\246\011\001\011\001\b\242\b\190\t\146\002\250\011\001\011\001\011\001\011\001\011\001\011\001\018\002\011\001\011\001\011\001\011\001\011\001\007\237\011\001\011\001\t\186\011\001\011\001\n\030\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\000\246\019b\011\001\011\001\011\001\011\001\011\r\011\r\001\n\011\r\001\198\011\r\018\002\011\r\011\r\019v\011\r\011\r\011\r\011\r\004\150\011\r\011\r\tJ\011\r\011\r\011\r\016r\011\r\011\r\011\r\011\r\021\018\011\r\015\186\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\016\134\011\r\016\154\012f\011\r\002\014\011\r\011\r\011\r\011\r\011\r\b\250\011\r\015\190\011\r\t\134\011\r\016~\011\r\011\r\011\r\002\250\t\138\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\005\002\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\r\202\011\r\011\r\n\018\011\r\011\r\001\230\rJ\t\026\003\238\011\r\011\r\011\r\011\r\011\r\011\r\004\150\011\r\011\r\011\r\011\r\011\r\r\226\011\r\011\r\005\198\011\r\011\r\005\242\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\006\n\000\246\011\r\011\r\011\r\011\r\011\029\011\029\001\n\011\029\001\198\011\029\014N\011\029\011\029\002\202\011\029\011\029\011\029\011\029\004\137\011\029\011\029\000\246\011\029\011\029\011\029\t\162\011\029\011\029\011\029\011\029\011v\011\029\011\142\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\004\137\011\029\012:\011\226\011\029\012\018\011\029\011\029\011\029\011\029\011\029\014\146\011\029\000\246\011\029\000\246\011\029\016\146\011\029\011\029\011\029\016\002\012>\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\006\"\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\016\006\011\029\011\029\014\194\011\029\011\029\011v\011v\rb\rz\011\029\011\029\011\029\011\029\011\029\011\029\003\238\011\029\011\029\011\029\011\029\011\029\007\230\011\029\011\029\021\002\011\029\011\029\006\142\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\015\134\000\246\011\029\011\029\011\029\011\029\011\021\011\021\011v\011\021\014&\011\021\000\246\011\021\011\021\022\150\011\021\011\021\011\021\011\021\023\018\011\021\011\021\015\138\011\021\011\021\011\021\001\214\011\021\011\021\011\021\011\021\014\214\011\021\015\158\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\014\250\011\021\015\234\015\146\011\021\003\234\011\021\011\021\011\021\011\021\011\021\015\162\011\021\016n\011\021\003\234\011\021\016\166\011\021\011\021\011\021\015v\015\238\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\012:\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\016J\011\021\011\021\015\186\011\021\011\021\021\006\011v\0166\017\026\011\021\011\021\011\021\011\021\011\021\011\021\b\237\011\021\011\021\011\021\011\021\011\021\016\002\011\021\011\021\016\142\011\021\011\021\015\202\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\016\026\016\222\011\021\011\021\011\021\011\021\011\141\011\141\015\206\011\141\017\190\011\141\015\158\011\141\011\141\000\246\011\141\011\141\011\141\011\141\015\134\011\141\011\141\016\030\011\141\011\141\011\141\018\162\011\141\011\141\011\141\011\141\016z\011\141\015\234\011\141\011\141\011\141\011\141\011\141\011\141\011\141\011\141\016^\011\141\017\218\019*\011\141\023\214\011\141\011\141\011\141\011\141\011\141\016\210\011\141\017\198\011\141\018\254\011\141\016\178\011\141\011\141\011\141\018\134\017\222\011\141\011\141\011\141\011\141\011\141\011\141\011\141\011\141\006\206\011\141\011\141\011\141\011\141\011\141\011\141\011\141\011\141\011\141\011\141\011\141\018\138\011\141\011\141\020\026\011\141\011\141\000\246\003u\002\233\024\186\011\141\011\141\011\141\011\141\011\141\011\141\t\213\011\141\011\141\011\141\011\141\011\141\023\162\011\141\011\141\018\166\011\141\011\141\015\202\011\141\011\141\011\141\011\141\011\141\011\141\011\141\011\141\011\141\011\141\011\141\011\141\011\141\011\141\016\026\019.\011\141\011\141\011\141\011\141\003\153\003\153\016\162\003\153\0196\003\153\006\230\003\153\003\153\000\246\003\153\003\153\003\153\003\153\018\218\003\153\003\153\016\234\003\153\003\153\003\153\019\002\003\153\003\153\003\153\003\153\019:\003\153\018f\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\018\222\003\153\019R\023\242\003\153\024\030\003\153\003\153\003\153\003\153\003\153\023\174\003\153\023\234\003\153\000\246\003\153\t\213\003\153\003\153\003\153\024\190\006U\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\024^\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\006\254\011\198\012&\024\166\003\153\003\153\007\189\006Q\002f\t\029\003\153\003\153\003\153\003\153\003\153\003\153\t\209\003\153\003\153\003\153\003\153\011\206\000\246\012.\003\153\007\210\003\153\003\153\019\n\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\004\150\003\153\003\153\003\153\003\153\003\153\001\217\001\217\019\014\001\217\027\154\001\217\023\178\002\250\001\217\000\246\002\182\001\217\011\222\001\217\024\022\0036\001\217\018j\001\217\001\217\001\217\027>\001\217\001\217\001\217\001\218\024f\012\022\019V\003:\001\217\001\217\001\217\001\217\001\217\012\030\001\217\t!\003>\007\234\027\250\003\214\004\170\001\217\001\217\001\217\001\217\001\217\025N\004\022\b>\001\198\029*\001\217\t\209\001\217\001\217\002\238\027\202\024\138\004\030\nZ\001\217\001\217\001\217\n^\nb\nn\0069\015\214\007*\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\001\217\027\006\011\198\012&\t\214\001\217\001\217\025R\0276\028\134\0065\001\217\0076\007:\001\217\001\217\001\217\0155\001\217\001\217\001\217\001\217\015\222\b\218\016*\001\217\t\021\001\217\001\217\027z\001\217\001\217\001\217\001\217\001\217\001\217\001\217\007>\nv\001\217\001\217\001\217\n\142\004\198\027\194\b\226\001\217\001\217\001\217\001\217\011u\011u\t\017\011u\028^\011u\rJ\002\250\011u\028j\002\182\011u\011u\011u\030J\0036\011u\015A\011u\011u\011u\029.\011u\011u\011u\001\218\028\190\011u\t\214\003:\011u\011u\011u\011u\011u\011u\011u\030\"\003>\028\234\030V\003\214\001\214\011u\011u\011u\011u\011u\t&\004\022\t\214\001\198 .\011u\004\150\011u\011u\002\238\000\246\028\238\004\030\nZ\011u\011u\011u\n^\nb\nn\011V\011u\007*\011u\011u\011u\011u\011u\011u\011u\011u\011u\031\n\011u\011u!\019\011u\011u\030\206\031f\011b\t\214\011u\0076\007:\011u\011u\011u\024f\011u\011u\011u\011u\011u\031\146\011u\011u\011z\011u\011u \154\011u\011u\011u\011u\011u\011u\011u\007>\nv\011u\011u\011u\n\142\004\198\011~\000\246\011u\011u\011u\011u\011q\011q\000\246\011q\031\130\011q\030&\002\250\011q\030Z\002\182\011q\011q\011q\001\214\0036\011q\000\246\011q\011q\011q 2\011q\011q\011q\001\218\011\134\011q\006\254\003:\011q\011q\011q\011q\011q\011q\011q\011\154\003>\011\230\012\014\003\214\012\026\011q\011q\011q\011q\011q\012*\004\022\rn\001\198\r\134\011q\r\186\011q\011q\002\238\031\254\r\246\004\030\nZ\011q\011q\011q\n^\nb\nn\014\026\011q\007*\011q\011q\011q\011q\011q\011q\011q\011q\011q\0146\011q\011q\014Z\011q\011q\014j\014\158\014\186\014\226\011q\0076\007:\011q\011q\011q\017\002\011q\011q\011q\011q\011q\017\n\011q\011q\017&\011q\011q\017J\011q\011q\011q\011q\011q\011q\011q\007>\nv\011q\011q\011q\n\142\004\198\017Z\017n\011q\011q\011q\011q\002!\002!\017\154\002!\019\170\002!\019\210\002\250\002!\004>\002\182\002!\011\222\002!\019\254\0036\002!\020\002\002!\002!\002!\020*\002!\002!\002!\001\218\020F\012\022\020z\003:\002!\002!\002!\002!\002!\012\030\002!\020\138\003>\004\137\020\154\003\214\020\174\002!\002!\002!\002!\002!\020\218\004\022\020\230\001\198\021N\002!\004\137\002!\002!\002\238\021V\022J\004\030\nZ\002!\002!\002!\n^\nb\nn\022^\015\214\007*\002!\002!\002!\002!\002!\002!\002!\002!\002!\022b\b:\002!\004\137\002!\002!\023&\023>\004\137\023\190\002!\0076\007:\002!\002!\002!\000\246\002!\002!\002!\002!\023\194\004\137\006Z\002!\004\137\002!\002!\023\250\002!\002!\002!\002!\002!\002!\002!\007>\nv\002!\002!\002!\n\142\004\198\004\137\023\254\002!\002!\002!\002!\004\137\000\246\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\024&\004\137\004\137\004\137\004\137\000\246\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\000\246\004\137\004\137\000\246\004\137\004\137\004\137\024*\004\137\004\137\004\137\004\137\004\137\004\137\000\246\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\000\246\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\000\246\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\024F\004\137\004\137\024B\0012\004\137\004\137\004\137\000\246\004\137\002\205\002\205\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\024\238\000\246\004\137\004\137\018\178\024\242\025\022\004\137\025\026\025*\025:\004\137\004\137\025F\004\137\000\n\027r\025\130\025\134\002f\004\137\004\137\004\137\025\234\004\162\004\137\004\137\004\137\004\137\026\026\000a\004\137\000a\0036\000a\000a\000a\000a\000a\000a\000a\026\"\000a\028&\000a\000a\002\205\000a\000a\0262\003R\000a\000a\004\150\000a\000a\000a\000a\028R\000a\026\130\000a\000a\026\162\003^\000a\000a\026\226\000a\000a\t\005\000a\003\238\000a\t\005\000a\000a\000a\000a\000a\000a\000a\000a\000a\011\198\012&\000a\000a\007*\027\014\000a\000a\000a\005\237\000a\000a\000a\000a\000a\000a\000a\000a\000a\022\190\011\206\000a\012.\004\166\000a\0076\000a\006\209\000a\027\030\n\170\t\005\001\198\000a\000a\000a\000a\000a\000a\000a\000a\017\226\018Z\027F\000a\027J\018z\018\154\018\170\000\230\007>\027V\t\005\000a\002\014\005\237\011v\002\182\014&\027f\000a\000a\000a\000a\027\130\027\146\000a\000a\000a\000a\002\025\002\025\023\014\002\025\005\237\002\025\027\166\002\250\002\025\027\210\002\182\002\025\005z\002\025\027\214\0036\002\025\027\226\002\025\002\025\002\025\005j\002\025\002\025\002\025\001\218 \130\027\242\001\230\003:\002\025\002\025\002\025\002\025\002\025\005\130\002\025\028\006\003>\028\250\006\209\003\214\019\214\002\025\002\025\002\025\002\025\002\025\029R\004\022\029z\nr\030\002\002\025\030\n\002\025\002\025\002\238\030b\030r\004\030\nZ\002\025\002\025\002\025\n^\nb\nn\030~\007:\007*\002\025\002\025\002\025\002\025\002\025\002\025\002\025\002\025\002\025\030\230\011\198\012&\030\250\002\025\002\025\031\014\031V\031j\005\154\002\025\0076\007:\002\025\002\025\002\025\031\150\002\025\002\025\002\025\002\025\011\206\004\226\012.\002\025\031\182\002\025\002\025\031\222\002\025\002\025\002\025\002\025\002\025\002\025\002\025\007>\nv\002\025\002\025\002\025\n\142\004\198\t\254\tF\002\025\002\025\002\025\002\025\002-\002-\004\241\002- \026\002- J\003\238\002- V ^\002- g\002-\n\002 w\002- \138\002-\002-\002-\bz\002-\002-\002-\004\241 \166 \195 \211 \239\002-\002-\002-\002-\002-!C\002-!_\t\194\003\206!j\002\250!\159\002-\002-\002-\002-\002-\003\162\n\170!\179\018\234!\187\002-\n\"\002-\002-!\247\000\246\001\218\017\226\018Z\002-\002-\002-\018z\018\154\018\170!\255\014\145\000\000\002-\002-\002-\002-\002-\002-\002-\002-\002-\000\000\011\198\012&\003\202\002-\002-\000\000\000\000\014\145\014\145\002-\002\238\014\145\002-\002-\002-\000\000\002-\002-\002-\002-\011\206\000\000\012.\002-\000\000\002-\002-\000\000\002-\002-\002-\002-\002-\002-\002-\004\245\000\000\002-\002-\002-\t\018\b~\002\250\000\000\002-\002-\002-\002-\002)\002)\007\181\002)\000\246\002)\n:\tF\002)\b\165\004\245\002)\000\000\002)\000\000\000\000\002)\000\000\002)\002)\002)\b\130\002)\002)\002)\007\181\n>\000\000\000\000\007\205\002)\002)\002)\002)\002)\014\145\002)\000\000\003\226\000\000\b\165\000\000\000\000\002)\002)\002)\002)\002)\007\205\000\000\t\194\012\002\007\205\002)\b\165\002)\002)\000\000\b\165\n\234\006e\000\000\002)\002)\002)\b\165\000\000\n*\000\000\b\165\000\246\002)\002)\002)\002)\002)\002)\002)\002)\002)\000\000\011\198\012&\000\000\002)\002)\000\000\n.\000\000\006e\002)\006e\000\000\002)\002)\002)\000\000\002)\002)\002)\002)\011\206\001M\012.\002)\000\000\002)\002)\000\000\002)\002)\002)\002)\002)\002)\002)\n\030\002\205\002)\002)\002)\001M\000\000\000\000\007\205\002)\002)\002)\002)\002\029\002\029\000\246\002\029\000\000\002\029\005z\tF\002\029\012)\000\000\002\029\000\000\002\029\004Z\000\000\002\029\000\n\002\029\002\029\002\029\000\000\002\029\002\029\002\029\011\146\021\134\000\000\005z\005\130\002\029\002\029\002\029\002\029\002\029\002\205\002\029\006e\007\209\000\000\012)\000\000\000\000\002\029\002\029\002\029\002\029\002\029\002\205\002\205\t\194\005\130\n2\002\029\012)\002\029\002\029\007\209\012)\014\242\001M\007\209\002\029\002\029\002\029\012)\006e\000\000\006e\012)\000\246\002\029\002\029\002\029\002\029\002\029\002\029\002\029\002\029\002\029\001M\011\198\012&\005\230\002\029\002\029\000\000\000\000\001M\000\000\002\029\000\000\tF\002\029\002\029\002\029\018\n\002\029\002\029\002\029\002\029\011\206\000\246\012.\002\029\006\194\002\029\002\029\000\000\002\029\002\029\002\029\002\029\002\029\002\029\002\029\000\000\021\138\002\029\002\029\002\029\000\246\t\209\000\000\000\000\002\029\002\029\002\029\002\029\002%\002%\rf\002%\007\209\002%\t\194\018\026\002%\000\246\000\000\002%\000\000\002%\000\000\005z\002%\000\000\002%\002%\002%\000\000\002%\002%\002%!O\000\246\000\000\000\000\000\000\002%\002%\002%\002%\002%\000\246\002%\007\250\005\130\000\000\011\178\007\158\003\129\002%\002%\002%\002%\002%\b\026\000\000\000\000\000\000\b&\002%\007\250\002%\002%\019\158\007\158\019\238\011\022\019\242\002%\002%\002%\b\026\000\000\000\000\000\000\b&\006=\002%\002%\002%\002%\002%\002%\002%\002%\002%\t\209\t\181\002%\000\000\002%\002%\000\000\000\000\000\000\000\000\002%\n\029\b\202\002%\002%\002%\000\000\002%\002%\002%\002%\017v\000\000\000\000\002%\019\246\002%\002%\000\000\012F\002%\002%\002%\002%\002%\002%\000\000\024\018\002%\002%\002%\000\246\000\000\t\181\tF\002%\002%\002%\002%\nQ\nQ\000\000\nQ\000\000\nQ\014\153\003\238\nQ\000\000\000\000\nQ\024\026\nQ\n\n\t\181\012r\000\000\nQ\012\150\nQ\000\000\nQ\nQ\nQ\014\153\014\153\000\000\005z\014\153\012\170\012\194\012\202\012\178\012\210\t\025\nQ\007\250\t\194\0302\tF\007\158\000\000\nQ\nQ\012\218\012\226\nQ\b\026\007r\t\181\005\130\b&\nQ\005j\012\234\nQ\t\181\000\246\0306\0042\0046\nQ\nQ\000\246\bN\000\000\004B\000\000\014\149\000\246\nQ\nQ\012z\012\186\012\242\012\250\r\n\nQ\nQ\000\000\t\177\nQ\t\194\nQ\r\018\000\000\000\000\014\149\014\149\nQ!3\014\149\nQ\nQ\r\026\000\000\nQ\nQ\nQ\nQ\014\153\001\214\000\246\nQ\011B\nQ\nQ\000\000\r:\nQ\nQ\rB\r\002\nQ\nQ\000\000\000\000\nQ\r\"\nQ\000\000\000\000\t\177\000\000\nQ\nQ\r*\r2\002Y\002Y\000\000\002Y\000\246\002Y\000\000\000\000\002Y\000\000\0172\002Y\000\000\002Y\027\190\t\177\002Y\004\142\002Y\002Y\002Y\000\000\002Y\002Y\002Y\002\205\002\205\021\178\005z\000\000\002Y\002Y\002Y\002Y\002Y\014\149\002Y\000\000\027\198\000\000\002\205\000\000\000\000\002Y\002Y\002Y\002Y\002Y\005\018\000\000\t\177\005\130\000\n\002Y\005j\002Y\002Y\t\177\001\214\000\000\006e\t\017\002Y\002Y\002Y\002\205\002\205\022\230\000\000\000\000\031F\002Y\002Y\012z\002Y\002Y\002Y\002Y\002Y\002Y\002\205\000\000\002Y\002\205\002Y\002Y\000\000\000\000\000\000\006e\002Y\006e\000\n\002Y\002Y\002Y\000\000\002Y\002Y\002Y\002Y\000\000\004\142\000\000\002Y\r\194\002Y\002Y\000\000\002Y\002Y\002Y\002Y\002Y\002Y\002Y\000\000\002\205\002Y\002Y\002Y\023\142\000\000\002\205\000\000\002Y\002Y\002Y\002Y\002A\002A\000\000\002A\005\018\002A\005z\0059\002A\000\246\000\000\002A\000\000\002A\000\000\000\000\002A\000\n\002A\002A\002A\000\000\002A\002A\002A\r~\000\000\000\000\005z\005\130\002A\002A\002A\002A\002A\002\205\002A\006e\019\198\000\000\015\006\002\182\000\000\002A\002A\002A\002A\002A\002\205\002\205\000\000\005\130\000\000\002A\015\014\002A\002A\000\000\015\026\000\000\000\000\000\000\002A\002A\002A\015&\006e\000\000\006e\0152\000\000\002A\002A\012z\002A\002A\002A\002A\002A\002A\019\202\000\000\002A\r\218\002A\002A\000\000\000\000\000\000\000Y\002A\000\000\000\000\002A\002A\002A\019\214\002A\002A\002A\002A\000Y\000\000\tF\002A\014F\002A\002A\000\000\002A\002A\002A\002A\002A\002A\002A\000\000\000\000\002A\002A\002A\000\000\n\214\007:\000\000\002A\002A\002A\002A\002M\002M\017\030\002M\000Y\002M\007\229\tF\002M\000\246\000\000\002M\000\000\002M\000\000\000\000\012r\t\194\002M\002M\002M\000\000\002M\002M\002M\007\229\021:\000\000\005z\007\229\002M\002M\002M\012\178\002M\000Y\002M\000\246\000Y\000\000\b\157\000\000\000\000\002M\002M\002M\002M\002M\000\000\000\000\t\194\005\130\000\000\002M\b\157\002M\002M\000\000\007\158\000\000\000\000\000\000\002M\002M\002M\b\157\005z\031&\nE\b\157\000\246\002M\002M\012z\012\186\002M\002M\002M\002M\002M\000\000\000\000\002M\000\000\002M\002M\000\000\018\202\000\000\005\130\002M\nE\000\000\002M\002M\002M\000\000\002M\002M\002M\002M\007\026\000\000\tF\002M\014\138\002M\002M\000\000\002M\002M\002M\002M\002M\002M\002M\000\000\000\000\002M\002M\002M\000\000\021v\000\000\000\000\002M\002M\002M\002M\002]\002]\000\000\002]\005z\002]\007\213\tF\002]\b\185\000\000\002]\005z\002]\014\206\000\000\002]\t\194\002]\002]\002]\000\000\002]\002]\002]\007\213\021\146\005\130\005z\007\213\002]\002]\002]\002]\002]\005\130\002]\000\246\002\250\000\000\b\185\002\182\000\000\002]\002]\002]\002]\002]\000\000\000\000\t\194\005\130\000\000\002]\b\185\002]\002]\000\000\007\158\000\000\000\000\000\000\002]\002]\002]\b\185\000\000\000\000\000\000\b\185\000\246\002]\002]\012z\002]\002]\002]\002]\002]\002]\022\138\020\n\002]\000\000\002]\002]\000\000\000\000\000\000\020\130\002]\000\000\000\000\002]\002]\002]\019\214\002]\002]\002]\002]\nj\000\000\tF\002]\022R\002]\002]\000\000\002]\002]\002]\002]\002]\002]\002]\000\000\000\000\002]\002]\002]\000\000 :\007:\000\000\002]\002]\002]\002]\002=\002=\000\000\002=\005z\002=\005z\000\000\002=\000\246\000\000\002=\005z\002=\000\000\000\000\002=\t\194\002=\002=\002=\000\000\002=\002=\002=\000\000\000\000\005\130\000\000\005\130\002=\002=\002=\002=\002=\005\130\002=\000\246\000\000\000\000\b\213\000\000\000\000\002=\002=\002=\002=\002=\000\000\000\000\000\000\000\000\000\000\002=\007\250\002=\002=\000\000\007\158\000\000\000\000\000\000\002=\002=\002=\b\213\000\000\000\000\000\000\b\213\000\000\002=\002=\012z\002=\002=\002=\002=\002=\002=\000\000\031\002\002=\031^\002=\002=\000\000\000\000\000\000\031\138\002=\000\000\000\000\002=\002=\002=\000\000\002=\002=\002=\002=\000\000\000\000\000\000\002=\000\000\002=\002=\000\000\002=\002=\002=\002=\002=\002=\002=\000\000\000\000\002=\002=\002=\000\000\000\000\000\000\000\000\002=\002=\002=\002=\002I\002I\000\000\002I\000\000\002I\000\000\000\000\002I\b\205\000\000\002I\000\000\002I\000\000\000\000\012r\000\000\002I\002I\002I\000\000\002I\002I\002I\000\000\000\000\000\000\000\000\000\000\002I\002I\002I\012\178\002I\000\000\002I\000\000\000\000\000\000\b\205\000\000\000\000\002I\002I\002I\002I\002I\000\000\000\000\000\000\000\000\000\000\002I\015J\002I\002I\000\000\b\205\000\000\000\000\000\000\002I\002I\002I\b\205\000\000\000\000\000\000\b\205\000\000\002I\002I\012z\012\186\002I\002I\002I\002I\002I\000\000\000\000\002I\000\000\002I\002I\000\000\000\000\000\000\000\000\002I\000\000\000\000\002I\002I\002I\000\000\002I\002I\002I\002I\000\000\000\000\000\000\002I\000\000\002I\002I\000\000\002I\002I\002I\002I\002I\002I\002I\000\000\000\000\002I\002I\002I\000\000\000\000\000\000\000\000\002I\002I\002I\002I\002E\002E\000\000\002E\000\000\002E\000\000\000\000\002E\000\246\000\000\002E\000\000\002E\000\000\000\000\012r\000\000\002E\002E\002E\000\000\002E\002E\002E\000\000\000\000\000\000\000\000\000\000\002E\002E\002E\012\178\002E\000\000\002E\000\000\000\000\000\000\b\153\000\000\000\000\002E\002E\002E\002E\002E\000\000\000\000\000\000\000\000\000\000\002E\b\153\002E\002E\000\000\007\158\000\000\000\000\000\000\002E\002E\002E\b\153\000\000\000\000\000\000\b\153\000\000\002E\002E\012z\012\186\002E\002E\002E\002E\002E\000\000\000\000\002E\000\000\002E\002E\000\000\000\000\000\000\000\000\002E\000\000\000\000\002E\002E\002E\000\000\002E\002E\002E\002E\000\000\000\000\000\000\002E\000\000\002E\002E\000\000\002E\002E\002E\002E\002E\002E\002E\000\000\000\000\002E\002E\002E\000\000\000\000\000\000\000\000\002E\002E\002E\002E\002m\002m\000\000\002m\000\000\002m\000\000\000\000\002m\000\246\000\000\002m\000\000\002m\000\000\000\000\012r\000\000\002m\002m\002m\000\000\002m\002m\002m\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\012\210\000\000\002m\000\000\000\000\000\000\017\178\000\000\000\000\002m\002m\012\218\012\226\002m\000\000\000\000\000\000\000\000\000\000\002m\015\014\012\234\002m\000\000\015\026\000\000\000\000\000\000\002m\002m\000\246\015&\000\000\000\000\000\000\0152\000\000\002m\002m\012z\012\186\012\242\012\250\r\n\002m\002m\000\000\000\000\002m\000\000\002m\r\018\000\000\000\000\000\000\000\000\002m\000\000\000\000\002m\002m\r\026\000\000\002m\002m\002m\002m\000\000\000\000\000\000\002m\000\000\002m\002m\000\000\002m\002m\002m\002m\r\002\002m\002m\000\000\000\000\002m\r\"\002m\000\000\000\000\000\000\000\000\002m\002m\r*\r2\002U\002U\000\000\002U\000\000\002U\000\000\002\250\002U\000\000\002\250\002U\000\000\002U\000\000\000\000\012r\000\000\002U\002U\002U\000\000\002U\002U\002U\000\000\000\000\000\000\000\000\000\000\002U\002U\002U\012\178\002U\000\000\002U\000\000\000\000\000\000\000\000\000\000\000\000\002U\002U\002U\002U\002U\000\000\0122\000\000\003\226\016.\002U\003\226\002U\002U\000\000\000\000\000\000\000\000\000\000\002U\002U\002U\015n\000\000\015~\016B\007\245\016V\002U\002U\012z\012\186\002U\002U\002U\002U\002U\000\000\000\000\002U\000\000\002U\002U\000\000\000\000\007\245\000\000\002U\000\000\007\245\002U\002U\002U\000\000\002U\002U\002U\002U\000\000\000\000\000\000\002U\000\000\002U\002U\000\000\002U\002U\002U\002U\002U\002U\002U\000\000\000\000\002U\002U\002U\000\000\000\000\000\000\000\000\002U\002U\002U\002U\002Q\002Q\000\000\002Q\000\000\002Q\000\000\000\000\002Q\000\000\000\000\002Q\000\000\002Q\000\000\000\000\012r\000\000\002Q\002Q\002Q\000\000\002Q\002Q\002Q\000\000\000\000\000\000\000\000\000\000\002Q\002Q\002Q\012\178\002Q\007\245\002Q\000\000\000\000\000\000\000\000\000\000\000\000\002Q\002Q\002Q\002Q\002Q\000\000\000\000\000\000\011\234\000\000\002Q\011\246\002Q\002Q\000\000\000\000\000\000\000\000\000\000\002Q\002Q\002Q\000\000\000\000\000\000\000\000\000\000\000\000\002Q\002Q\012z\012\186\002Q\002Q\002Q\002Q\002Q\000\000\000\000\002Q\000\000\002Q\002Q\000\000\000\000\000\000\000\000\002Q\000\000\000\000\002Q\002Q\002Q\000\000\002Q\002Q\002Q\002Q\000\000\000\000\000\000\002Q\000\000\002Q\002Q\000\000\002Q\002Q\002Q\002Q\002Q\002Q\002Q\000\000\000\000\002Q\002Q\002Q\000\000\000\000\000\000\000\000\002Q\002Q\002Q\002Q\002e\002e\000\000\002e\000\000\002e\000\000\000\000\002e\000\000\000\000\002e\000\000\002e\000\000\000\000\012r\000\000\002e\002e\002e\000\000\002e\002e\002e\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\002e\000\000\002e\000\000\000\000\000\000\000\000\000\000\000\000\002e\002e\012\218\012\226\002e\000\000\000\000\000\000\000\000\000\000\002e\000\000\002e\002e\000\000\000\000\000\000\000\000\000\000\002e\002e\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002e\002e\012z\012\186\012\242\012\250\002e\002e\002e\000\000\000\000\002e\000\000\002e\002e\000\000\000\000\000\000\000\000\002e\000\000\000\000\002e\002e\002e\000\000\002e\002e\002e\002e\000\000\000\000\000\000\002e\000\000\002e\002e\000\000\002e\002e\002e\002e\r\002\002e\002e\000\000\000\000\002e\002e\002e\000\000\000\000\000\000\000\000\002e\002e\002e\002e\0029\0029\000\000\0029\000\000\0029\000\000\000\000\0029\000\000\000\000\0029\000\000\0029\000\000\000\000\012r\000\000\0029\0029\0029\000\000\0029\0029\0029\000\000\000\000\000\000\000\000\000\000\0029\0029\0029\012\178\0029\000\000\0029\000\000\000\000\000\000\000\000\000\000\000\000\0029\0029\0029\0029\0029\000\000\000\000\000\000\000\000\000\000\0029\000\000\0029\0029\000\000\000\000\000\000\000\000\000\000\0029\0029\0029\000\000\000\000\000\000\000\000\000\000\000\000\0029\0029\012z\012\186\0029\0029\0029\0029\0029\000\000\000\000\0029\000\000\0029\0029\000\000\000\000\000\000\000\000\0029\000\000\000\000\0029\0029\0029\000\000\0029\0029\0029\0029\000\000\000\000\000\000\0029\000\000\0029\0029\000\000\0029\0029\0029\0029\0029\0029\0029\000\000\000\000\0029\0029\0029\000\000\000\000\000\000\000\000\0029\0029\0029\0029\0025\0025\000\000\0025\000\000\0025\000\000\000\000\0025\000\000\000\000\0025\000\000\0025\000\000\000\000\012r\000\000\0025\0025\0025\000\000\0025\0025\0025\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\0025\000\000\0025\000\000\000\000\000\000\000\000\000\000\000\000\0025\0025\012\218\012\226\0025\000\000\000\000\000\000\000\000\000\000\0025\000\000\0025\0025\000\000\000\000\000\000\000\000\000\000\0025\0025\000\246\000\000\000\000\000\000\000\000\000\000\000\000\0025\0025\012z\012\186\012\242\012\250\0025\0025\0025\000\000\000\000\0025\000\000\0025\0025\000\000\000\000\000\000\000\000\0025\000\000\000\000\0025\0025\0025\000\000\0025\0025\0025\0025\000\000\000\000\000\000\0025\000\000\0025\0025\000\000\0025\0025\0025\0025\r\002\0025\0025\000\000\000\000\0025\0025\0025\000\000\000\000\000\000\000\000\0025\0025\0025\0025\002\145\002\145\000\000\002\145\000\000\002\145\000\000\000\000\002\145\000\000\000\000\002\145\000\000\002\145\000\000\000\000\012r\000\000\002\145\002\145\002\145\000\000\002\145\002\145\002\145\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\002\145\000\000\002\145\000\000\000\000\000\000\000\000\000\000\000\000\002\145\002\145\012\218\012\226\002\145\000\000\000\000\000\000\000\000\000\000\002\145\000\000\002\145\002\145\000\000\000\000\000\000\000\000\000\000\002\145\002\145\002\145\000\000\000\000\000\000\000\000\000\000\000\000\002\145\002\145\012z\012\186\012\242\002\145\002\145\002\145\002\145\000\000\000\000\002\145\000\000\002\145\002\145\000\000\000\000\000\000\000\000\002\145\000\000\000\000\002\145\002\145\002\145\000\000\002\145\002\145\002\145\002\145\000\000\000\000\000\000\002\145\000\000\002\145\002\145\000\000\002\145\002\145\002\145\002\145\r\002\002\145\002\145\000\000\000\000\002\145\002\145\002\145\000\000\000\000\000\000\000\000\002\145\002\145\002\145\002\145\0021\0021\000\000\0021\000\000\0021\000\000\000\000\0021\000\000\000\000\0021\000\000\0021\000\000\000\000\012r\000\000\0021\0021\0021\000\000\0021\0021\0021\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\0021\000\000\0021\000\000\000\000\000\000\000\000\000\000\000\000\0021\0021\012\218\012\226\0021\000\000\000\000\000\000\000\000\000\000\0021\000\000\0021\0021\000\000\000\000\000\000\000\000\000\000\0021\0021\000\246\000\000\000\000\000\000\000\000\000\000\000\000\0021\0021\012z\012\186\012\242\012\250\0021\0021\0021\000\000\000\000\0021\000\000\0021\0021\000\000\000\000\000\000\000\000\0021\000\000\000\000\0021\0021\0021\000\000\0021\0021\0021\0021\000\000\000\000\000\000\0021\000\000\0021\0021\000\000\0021\0021\0021\0021\r\002\0021\0021\000\000\000\000\0021\0021\0021\000\000\000\000\000\000\000\000\0021\0021\0021\0021\002i\002i\000\000\002i\000\000\002i\000\000\000\000\002i\000\000\000\000\002i\000\000\002i\000\000\000\000\012r\000\000\002i\002i\002i\000\000\002i\002i\002i\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\002i\000\000\002i\000\000\000\000\000\000\000\000\000\000\000\000\002i\002i\012\218\012\226\002i\000\000\000\000\000\000\000\000\000\000\002i\000\000\002i\002i\000\000\000\000\000\000\000\000\000\000\002i\002i\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002i\002i\012z\012\186\012\242\012\250\002i\002i\002i\000\000\000\000\002i\000\000\002i\002i\000\000\000\000\000\000\000\000\002i\000\000\000\000\002i\002i\002i\000\000\002i\002i\002i\002i\000\000\000\000\000\000\002i\000\000\002i\002i\000\000\002i\002i\002i\002i\r\002\002i\002i\000\000\000\000\002i\002i\002i\000\000\000\000\000\000\000\000\002i\002i\002i\002i\002a\002a\000\000\002a\000\000\002a\000\000\000\000\002a\000\000\000\000\002a\000\000\002a\000\000\000\000\012r\000\000\002a\002a\002a\000\000\002a\002a\002a\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\002a\000\000\002a\000\000\000\000\000\000\000\000\000\000\000\000\002a\002a\012\218\012\226\002a\000\000\000\000\000\000\000\000\000\000\002a\000\000\002a\002a\000\000\000\000\000\000\000\000\000\000\002a\002a\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002a\002a\012z\012\186\012\242\012\250\002a\002a\002a\000\000\000\000\002a\000\000\002a\002a\000\000\000\000\000\000\000\000\002a\000\000\000\000\002a\002a\002a\000\000\002a\002a\002a\002a\000\000\000\000\000\000\002a\000\000\002a\002a\000\000\002a\002a\002a\002a\r\002\002a\002a\000\000\000\000\002a\002a\002a\000\000\000\000\000\000\000\000\002a\002a\002a\002a\002q\002q\000\000\002q\000\000\002q\000\000\000\000\002q\000\000\000\000\002q\000\000\002q\000\000\000\000\012r\000\000\002q\002q\002q\000\000\002q\002q\002q\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\012\210\000\000\002q\000\000\000\000\000\000\000\000\000\000\000\000\002q\002q\012\218\012\226\002q\000\000\000\000\000\000\000\000\000\000\002q\000\000\012\234\002q\000\000\000\000\000\000\000\000\000\000\002q\002q\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002q\002q\012z\012\186\012\242\012\250\r\n\002q\002q\000\000\000\000\002q\000\000\002q\r\018\000\000\000\000\000\000\000\000\002q\000\000\000\000\002q\002q\r\026\000\000\002q\002q\002q\002q\000\000\000\000\000\000\002q\000\000\002q\002q\000\000\002q\002q\002q\002q\r\002\002q\002q\000\000\000\000\002q\r\"\002q\000\000\000\000\000\000\000\000\002q\002q\r*\r2\002u\002u\000\000\002u\000\000\002u\000\000\000\000\002u\000\000\000\000\002u\000\000\002u\000\000\000\000\012r\000\000\002u\002u\002u\000\000\002u\002u\002u\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\002u\000\000\002u\000\000\000\000\000\000\000\000\000\000\000\000\002u\002u\012\218\012\226\002u\000\000\000\000\000\000\000\000\000\000\002u\000\000\012\234\002u\000\000\000\000\000\000\000\000\000\000\002u\002u\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002u\002u\012z\012\186\012\242\012\250\r\n\002u\002u\000\000\000\000\002u\000\000\002u\r\018\000\000\000\000\000\000\000\000\002u\000\000\000\000\002u\002u\r\026\000\000\002u\002u\002u\002u\000\000\000\000\000\000\002u\000\000\002u\002u\000\000\002u\002u\002u\002u\r\002\002u\002u\000\000\000\000\002u\002u\002u\000\000\000\000\000\000\000\000\002u\002u\r*\r2\002y\002y\000\000\002y\000\000\002y\000\000\000\000\002y\000\000\000\000\002y\000\000\002y\000\000\000\000\012r\000\000\002y\002y\002y\000\000\002y\002y\002y\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\002y\000\000\002y\000\000\000\000\000\000\000\000\000\000\000\000\002y\002y\012\218\012\226\002y\000\000\000\000\000\000\000\000\000\000\002y\000\000\012\234\002y\000\000\000\000\000\000\000\000\000\000\002y\002y\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002y\002y\012z\012\186\012\242\012\250\r\n\002y\002y\000\000\000\000\002y\000\000\002y\r\018\000\000\000\000\000\000\000\000\002y\000\000\000\000\002y\002y\r\026\000\000\002y\002y\002y\002y\000\000\000\000\000\000\002y\000\000\002y\002y\000\000\002y\002y\002y\002y\r\002\002y\002y\000\000\000\000\002y\002y\002y\000\000\000\000\000\000\000\000\002y\002y\r*\r2\n\r\n\r\000\000\n\r\000\000\n\r\000\000\000\000\n\r\000\000\000\000\n\r\000\000\n\r\000\000\000\000\012r\000\000\n\r\n\r\n\r\000\000\n\r\n\r\n\r\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\012\210\000\000\n\r\000\000\000\000\000\000\000\000\000\000\000\000\n\r\n\r\012\218\012\226\n\r\000\000\000\000\000\000\000\000\000\000\n\r\000\000\012\234\n\r\000\000\000\000\000\000\000\000\000\000\n\r\n\r\000\246\000\000\000\000\000\000\000\000\000\000\000\000\n\r\n\r\012z\012\186\012\242\012\250\r\n\n\r\n\r\000\000\000\000\n\r\000\000\n\r\r\018\000\000\000\000\000\000\000\000\n\r\000\000\000\000\n\r\n\r\r\026\000\000\n\r\n\r\n\r\n\r\000\000\000\000\000\000\n\r\000\000\n\r\n\r\000\000\n\r\n\r\n\r\n\r\r\002\n\r\n\r\000\000\000\000\n\r\r\"\n\r\000\000\000\000\000\000\000\000\n\r\n\r\r*\r2\002}\002}\000\000\002}\000\000\002}\000\000\000\000\002}\000\000\000\000\002}\000\000\002}\000\000\000\000\012r\000\000\002}\002}\002}\000\000\002}\002}\002}\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\012\210\000\000\002}\000\000\000\000\000\000\000\000\000\000\000\000\002}\002}\012\218\012\226\002}\000\000\000\000\000\000\000\000\000\000\002}\000\000\012\234\002}\000\000\000\000\000\000\000\000\000\000\002}\002}\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002}\002}\012z\012\186\012\242\012\250\r\n\002}\002}\000\000\000\000\002}\000\000\002}\r\018\000\000\000\000\000\000\000\000\002}\000\000\000\000\002}\002}\r\026\000\000\002}\002}\002}\002}\000\000\000\000\000\000\002}\000\000\002}\002}\000\000\r:\002}\002}\rB\r\002\002}\002}\000\000\000\000\002}\r\"\002}\000\000\000\000\000\000\000\000\002}\002}\r*\r2\n\t\n\t\000\000\n\t\000\000\n\t\000\000\000\000\n\t\000\000\000\000\n\t\000\000\n\t\000\000\000\000\012r\000\000\n\t\n\t\n\t\000\000\n\t\n\t\n\t\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\012\210\000\000\n\t\000\000\000\000\000\000\000\000\000\000\000\000\n\t\n\t\012\218\012\226\n\t\000\000\000\000\000\000\000\000\000\000\n\t\000\000\012\234\n\t\000\000\000\000\000\000\000\000\000\000\n\t\n\t\000\246\000\000\000\000\000\000\000\000\000\000\000\000\n\t\n\t\012z\012\186\012\242\012\250\r\n\n\t\n\t\000\000\000\000\n\t\000\000\n\t\r\018\000\000\000\000\000\000\000\000\n\t\000\000\000\000\n\t\n\t\r\026\000\000\n\t\n\t\n\t\n\t\000\000\000\000\000\000\n\t\000\000\n\t\n\t\000\000\n\t\n\t\n\t\n\t\r\002\n\t\n\t\000\000\000\000\n\t\r\"\n\t\000\000\000\000\000\000\000\000\n\t\n\t\r*\r2\002\169\002\169\000\000\002\169\000\000\002\169\000\000\000\000\002\169\000\000\000\000\002\169\000\000\002\169\000\000\000\000\012r\000\000\002\169\002\169\002\169\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\012\210\000\000\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\169\012\218\012\226\002\169\000\000\000\000\000\000\000\000\000\000\002\169\000\000\012\234\002\169\000\000\000\000\000\000\000\000\000\000\002\169\002\169\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\169\012z\012\186\012\242\012\250\r\n\002\169\002\169\000\000\000\000\002\169\000\000\002\169\r\018\000\000\000\000\000\000\000\000\002\169\000\000\000\000\002\169\002\169\r\026\000\000\002\169\002\169\002\169\002\169\000\000\000\000\000\000\002\169\000\000\002\169\002\169\000\000\r:\002\169\002\169\rB\r\002\002\169\002\169\000\000\000\000\002\169\r\"\002\169\000\000\000\000\000\000\000\000\002\169\002\169\r*\r2\002\185\002\185\000\000\002\185\000\000\002\185\000\000\000\000\002\185\000\000\000\000\002\185\000\000\002\185\000\000\000\000\012r\000\000\002\185\002\185\002\185\000\000\002\185\002\185\002\185\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\012\210\000\000\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\185\002\185\012\218\012\226\002\185\000\000\000\000\000\000\000\000\000\000\002\185\000\000\012\234\002\185\000\000\000\000\000\000\000\000\000\000\002\185\002\185\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\185\002\185\012z\012\186\012\242\012\250\r\n\002\185\002\185\000\000\000\000\002\185\000\000\002\185\r\018\000\000\000\000\000\000\000\000\002\185\000\000\000\000\002\185\002\185\r\026\000\000\002\185\002\185\002\185\002\185\000\000\000\000\000\000\002\185\000\000\002\185\002\185\000\000\r:\002\185\002\185\rB\r\002\002\185\002\185\000\000\000\000\002\185\r\"\002\185\000\000\000\000\000\000\000\000\002\185\002\185\r*\r2\002\177\002\177\000\000\002\177\000\000\002\177\000\000\000\000\002\177\000\000\000\000\002\177\000\000\002\177\000\000\000\000\012r\000\000\002\177\002\177\002\177\000\000\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\012\210\000\000\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\177\002\177\012\218\012\226\002\177\000\000\000\000\000\000\000\000\000\000\002\177\000\000\012\234\002\177\000\000\000\000\000\000\000\000\000\000\002\177\002\177\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\177\002\177\012z\012\186\012\242\012\250\r\n\002\177\002\177\000\000\000\000\002\177\000\000\002\177\r\018\000\000\000\000\000\000\000\000\002\177\000\000\000\000\002\177\002\177\r\026\000\000\002\177\002\177\002\177\002\177\000\000\000\000\000\000\002\177\000\000\002\177\002\177\000\000\r:\002\177\002\177\rB\r\002\002\177\002\177\000\000\000\000\002\177\r\"\002\177\000\000\000\000\000\000\000\000\002\177\002\177\r*\r2\002\157\002\157\000\000\002\157\000\000\002\157\000\000\000\000\002\157\000\000\000\000\002\157\000\000\002\157\000\000\000\000\012r\000\000\002\157\002\157\002\157\000\000\002\157\002\157\002\157\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\012\210\000\000\002\157\000\000\000\000\000\000\000\000\000\000\000\000\002\157\002\157\012\218\012\226\002\157\000\000\000\000\000\000\000\000\000\000\002\157\000\000\012\234\002\157\000\000\000\000\000\000\000\000\000\000\002\157\002\157\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\157\002\157\012z\012\186\012\242\012\250\r\n\002\157\002\157\000\000\000\000\002\157\000\000\002\157\r\018\000\000\000\000\000\000\000\000\002\157\000\000\000\000\002\157\002\157\r\026\000\000\002\157\002\157\002\157\002\157\000\000\000\000\000\000\002\157\000\000\002\157\002\157\000\000\r:\002\157\002\157\rB\r\002\002\157\002\157\000\000\000\000\002\157\r\"\002\157\000\000\000\000\000\000\000\000\002\157\002\157\r*\r2\002\165\002\165\000\000\002\165\000\000\002\165\000\000\000\000\002\165\000\000\000\000\002\165\000\000\002\165\000\000\000\000\012r\000\000\002\165\002\165\002\165\000\000\002\165\002\165\002\165\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\012\210\000\000\002\165\000\000\000\000\000\000\000\000\000\000\000\000\002\165\002\165\012\218\012\226\002\165\000\000\000\000\000\000\000\000\000\000\002\165\000\000\012\234\002\165\000\000\000\000\000\000\000\000\000\000\002\165\002\165\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\165\002\165\012z\012\186\012\242\012\250\r\n\002\165\002\165\000\000\000\000\002\165\000\000\002\165\r\018\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\165\002\165\r\026\000\000\002\165\002\165\002\165\002\165\000\000\000\000\000\000\002\165\000\000\002\165\002\165\000\000\r:\002\165\002\165\rB\r\002\002\165\002\165\000\000\000\000\002\165\r\"\002\165\000\000\000\000\000\000\000\000\002\165\002\165\r*\r2\002\161\002\161\000\000\002\161\000\000\002\161\000\000\000\000\002\161\000\000\000\000\002\161\000\000\002\161\000\000\000\000\012r\000\000\002\161\002\161\002\161\000\000\002\161\002\161\002\161\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\012\210\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\002\161\002\161\012\218\012\226\002\161\000\000\000\000\000\000\000\000\000\000\002\161\000\000\012\234\002\161\000\000\000\000\000\000\000\000\000\000\002\161\002\161\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\161\002\161\012z\012\186\012\242\012\250\r\n\002\161\002\161\000\000\000\000\002\161\000\000\002\161\r\018\000\000\000\000\000\000\000\000\002\161\000\000\000\000\002\161\002\161\r\026\000\000\002\161\002\161\002\161\002\161\000\000\000\000\000\000\002\161\000\000\002\161\002\161\000\000\r:\002\161\002\161\rB\r\002\002\161\002\161\000\000\000\000\002\161\r\"\002\161\000\000\000\000\000\000\000\000\002\161\002\161\r*\r2\002\173\002\173\000\000\002\173\000\000\002\173\000\000\000\000\002\173\000\000\000\000\002\173\000\000\002\173\000\000\000\000\012r\000\000\002\173\002\173\002\173\000\000\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\012\210\000\000\002\173\000\000\000\000\000\000\000\000\000\000\000\000\002\173\002\173\012\218\012\226\002\173\000\000\000\000\000\000\000\000\000\000\002\173\000\000\012\234\002\173\000\000\000\000\000\000\000\000\000\000\002\173\002\173\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\173\002\173\012z\012\186\012\242\012\250\r\n\002\173\002\173\000\000\000\000\002\173\000\000\002\173\r\018\000\000\000\000\000\000\000\000\002\173\000\000\000\000\002\173\002\173\r\026\000\000\002\173\002\173\002\173\002\173\000\000\000\000\000\000\002\173\000\000\002\173\002\173\000\000\r:\002\173\002\173\rB\r\002\002\173\002\173\000\000\000\000\002\173\r\"\002\173\000\000\000\000\000\000\000\000\002\173\002\173\r*\r2\002\189\002\189\000\000\002\189\000\000\002\189\000\000\000\000\002\189\000\000\000\000\002\189\000\000\002\189\000\000\000\000\012r\000\000\002\189\002\189\002\189\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\012\210\000\000\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\002\189\012\218\012\226\002\189\000\000\000\000\000\000\000\000\000\000\002\189\000\000\012\234\002\189\000\000\000\000\000\000\000\000\000\000\002\189\002\189\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\189\002\189\012z\012\186\012\242\012\250\r\n\002\189\002\189\000\000\000\000\002\189\000\000\002\189\r\018\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002\189\002\189\r\026\000\000\002\189\002\189\002\189\002\189\000\000\000\000\000\000\002\189\000\000\002\189\002\189\000\000\r:\002\189\002\189\rB\r\002\002\189\002\189\000\000\000\000\002\189\r\"\002\189\000\000\000\000\000\000\000\000\002\189\002\189\r*\r2\002\181\002\181\000\000\002\181\000\000\002\181\000\000\000\000\002\181\000\000\000\000\002\181\000\000\002\181\000\000\000\000\012r\000\000\002\181\002\181\002\181\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\012\210\000\000\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\002\181\012\218\012\226\002\181\000\000\000\000\000\000\000\000\000\000\002\181\000\000\012\234\002\181\000\000\000\000\000\000\000\000\000\000\002\181\002\181\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\181\002\181\012z\012\186\012\242\012\250\r\n\002\181\002\181\000\000\000\000\002\181\000\000\002\181\r\018\000\000\000\000\000\000\000\000\002\181\000\000\000\000\002\181\002\181\r\026\000\000\002\181\002\181\002\181\002\181\000\000\000\000\000\000\002\181\000\000\002\181\002\181\000\000\r:\002\181\002\181\rB\r\002\002\181\002\181\000\000\000\000\002\181\r\"\002\181\000\000\000\000\000\000\000\000\002\181\002\181\r*\r2\002\153\002\153\000\000\002\153\000\000\002\153\000\000\000\000\002\153\000\000\000\000\002\153\000\000\002\153\000\000\000\000\012r\000\000\002\153\002\153\002\153\000\000\002\153\002\153\002\153\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\012\210\000\000\002\153\000\000\000\000\000\000\000\000\000\000\000\000\002\153\002\153\012\218\012\226\002\153\000\000\000\000\000\000\000\000\000\000\002\153\000\000\012\234\002\153\000\000\000\000\000\000\000\000\000\000\002\153\002\153\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\153\002\153\012z\012\186\012\242\012\250\r\n\002\153\002\153\000\000\000\000\002\153\000\000\002\153\r\018\000\000\000\000\000\000\000\000\002\153\000\000\000\000\002\153\002\153\r\026\000\000\002\153\002\153\002\153\002\153\000\000\000\000\000\000\002\153\000\000\002\153\002\153\000\000\r:\002\153\002\153\rB\r\002\002\153\002\153\000\000\000\000\002\153\r\"\002\153\000\000\000\000\000\000\000\000\002\153\002\153\r*\r2\001\237\001\237\000\000\001\237\000\000\001\237\000\000\000\000\001\237\000\000\000\000\001\237\000\000\001\237\000\000\000\000\001\237\000\000\001\237\001\237\001\237\000\000\001\237\001\237\001\237\000\000\000\000\000\000\000\000\000\000\001\237\001\237\001\237\001\237\001\237\000\000\001\237\000\000\000\000\000\000\000\000\000\000\000\000\001\237\001\237\001\237\001\237\001\237\000\000\000\000\000\000\000\000\000\000\001\237\000\000\001\237\001\237\000\000\000\000\000\000\000\000\000\000\001\237\001\237\001\237\000\000\000\000\000\000\000\000\000\000\000\000\001\237\001\237\001\237\001\237\001\237\001\237\001\237\001\237\001\237\000\000\000\000\001\237\000\000\001\237\001\237\000\000\000\000\000\000\000\000\001\237\000\000\000\000\001\237\001\237\001\237\000\000\001\237\001\237\001\237\001\237\000\000\000\000\000\000\001\237\000\000\001\237\001\237\000\000\001\237\001\237\001\237\001\237\001\237\001\237\001\237\000\000\000\000\001\237\001\237\017\138\000\000\000\000\000\000\000\000\001\237\001\237\001\237\001\237\002\r\002\r\000\000\002\r\000\000\002\r\000\000\000\000\002\r\000\000\000\000\002\r\000\000\002\r\000\000\000\000\012r\000\000\002\r\002\r\002\r\000\000\002\r\002\r\002\r\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\012\210\000\000\002\r\000\000\000\000\000\000\000\000\000\000\000\000\002\r\002\r\012\218\012\226\002\r\000\000\000\000\000\000\000\000\000\000\002\r\000\000\012\234\002\r\000\000\000\000\000\000\000\000\000\000\002\r\002\r\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\r\002\r\012z\012\186\012\242\012\250\r\n\002\r\002\r\000\000\000\000\002\r\000\000\002\r\r\018\000\000\000\000\000\000\000\000\002\r\000\000\000\000\002\r\002\r\r\026\000\000\002\r\002\r\017\162\002\r\000\000\000\000\000\000\002\r\000\000\002\r\002\r\000\000\r:\002\r\002\r\rB\r\002\002\r\002\r\000\000\000\000\002\r\r\"\002\r\000\000\000\000\000\000\000\000\002\r\002\r\r*\r2\002\t\002\t\000\000\002\t\000\000\002\t\000\000\000\000\002\t\000\000\000\000\002\t\000\000\002\t\000\000\000\000\012r\000\000\002\t\002\t\002\t\000\000\002\t\002\t\002\t\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\012\210\000\000\002\t\000\000\000\000\000\000\000\000\000\000\000\000\002\t\002\t\012\218\012\226\002\t\000\000\000\000\000\000\000\000\000\000\002\t\000\000\012\234\002\t\000\000\000\000\000\000\000\000\000\000\002\t\002\t\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\t\002\t\012z\012\186\012\242\012\250\r\n\002\t\002\t\000\000\000\000\002\t\000\000\002\t\r\018\000\000\000\000\000\000\000\000\002\t\000\000\000\000\002\t\002\t\r\026\000\000\002\t\002\t\002\t\002\t\000\000\000\000\000\000\002\t\000\000\002\t\002\t\000\000\r:\002\t\002\t\rB\r\002\002\t\002\t\000\000\000\000\002\t\r\"\002\t\000\000\000\000\000\000\000\000\002\t\002\t\r*\r2\002\149\002\149\000\000\002\149\000\000\002\149\000\000\000\000\002\149\000\000\000\000\002\149\000\000\002\149\000\000\000\000\012r\000\000\002\149\002\149\002\149\000\000\002\149\002\149\002\149\000\000\000\000\000\000\000\000\000\000\012\170\012\194\012\202\012\178\012\210\000\000\002\149\000\000\000\000\000\000\000\000\000\000\000\000\002\149\002\149\012\218\012\226\002\149\000\000\000\000\000\000\000\000\000\000\002\149\000\000\012\234\002\149\000\000\000\000\000\000\000\000\000\000\002\149\002\149\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\149\002\149\012z\012\186\012\242\012\250\r\n\002\149\002\149\000\000\000\000\002\149\000\000\002\149\r\018\000\000\000\000\000\000\000\000\002\149\000\000\000\000\002\149\002\149\r\026\000\000\002\149\002\149\002\149\002\149\000\000\000\000\000\000\002\149\000\000\002\149\002\149\000\000\r:\002\149\002\149\rB\r\002\002\149\002\149\000\000\000\000\002\149\r\"\002\149\000\000\000\000\000\000\000\000\002\149\002\149\r*\r2\001\253\001\253\000\000\001\253\000\000\001\253\000\000\000\000\001\253\000\000\000\000\001\253\000\000\001\253\000\000\000\000\001\253\000\000\001\253\001\253\001\253\000\000\001\253\001\253\001\253\000\000\000\000\000\000\000\000\000\000\001\253\001\253\001\253\001\253\001\253\000\000\001\253\000\000\000\000\000\000\000\000\000\000\000\000\001\253\001\253\001\253\001\253\001\253\000\000\000\000\000\000\000\000\000\000\001\253\000\000\001\253\001\253\000\000\000\000\000\000\000\000\000\000\001\253\001\253\001\253\000\000\000\000\000\000\000\000\000\000\000\000\001\253\001\253\001\253\001\253\001\253\001\253\001\253\001\253\001\253\000\000\000\000\001\253\000\000\001\253\001\253\000\000\000\000\000\000\000\000\001\253\000\000\000\000\001\253\001\253\001\253\000\000\001\253\001\253\001\253\001\253\000\000\000\000\000\000\001\253\000\000\001\253\001\253\000\000\001\253\001\253\001\253\001\253\001\253\001\253\001\253\000\000\000\000\001\253\001\253\017\138\000\000\000\000\000\000\000\000\001\253\001\253\001\253\001\253\002\001\002\001\000\000\002\001\000\000\002\001\000\000\000\000\002\001\000\000\000\000\002\001\000\000\002\001\000\000\000\000\002\001\000\000\002\001\002\001\002\001\000\000\002\001\002\001\002\001\t\001\000\000\000\000\007\242\t\001\002\001\002\001\002\001\002\001\002\001\000\000\002\001\000\000\t\017\000\000\000\000\t\017\000\000\002\001\002\001\002\001\002\001\002\001\007\246\000\000\000\000\000\000\000\000\002\001\000\000\002\001\002\001\000\000\000\000\027z\000\000\000\000\002\001\002\001\002\001\000\000\000\000\000\000\000\000\000\000\t\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\t\017\000\000\002\001\000\000\002\001\002\001\000\000\000\000\000\000\000\000\002\001\t\001\000\246\002\001\002\001\002\001\t\017\002\001\002\001\002\001\002\001\000\000\007\242\000\000\002\001\022\"\002\001\002\001\000\000\002\001\002\001\002\001\002\001\002\001\002\001\002\001\000\000\000\000\002\001\002\001\017\138\000\000\007\246\t\017\b\241\002\001\002\001\002\001\002\001\001\014\005j\000\006\000\000\000\000\000\000\002\246\002\250\007\250\003*\002\182\000\000\007\158\b\006\002\205\0036\001\018\002\205\000\000\b\026\002\202\000\000\t\017\b&\000\000\001\218\000\000\000\000\000\000\004\026\001\026\n\178\n\182\001&\001*\000\000\000\000\000\246\003>\007\233\000\n\003\214\000\000\021\026\000\000\n\218\n\222\000\000\004\n\004\022\004\"\004&\n\226\b\254\000\000\001B\002\205\002\238\007\233\000\000\004\030\nZ\007\233\000\000\000\000\n^\nb\nn\n\130\000\000\007*\002\205\002\205\001F\001J\001N\001R\001V\000\000\000\000\n\246\001Z\007\250\000\000\000\000\001^\007\158\r\210\011\002\011\026\011\162\0076\007:\b\026\000\000\001b\000\000\b&\000\000\002\205\000\000\001f\000\000\000\246\000\000\000\000\000\000\000\000\019\198\000\000\000\000\002\182\001\162\007\230\000\000\000\000\007>\nv\000\000\001\166\000\000\017\210\004\198\011\182\001\014\001\174\000\006\001\178\001\182\026v\002\246\002\250\000\000\003*\002\182\000\000\000\000\000\000\000\000\0036\001\018\000\000\000\000\000\000\n\174\000\000\000\000\000\000\007\250\001\218\019\202\000\000\007\158\004\026\001\026\n\178\n\182\001&\001*\b\026\000\000\000\000\003>\b&\000\000\003\214\019\214\n\186\026\154\n\218\n\222\000\000\004\n\004\022\004\"\004&\n\226\b\254\000\000\001B\000\000\002\238\000\000\000\000\004\030\nZ\000\000\000\000\000\000\n^\nb\nn\n\130\007:\007*\000\000\000\000\001F\001J\001N\001R\001V\000\000\026\166\n\246\001Z\000\000\000\000\000\000\001^\007\242\000\000\011\002\011\026\011\162\0076\007:\000\000\000\000\001b\000\000\026:\000\000\000\000\000\000\001f\000\000\000\000\000\000\000\000\007\246\000\000\000\000\000\000\000\000\000\000\001\162\b:\000\000\000\000\007>\nv\014\201\001\166\000\000\017\210\004\198\011\182\004\181\001\174\000\006\001\178\001\182\000\254\002\246\002\250\002\254\003*\002\182\000\000\000\000\000\000\014\201\0036\000\000\002&\003\170\000\000\002*\000\000\004\181\000\000\003\174\001\218\000\246\022\026\000\000\003:\000\000\003\178\003\182\000\000\0026\000\000\003\186\002>\003>\014\181\000\000\003\214\000\000\021\174\000\000\004\002\004\006\000\000\004\n\004\022\004\"\004&\004.\b\254\000\000\000\000\022\018\002\238\000\000\000\000\004\030\nZ\022*\002B\000\000\n^\nb\nn\n\130\000\000\007*\007\250\000\000\000\000\000\000\007\158\014>\000\000\0222\000\000\n\246\000\000\b\026\000\000\000\000\n9\b&\000\000\011\002\011\026\011\162\0076\007:\022:\022v\000\000\000\000\004\181\004\181\000\000\000\000\000\000\000\000\000\000\bf\r\154\000\000\n9\000\000\002F\020\250\000\000\000\000\000\000\022\178\026\206\007>\nv\019J\000q\000\000\n\142\004\198\011\182\000q\004=\002\250\000q\000\000\002\182\000\000\011\222\000\000\000\000\0036\019\198\000\000\000q\002\182\000q\000\000\000q\000\000\000q\001\218\000\000\012\022\000\000\003:\000\246\000\000\000\000\000\000\000\000\012\030\000q\000\000\003>\000\000\000\000\003\214\000\000\000q\000\000\000\000\000\000\000q\000\000\004\022\000\246\001\198\000\000\000q\000\000\000\000\000q\002\238\019\202\000\000\004\030\nZ\000q\000q\000q\n^\nb\nn\000\000\015\214\007*\000q\000q\000\000\019\214\007\250\n9\000\000\000q\007\158\r\158\004=\000q\000\000\n9\000\000\b\026\000\000\000\000\000\000\b&\0076\007:\000q\000q\007\250\000\000\000q\000q\007\158\011:\007:\000\000\000\000\000\000\000\000\b\026\000q\000\246\000\000\b&\000\000\000\000\000\000\000q\000q\007>\nv\000\000\000\000\000\137\n\142\004\198\018&\000q\000\137\000q\002\250\000\137\030\134\002\182\000\000\011\222\000\000\000\000\0036\000\000\000\000\000\137\018.\000\137\000\000\000\137\000\000\000\137\001\218\000\000\012\022\000\000\003:\000\000\000\000\000\000\007\250\000\209\012\030\000\137\007\158\003>\000\209\000\000\003\214\000\000\000\137\b\026\000\000\000\000\000\137\b&\004\022\000\000\001\198\000\000\000\137\000\000\000\000\000\137\002\238\000\209\000\000\004\030\nZ\000\137\000\137\000\137\n^\nb\nn\000\000\015\214\007*\000\137\000\137\000\000\000\000\000\000\000\000\000\000\000\137\000\000\000\000\000\209\000\137\003J\000\000\000\000\000\000\000\000\000\000\000\000\000\209\0076\007:\000\137\000\137\000\000\000\209\000\137\000\137\001\210\001\214\000\000\000\000\000\000\000\000\000\209\000\209\000\137\000\000\000\000\000\000\000\000\000\000\000\000\000\137\000\137\007>\nv\001\218\002\186\000\000\n\142\004\198\000\000\000\137\000\000\000\137\000\014\000\018\000\022\000\026\000\030\000\209\000\"\000&\000*\000.\0002\000\000\0006\000:\000\209\002\230\000>\031\"\000\000\000\000\000B\002\226\000\000\002\238\004n\004z\000\000\000F\000\000\000\000\000\000\004\134\000\000\000J\000\000\000N\000R\000V\000Z\000^\000b\000f\000j\000\000\000\000\000\000\000n\000r\004\138\000v\000z\031N\000~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\130\031:\000\000\000\134\000\138\000\000\000\000\000\000\000\000\000\000\000\142\000\146\000\150\000\000\000\000\000\000\000\000\000\000\000\000\000\154\000\158\000\162\000\166\000\000\000\170\000\174\000\178\000\000\000\000\000\000\000\182\000\186\000\190\000\000\000\000\000\000\000\194\000\006\000\198\000\202\000\254\002\246\002\250\002\254\003*\002\182\000\000\000\206\000\000\000\210\0036\000\000\000\000\004\213\000\000\000\214\000\218\004>\000\222\003\174\001\218\000\000\000\000\000\000\003:\000\000\003\178\003\182\000\000\000\000\000\000\003\186\000\000\003>\000\000\000\000\003\214\000\000\021\174\000\000\004\002\004\006\000\000\004\n\004\022\004\"\004&\004.\b\254\000\000\000\000\022\018\002\238\000\000\000\000\004\030\nZ\022*\000\000\000\000\n^\nb\nn\n\130\003Y\007*\000\000\000\000\000\000\000\000\000\000\003Y\000\000\0222\003Y\n\246\000\000!r\000\000\000\000\000\000\000\000\003Y\011\002\011\026\011\162\0076\007:\022:\022v\003Y\000\000!\147\018\246\000\000\000\000\000\000\000\000\000\000\000\000\003Y\000\000\000\000\000\000\000\000\017\230\003Y\000\000\003Y\000\000\026\206\007>\nv\018^\003Y\000\000\n\142\004\198\011\182\000\006\000\000\003Y\000\254\002\246\002\250\002\254\003*\002\182\000\000\000\000\019\198\000\000\0036\002\182\000\000!\194\000\000\000\000\000\000\018~\000\000\003\174\001\218\000\000\0226\000\000\003:\000\000\003\178\003\182\000\000\000\000\000\000\003\186\000\000\003>\000\000\000\000\003\214\000\000\021\174\000\000\004\002\004\006\000\000\004\n\004\022\004\"\004&\004.\b\254\000\000\019\202\022\018\002\238\000\000\002\014\004\030\nZ\022*\000\000\000\000\n^\nb\nn\n\130\002\018\007*\019\214\000\000\026z\000\000\000\000\000\000\001\218\0222\000\000\n\246\000\000!r\000\000\000\000\000\000\000\000\000\000\011\002\011\026\011\162\0076\007:\022:\022v\003\146\000\000\004\221\007:\019\198\000\000\t*\002\182\001\230\001\014\000\000\000\000\000\000\026\134\002\238\003N\002\250\011r\000\000\002\182\026\206\007>\nv\000\000\0036\001\018\n\142\004\198\011\182\002\202\000\000\026:\000\000\000\000\001\218\000\000\000\000\000\000\001\022\001\026\001\030\003n\001&\001*\t.\000\000\019\202\000\000\000\000\000\000\000\000\004\161\003r\000\000\0016\007\226\004\161\000\000\003j\014.\001\198\001>\019\214\000\000\001B\000\000\002\238\000\000\000\000\0042\0046\000\000\000\000\000\000\004:\004\161\004B\007\030\000\000\007*\000\000\000\000\001F\001J\001N\001R\001V\000\000\004\161\007:\001Z\007.\000\000\004\161\001^\000\000\000\000\000\000\004\161\000\000\0076\007:\000\000\007~\001b\000\000\000\000\004\161\000\000\000\000\001f\000\000\004\161\004\161\003\"\000\246\000\000\026N\000\000\000\000\000\000\001\162\007\230\004\161\000\000\007>\000\000\000\000\001\166\000\000\001\170\004\198\001\014\000\000\001\174\004\161\001\178\001\182\003N\002\250\r^\000\000\002\182\000\000\004\161\000\000\000\000\0036\001\018\004\161\004\161\003\"\002\202\000\000\000\000\000\000\000\000\001\218\004\161\004\161\004\161\001\022\001\026\001\030\003n\001&\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\197\003r\000\000\0016\007\226\023\222\000\000\003j\014.\001\198\001>\000\000\004\161\001B\000\000\002\238\000\000\000\000\0042\0046\000\000\004\161\004\205\004:\003\174\004B\007\030\026\250\007*\000\000\000\000\001F\001J\001N\001R\001V\000\000\000\000\000\000\001Z\007.\000\000\000\000\001^\000\000\000\000\003\174\024\n\000\000\0076\007:\000\000\007~\001b\000\000\000\000\022\018\000\000\000\000\001f\000\000\000\000\022*\000\000\000\000\000\000\000\000\000\000\000\000\027n\001\162\007\230\0246\000\000\007>\bF\000\000\001\166\022\018\001\170\004\198\001\014\000\000\001\174\022*\001\178\001\182\003N\002\250\rv\000\000\002\182\000\000\028\018\028\"\bJ\0036\001\018\004\197\000\000\000\000\002\202\000\000\000\000\000\000\000\000\001\218\024\154\000\000\000\000\001\022\001\026\001\030\003n\001&\001*\000\000\000\000\000\000\000\000\004\205\000\000\000\000\000\000\003r\000\000\0016\007\226\000\000\029\022\003j\014.\001\198\001>\000\000\000\000\001B\000\000\002\238\000\246\000\000\0042\0046\000\000\000\000\000\000\004:\000\000\004B\007\030\000\000\007*\000\000\000\000\001F\001J\001N\001R\001V\000\000\000\000\000\000\001Z\007.\000\000\000\000\001^\000\000\000\000\000\000\000\000\000\000\0076\007:\000\000\007~\001b\000\000\000\000\000\000\000\000\000\000\001f\000\000\007\250\000\000\000\000\000\000\007\158\000\000\000\000\000\000\000\000\001\162\007\230\b\026\000\000\007>\000\000\b&\001\166\000\000\001\170\004\198\000\000\004\001\001\174\000\000\001\178\001\182\004\001\003N\002\250\004\001\0012\002\182\000\000\b\178\000\000\000\000\0036\002\205\000\000\004\001\000\000\000\000\000\000\004\001\002\205\004\001\001\218\000\000\b\234\000\000\000\000\000\000\000\000\003R\000\000\002\205\011&\004\001\000\000\000\000\000\000\000\000\000\000\000\n\004\001\000\000\000\000\003^\000\000\000\000\rr\000\000\001\198\000\000\004\001\000\000\000\000\004\001\002\238\002\205\000\000\0042\0046\004\001\004\001\012%\004:\002\205\004B\000\000\r\138\007*\000\000\000\000\002\205\000\000\000\000\007\197\000\000\004\001\004\001\000\000\007\197\007.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0076\007:\004\001\004\001\r\234\002\205\004\001\004\001\000\000\007\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012%\000\000\011\234\000\000\012%\014\174\004\001\007>\000\000\000\000\000\000\012%\001\014\004\198\007\197\012%\000\000\004\001\003N\002\250\017\022\003\190\002\182\007\197\000\000\000\000\030>\0036\001\018\007\197\007\197\000\246\002\202\000\000\000\000\000\000\000\000\001\218\007\197\007\197\000\000\001\022\001\026\001\030\003n\001&\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003r\000\000\0016\007\226\000\000\000\000\003j\014.\001\198\001>\007\197\002\205\001B\000\000\002\238\000\246\000\000\0042\0046\007\197\000\000\002\205\004:\000\000\004B\007\030\000\000\007*\000\000\002\205\001F\001J\001N\001R\001V\000\000\028\246\000\n\001Z\007.\000\000\000\000\001^\000\000\000\000\000\000\000\000\002\205\0076\007:\000\000\007~\001b\002\205\000\000\002\205\000\000\000\000\001f\000\000\007\250\002\205\000\000\000\000\007\158\030B\000\000\000\000\002\205\001\162\007\230\b\026\000\000\007>\000\000\b&\001\166\000\000\001\170\004\198\001\014\000\000\001\174\000\000\001\178\001\182\003N\002\250\007\194\000\000\002\182\002\205\000\000\000\000\000\000\0036\001\018\000\000\000\000\000\000\002\202\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\000\001\022\001\026\001\030\003n\001&\001*\000\000\000\000\000\000\000\000\000\000\001\214\000\000\000\000\003r\000\000\0016\007\226\000\000\000\000\003j\r\146\001\198\001>\000\000\000\000\001B\000\000\002\238\001\218\000\000\0042\0046\000\000\000\000\000\000\004:\000\000\004B\007\030\000\000\007*\023\198\000\000\001F\001J\001N\001R\001V\000\000\000\000\000\000\001Z\007.\000\000\004\142\001^\024>\000\000\000\000\000\000\002\238\0076\007:\000\000\007~\001b\000\000\000\000\024V\000\000\000\000\001f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\162\007\230\000\000\000\000\007>\000\000\000\000\001\166\000\000\001\170\004\198\000\000\n%\001\174\000\006\001\178\001\182\000\254\002\246\002\250\002\026\003*\002\182\000\000\000\000\000\000\000\000\0036\000\000\000\000\022\182\000\000\n%\000\000\n%\n%\003\174\001\218\000\000\000\000\000\000\003:\000\000\003\178\003\182\000\000\000\000\000\000\022\186\000\000\003>\000\000\000\000\003\214\000\000\022\226\000\000\004\002\004\006\000\000\004\n\004\022\004\"\004&\004.\b\254\000\000\000\000\022\018\002\238\000\000\000\000\004\030\nZ\022*\000\000\000\000\n^\nb\nn\n\130\000\000\007*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0222\000\000\n\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\002\011\026\011\162\0076\007:\022:\023z\000\000\000\000\004\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n%\000\000\000\000\000\000\000\000\023\138\007>\nv\n%\000\000\000\000\n\142\004\198\011\182\012A\000\000\000\000\012A\000\000\000\254\012A\012A\002\254\000\000\012A\000\000\012A\000\000\000\000\012A\000\000\000\000\004\213\012A\012A\000\000\012A\012A\003\174\012A\000\000\012A\000\000\000Y\000\000\000\000\012A\000\000\000\000\012A\003\186\000\000\000Y\000\000\000\000\000\000\000Y\021\174\012A\000\000\012A\000\000\000\000\012A\000\000\012A\000\000\029\150\000\000\000\000\022\018\012A\000\000\000\000\012A\012A\022*\000\000\012A\012A\000Y\012A\000\000\012A\012A\000\000\000\000\000Y\000\000\000\000\000\000\000\000\0222\012A\000\000\000\000\012A\000\000\000\000\000\000\000Y\000\000\000\000\000\000\000\000\012A\012A\022:\022v\012A\000\000\012A\000\000\000\000\000\000\000\000\007Z\000\000\000Y\000\000\000\000\000\000\000\000\012A\012A\012A\000\000\012A\012A\026\206\012A\000\000\012A\000\000\012A\006y\012A\000\000\012A\000\000\006y\000\000\006y\006y\000\000\000Y\000\000\000\000\000\000\000\000\002\218\006y\000\000\006y\006y\006y\000\000\006y\006y\006y\000Y\t\149\000\000\000\000\004\161\000\000\000\000\004\161\000\000\000\000\000\000\006y\000\000\000\000\002\205\000\000\000\000\004\161\006y\006y\000\000\002\205\006y\004\161\t\149\000\000\006y\000\000\006y\000\000\000\000\006y\002\205\000\000\000\000\004\161\000\000\006y\006y\006y\000\n\000\000\004\161\000\000\005\141\015\t\006y\006y\000\000\000\000\000\000\000\000\004\161\006y\006y\004\161\002\205\006y\000\000\000\000\006y\004\161\003\"\005\141\002\205\000\000\000\000\005\141\006y\006y\006y\002\205\006y\006y\000\000\000\000\000\000\004\161\t\149\000\000\000\000\004\161\006y\000\000\006y\000\000\006y\000\000\000\000\006y\006y\000\000\004\161\004\161\002\205\006y\004\161\006\197\000\000\006y\000\000\006y\006\197\000\000\006\197\006\197\000\000\000\000\000\000\002\205\002\205\000\000\000\000\006\197\004\161\006\197\006\197\006\197\000\000\006\197\006\197\006\197\000\000\t\153\000\000\015\t\015\t\000\000\t\006\002\205\000\000\000\000\002\205\006\197\000\000\002\205\000\n\000\000\000\000\005\141\006\197\006\197\002\205\000\000\006\197\015\t\t\153\015\t\006\197\002\205\006\197\000\000\002\205\006\197\002\205\005\141\000\000\000\000\005\141\006\197\006\197\006\197\000\000\000\000\000\000\000\000\000\000\002\205\006\197\006\197\000\000\000\000\000\000\000\000\000\000\006\197\006\197\000\000\002\205\006\197\000\000\002\205\006\197\000\000\000\000\000\000\002\205\000\000\000\000\000\000\006\197\006\197\006\197\000\000\006\197\006\197\000\000\000\000\000\000\000\000\t\153\000\000\000\000\000\000\006\197\002\205\006\197\000\000\006\197\002\205\002\205\006\197\006\197\002\205\000\n\002\205\002\205\006\197\002\205\002\205\002\205\006\197\000\000\006\197\002\205\002\205\000\000\002\205\002\205\000\000\002\205\000\000\002\205\002\205\002\205\002\205\000\n\002\205\002\205\t\002\000\000\002\205\000\n\002\205\002\205\002\205\019~\002\205\000\000\002\205\002\205\000\n\002\205\002\205\002\205\002\205\002\205\000\000\002\205\002\205\002\205\000\000\000\000\002\205\002\205\000\000\002\205\002\205\002\205\002\205\002\205\002\205\002\205\002\205\002\205\002\205\002\205\002\205\002\205\002\205\000\000\000\000\002\205\002\205\002\205\002\205\002\205\000\000\002\205\000\000\000\000\002\205\000\000\000\000\002\205\002\205\000\000\019\186\002\205\000\000\002\205\002\205\000\000\002\205\000\000\000\000\002\205\002\205\002\205\002\205\002\205\000\000\000\000\000\000\000\000\000\000\002\205\000\000\000\000\002\205\002\205\000\000\000\000\000\000\002\205\002\205\000\000\000\000\000\000\002\205\000\000\002\205\000\000\000\000\002\205\002\205\000\000\000Y\000Y\002\205\002\205\002\205\000Y\000\000\000Y\000Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Y\000\000\000Y\000Y\000Y\000\000\000Y\000Y\000Y\000\000\000\000\000\000\000\000\000\254\000\000\000\000\002\254\000\000\000\000\000\000\000Y\000\000\000\000\000\000\000\000\000\000!\194\000Y\000Y\000\000\000\000\000Y\003\174\000\000\000\000\000Y\000\000\000Y\000\000\000\000\000Y\000\000\000\000\000\000\003\186\000\000\000Y\000Y\000Y\000\000\000\000\021\174\000\000\000\000\000\000\000Y\000Y\000\000\000\000\000\000\000\000\029\150\000Y\000\000\022\018\000\000\000Y\000\000\000\000\000Y\022*\000\000\000\000\000\000\000\000\000\000\000\000\000Y\000Y\000Y\000\000\000Y\000Y\000\000\000\000\000\000\0222\000\000\000\000\000\000!r\000Y\000\000\000Y\000\000\000Y\000\000\000\000\004b\000Y\000\000\022:\022v\000\000\000Y\004\221\000\000\007m\000Y\000A\000Y\000Y\000\000\000A\000A\000\000\000A\000A\000\000\000\000\000\000\000\000\000A\026\206\000\000\000\000\000\000\007m\000\000\000\000\000\000\000\000\000A\000\000\000\000\000\000\000A\000\000\000A\000A\000\000\000\000\000\000\000\000\000\000\000A\000\000\000\000\000A\000\000\000\000\000\000\000A\000A\000\000\000A\000A\000A\000A\000A\000A\000\000\000\000\000\000\000A\000\000\000\000\000A\000A\000\000\000\000\000\000\000A\000A\000A\000A\000\000\000A\000\000\000\000\000\000\000\000\000\000\007\221\000\000\000\000\000\000\000A\007\221\000\000\000\000\007\221\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\007\221\007i\000\000\000=\007\221\000\000\007\221\000=\000=\000\000\000=\000=\000\000\000\000\000\000\000\000\000=\000\000\007\221\000\000\000\000\007i\000A\000A\000\000\007\221\000=\000A\000A\000A\000=\000\000\000=\000=\000\000\007\221\000\000\000\000\007\221\000=\000\000\000\000\000=\000\000\007\221\007\221\000=\000=\000\000\000=\000=\000=\000=\000=\000=\000\000\000\000\000\000\000=\000\000\007\221\000=\000=\000\000\007\221\000\000\000=\000=\000=\000=\000\000\000=\000\000\000\000\000\000\007\221\007\221\021\194\000\000\007\221\007\221\000=\014m\000\000\000\000\014m\000\000\000\000\000\000\000=\000=\000=\000=\000=\022\246\014m\007y\007\221\014Q\000\000\000\000\014m\014Q\014Q\000\000\014Q\014Q\000\000\000\000\000\000\000\000\014Q\000\000\014m\000\000\000\000\007y\000=\000=\000\000\014m\014Q\000=\000=\000=\014Q\000\000\014Q\014Q\000\000\014m\000\000\000\000\014m\014Q\000\000\000\000\014Q\000\000\014m\000\000\014Q\014Q\000\000\014Q\014Q\014Q\014Q\014Q\014Q\000\000\000\000\000\000\014Q\000\000\014m\014Q\014Q\000\000\014m\000\000\014Q\014Q\014Q\014Q\000\000\014Q\000\000\000\000\000\000\014m\014m\000\000\000\000\014m\000\000\014Q\000\000\000\000\000\000!j\000\000\000\000\000\000\014Q\014Q\014Q\014Q\014Q\000\000\000\000\007u\014m\014M\000\000\000\000\000\000\014M\014M\000\000\014M\014M\000\000\000\000\000\000\000\000\014M\000\000\000\000\000\000\000\000\007u\014Q\014Q\000\000\000\000\014M\014Q\014Q\014Q\014M\000\000\014M\014M\000\000\000\000\000\000\000\000\000\000\014M\000\000\000\000\014M\000\000\000\000\000\000\014M\014M\000\000\014M\014M\014M\014M\014M\014M\001\210\002\178\000\000\014M\002\182\000\000\014M\014M\000\000\000\000\000\000\014M\014M\014M\014M\000\000\014M\000\000\000\000\001\218\002\186\001\238\002\194\000\000\000\000\000\000\014M\000\000\000\000\001\250\000\000\000\000\000\000\000\000\014M\014M\014M\014M\014M\000\000\000\000\000\000\000\000\002\198\002\206\004^\000\000\000\000\000\000\002\226\000\000\002\238\004n\004z\000\000\000\000\000\000\000\000\000\000\026&\000\000\026*\014M\014M\000\000\n\017\n\017\014M\014M\014M\n\017\000\000\001\214\n\017\000\000\000\000\004\138\000\000\000\000\000\000\000\000\n\017\000\000\n\017\n\017\n\017\007:\n\017\n\017\n\017\000\000\000\000\000\000\000\000\000\000\000\000\0266\000\000\000\000\014\201\014\181\n\017\000\000\000\000\000\000\000\000\000\000\000\000\n\017\n\017\000\000\000\000\n\017\000\000\026:\000\000\004\142\000\000\n\017\014\201\000\000\n\017\002&\002\250\000\000\002*\000\000\n\017\n\017\n\017\000\000\000\000\0022\000\000\000\000\000\000\n\017\n\017\000\000\0026\000\000\001\218\002>\n\017\014\181\000\000\000\000\005\018\000\000\000\000\n\017\000\000\000\000\000\000\026\238\000\000\000\000\000\000\n\017\n\017\n\017\000\000\n\017\n\017\000\000\028.\000]\003\226\002B\0282\000\000\000\000\n\017\002\238\n\017\000]\n\017\000\000\000\000\000]\n\017\028b\000\000\000\000\000\000\n\017\000\000\000\000\000\000\n\017\000\000\n\017\n\017\014\137\014\137\000\000\000\000\000\000\014\137\000\000\001\214\014\137\000\000\000]\000\000\028r\000\000\000\000\000\000\005&\000]\014\137\014\137\014\137\002F\014\137\014\137\014\137\000\000\000\000\000\000\000\000\000\000\000]\000\000\000\000\000\000\014\201\014\181\014\137\000\000\000\000\000\000\000\000\000\000\000\000\014\137\014\137\000\000\000\000\014\137\000]\000\000\000\000\004\142\000\000\014\137\014\201\000\000\014\137\002&\000\000\000\000\002*\000\000\014\137\014\137\014\137\000\000\000\000\003\n\000\000\000\000\000\000\014\137\014\137\000\000\0026\000]\000\000\002>\014\137\014\181\005\190\000\000\005\018\000\000\000\000\014\137\000\000\000\000\000\000\000\000\000]\000\000\000\000\014\137\014\137\014\137\000\000\014\137\014\137\000\000\000\000\000]\000\000\002B\000\000\000\000\000\000\014\137\000\000\014\137\000]\014\137\000\000\000\000\000]\014\137\000\000\000\000\000\000\000\000\014\137\000\000\000\000\000\000\014\137\000\000\014\137\014\137\n\021\n\021\000\000\000\000\000\000\n\021\000\000\001\214\n\021\000\000\000]\000\000\000\000\000\000\000\000\000\000\n\021\000]\n\021\n\021\n\021\002F\n\021\n\021\n\021\000\000\000\000\000\000\000\000\000\000\000]\000\000\000\000\000\000\000\000\000\000\n\021\000\000\000\000\000\000\000\000\000\000\000\000\n\021\n\021\000\000\000\000\n\021\000]\000\000\000\000\004\142\000\000\n\021\000\000\000\000\n\021\000\000\000\000\n\206\000\000\000\000\n\021\n\021\n\021\000\000\002\014\000\000\000\000\000\000\000\000\n\021\n\021\000\000\000\000\000]\002\018\000\000\n\021\000\000\020r\000\000\005\018\000\000\001\218\n\021\000\000\000\000\000\000\000\000\000]\000\000\000\000\n\021\n\021\n\021\000\000\n\021\n\021\000\000\000\000\000\000\003\146\000\000\000\000\000\000\0212\n\021\t*\n\021\001\230\n\021\000\000\002\014\000\000\n\021\002\238\000\000\000\000\000\000\n\021\000\000\012M\002\018\n\021\012M\n\021\n\021\003N\002\250\000\000\001\218\002\182\000\000\000\000\000\000\000\000\0036\000\000\000\000\000\000\012M\012M\000\000\012M\012M\t.\001\218\000\000\003\146\000\000\000\000\000\000\000\000\003R\t*\000\000\001\230\000\000\000\000\000\000\000\000\000\000\002\238\000\000\000\000\012M\000\000\003^\000\000\000\000\003j\0112\001\198\000\000\000\000\000\000\000\000\000\000\002\238\000\000\000\000\0042\0046\000\000\000\000\012M\004:\000\000\004B\007\030\000\000\007*\t.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012M\000\000\000\000\007.\012I\000\000\000\000\012I\000\000\000\000\003N\002\250\0076\007:\002\182\007~\012M\000\000\012M\0036\000\000\000\000\000\000\012I\012I\000\000\012I\012I\000\000\001\218\012M\012M\000\000\000\000\012M\012M\003R\007>\000\000\012M\000\000\012M\000\000\004\198\000\000\012M\000\000\000\000\012I\000\000\003^\000\000\000\000\007\190\000\000\001\198\000\000\000\000\005\145\015\t\000\000\002\238\000\000\000\000\0042\0046\000\000\000\000\012I\004:\000\000\004B\007\030\000\000\007*\000\000\000\000\005\145\000\000\000\000\000\000\005\145\000\000\012I\000\000\000\000\007.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0076\007:\000\000\007~\012I\000\000\012I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\141\014\141\012I\012I\000\000\014\141\012I\012I\014\141\007>\000\000\012I\000\000\012I\000\000\004\198\004\246\012I\014\141\014\141\014\141\000\000\014\141\014\141\014\141\000\000\000\000\000\217\015\t\015\t\000\000\000\000\000\217\000\000\000\000\000\000\014\141\000\000\000\000\000\000\000\000\000\000\005\145\014\141\014\141\000\000\000\000\014\141\015\t\000\000\015\t\000\217\000\000\014\141\000\000\000\000\014\141\000\000\005\145\000\000\000\000\005\145\014\141\014\141\014\141\000\000\000\000\000\000\000\000\000\000\000\000\014\141\014\141\000\000\000\217\000\000\023\206\000\000\014\141\000\000\000\000\000\000\014\141\000\217\000\000\014\141\000\000\000\000\000\000\000\217\000\000\000\000\000\000\014\141\014\141\014\141\000\000\014\141\014\141\000\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\141\000\000\014\141\000\000\014\141\000\000\003\r\003\r\014\141\000\000\000\000\003\r\000\000\014\141\003\r\021n\000\000\014\141\000\217\014\141\014\141\000\000\002\014\000\000\003\r\003\r\003\r\000\217\003\r\003\r\003\r\000\000\002\018\000\000\000\000\000\000\000\000\000\000\021~\000\000\001\218\000\000\003\r\000\000\000\000\002\014\000\000\000\000\000\000\003\r\004\210\000\000\000\000\003\r\000\000\002\018\000\000\000\000\003\146\003\r\000\000\000\000\003\r\001\218\t*\000\000\001\230\000\000\003\r\003\r\003\r\000\000\002\238\000\000\000\000\000\000\000\000\003\r\003\r\000\000\000\000\003\146\000\000\000\000\003\r\000\000\000\000\t*\003\r\001\230\000\000\003\r\000\000\000\000\000\000\002\238\000\000\000\000\000\000\003\r\003\r\003\r\t.\003\r\003\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\r\000\000\003\r\000\000\003\r\000\000\r\237\r\237\003\r\000\000\000\000\r\237\t.\003\r\r\237\000\000\000\000\003\r\000\000\003\r\003\r\000\000\000\000\000\000\r\237\r\237\r\237\000\000\r\237\r\237\r\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\237\000\000\000\000\000\000\000\000\000\000\000\000\r\237\004\226\000\000\000\000\r\237\000\000\000\000\000\000\000\000\000\000\r\237\000\000\000\000\r\237\000\000\000\000\000\000\000\000\000\000\r\237\r\237\r\237\000\000\000\000\000\000\000\000\000\000\000\000\r\237\r\237\000\000\000\000\000\000\000\000\000\000\r\237\000\000\000\000\000\000\r\237\000\000\000\000\r\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\237\r\237\r\237\000\000\r\237\r\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\237\000\000\r\237\000\000\r\237\000\000\r\253\r\253\r\237\000\000\000\000\r\253\000\000\r\237\r\253\000\000\000\000\r\237\000\000\r\237\r\237\000\000\000\000\000\000\r\253\r\253\r\253\000\000\r\253\r\253\r\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\253\000\000\000\000\000\000\000\000\000\000\000\000\r\253\004\226\000\000\000\000\r\253\000\000\000\000\000\000\000\000\000\000\r\253\000\000\000\000\r\253\000\000\000\000\000\000\000\000\000\000\r\253\r\253\r\253\000\000\000\000\000\000\000\000\000\000\000\000\r\253\r\253\000\000\000\000\000\000\000\000\000\000\r\253\000\000\000\000\000\000\r\253\000\000\000\000\r\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\253\r\253\r\253\000\000\r\253\r\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\253\000\000\r\253\000\000\r\253\000\000\r\249\r\249\r\253\000\000\000\000\r\249\000\000\r\253\r\249\000\000\000\000\r\253\000\000\r\253\r\253\000\000\000\000\000\000\r\249\r\249\r\249\000\000\r\249\r\249\r\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\249\000\000\000\000\000\000\000\000\000\000\000\000\r\249\004\210\000\000\000\000\r\249\000\000\000\000\000\000\000\000\000\000\r\249\000\000\000\000\r\249\000\000\000\000\000\000\000\000\000\000\r\249\r\249\r\249\000\000\000\000\000\000\000\000\000\000\000\000\r\249\r\249\000\000\000\000\000\000\000\000\000\000\r\249\000\000\000\000\000\000\r\249\000\000\000\000\r\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\249\r\249\r\249\000\000\r\249\r\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\249\000\000\r\249\000\000\r\249\000\000\r\165\r\165\r\249\000\000\000\000\r\165\000\000\r\249\r\165\000\000\000\000\r\249\000\000\r\249\r\249\000\000\000\000\000\000\r\165\r\165\r\165\000\000\r\165\r\165\r\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\165\000\000\000\000\000\000\000\000\000\000\000\000\r\165\004\226\000\000\000\000\r\165\000\000\000\000\000\000\000\000\000\000\r\165\000\000\000\000\r\165\000\000\000\000\000\000\000\000\000\000\r\165\r\165\r\165\000\000\000\000\000\000\000\000\000\000\000\000\r\165\r\165\000\000\000\000\000\000\000\000\000\000\r\165\000\000\000\000\000\000\r\165\000\000\000\000\r\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\165\r\165\r\165\000\000\r\165\r\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\165\000\000\r\165\000\000\r\165\000\000\r\161\r\161\r\165\000\000\000\000\r\161\000\000\r\165\r\161\000\000\000\000\r\165\000\000\r\165\r\165\000\000\000\000\000\000\r\161\r\161\r\161\000\000\r\161\r\161\r\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\161\000\000\000\000\000\000\000\000\000\000\000\000\r\161\004\210\000\000\000\000\r\161\000\000\000\000\000\000\000\000\000\000\r\161\000\000\000\000\r\161\000\000\000\000\000\000\000\000\000\000\r\161\r\161\r\161\000\000\000\000\000\000\000\000\000\000\000\000\r\161\r\161\000\000\000\000\000\000\000\000\000\000\r\161\000\000\000\000\000\000\r\161\000\000\000\000\r\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\161\r\161\r\161\000\000\r\161\r\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\161\000\000\r\161\000\000\r\161\000\000\r\181\r\181\r\161\000\000\000\000\r\181\000\000\r\161\r\181\000\000\000\000\r\161\000\000\r\161\r\161\000\000\000\000\000\000\r\181\r\181\r\181\000\000\r\181\r\181\r\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\181\000\000\000\000\000\000\000\000\000\000\000\000\r\181\004\226\000\000\000\000\r\181\000\000\000\000\000\000\000\000\000\000\r\181\000\000\000\000\r\181\000\000\000\000\000\000\000\000\000\000\r\181\r\181\r\181\000\000\000\000\000\000\000\000\000\000\000\000\r\181\r\181\000\000\000\000\000\000\000\000\000\000\r\181\000\000\000\000\000\000\r\181\000\000\000\000\r\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\181\r\181\r\181\000\000\r\181\r\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\181\000\000\r\181\000\000\r\181\000\000\r\177\r\177\r\181\000\000\000\000\r\177\000\000\r\181\r\177\000\000\000\000\r\181\000\000\r\181\r\181\000\000\000\000\000\000\r\177\r\177\r\177\000\000\r\177\r\177\r\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\177\000\000\000\000\000\000\000\000\000\000\000\000\r\177\004\210\000\000\000\000\r\177\000\000\000\000\000\000\000\000\000\000\r\177\000\000\000\000\r\177\000\000\000\000\000\000\000\000\000\000\r\177\r\177\r\177\000\000\000\000\000\000\000\000\000\000\000\000\r\177\r\177\000\000\000\000\000\000\000\000\000\000\r\177\000\000\000\000\000\000\r\177\000\000\000\000\r\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\177\r\177\r\177\000\000\r\177\r\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\177\000\000\r\177\000\000\r\177\000\000\r\189\r\189\r\177\000\000\000\000\r\189\000\000\r\177\r\189\000\000\000\000\r\177\000\000\r\177\r\177\000\000\000\000\000\000\r\189\r\189\r\189\000\000\r\189\r\189\r\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\189\000\000\000\000\000\000\000\000\000\000\000\000\r\189\004\226\000\000\000\000\r\189\000\000\000\000\000\000\000\000\000\000\r\189\000\000\000\000\r\189\000\000\000\000\000\000\000\000\000\000\r\189\r\189\r\189\000\000\000\000\000\000\000\000\000\000\000\000\r\189\r\189\000\000\000\000\000\000\000\000\000\000\r\189\000\000\000\000\000\000\r\189\000\000\000\000\r\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\189\r\189\r\189\000\000\r\189\r\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\189\000\000\r\189\000\000\r\189\000\000\r\185\r\185\r\189\000\000\000\000\r\185\000\000\r\189\r\185\000\000\000\000\r\189\000\000\r\189\r\189\000\000\000\000\000\000\r\185\r\185\r\185\000\000\r\185\r\185\r\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\185\000\000\000\000\000\000\000\000\000\000\000\000\r\185\004\210\000\000\000\000\r\185\000\000\000\000\000\000\000\000\000\000\r\185\000\000\000\000\r\185\000\000\000\000\000\000\000\000\000\000\r\185\r\185\r\185\000\000\000\000\000\000\000\000\000\000\000\000\r\185\r\185\000\000\000\000\000\000\000\000\000\000\r\185\000\000\000\000\000\000\r\185\000\000\000\000\r\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\185\r\185\r\185\000\000\r\185\r\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\185\000\000\r\185\000\000\r\185\000\000\r\173\r\173\r\185\000\000\000\000\r\173\000\000\r\185\r\173\000\000\000\000\r\185\000\000\r\185\r\185\000\000\000\000\000\000\r\173\r\173\r\173\000\000\r\173\r\173\r\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\173\000\000\000\000\000\000\000\000\000\000\000\000\r\173\004\226\000\000\000\000\r\173\000\000\000\000\000\000\000\000\000\000\r\173\000\000\000\000\r\173\000\000\000\000\000\000\000\000\000\000\r\173\r\173\r\173\000\000\000\000\000\000\000\000\000\000\000\000\r\173\r\173\000\000\000\000\000\000\000\000\000\000\r\173\000\000\000\000\000\000\r\173\000\000\000\000\r\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\173\r\173\r\173\000\000\r\173\r\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\173\000\000\r\173\000\000\r\173\000\000\r\169\r\169\r\173\000\000\000\000\r\169\000\000\r\173\r\169\000\000\000\000\r\173\000\000\r\173\r\173\000\000\000\000\000\000\r\169\r\169\r\169\000\000\r\169\r\169\r\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\169\000\000\000\000\000\000\000\000\000\000\000\000\r\169\004\210\000\000\000\000\r\169\000\000\000\000\000\000\000\000\000\000\r\169\000\000\000\000\r\169\000\000\000\000\000\000\000\000\000\000\r\169\r\169\r\169\000\000\000\000\000\000\000\000\000\000\000\000\r\169\r\169\000\000\000\000\000\000\000\000\000\000\r\169\000\000\000\000\000\000\r\169\000\000\000\000\r\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\169\r\169\r\169\000\000\r\169\r\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\169\000\000\r\169\000\000\r\169\000\000\r\233\r\233\r\169\000\000\000\000\r\233\000\000\r\169\r\233\000\000\000\000\r\169\000\000\r\169\r\169\000\000\000\000\000\000\r\233\r\233\r\233\000\000\r\233\r\233\r\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\233\000\000\000\000\000\000\000\000\000\000\000\000\r\233\004\210\000\000\000\000\r\233\000\000\000\000\000\000\000\000\000\000\r\233\000\000\000\000\r\233\000\000\000\000\000\000\000\000\000\000\r\233\r\233\r\233\000\000\000\000\000\000\000\000\000\000\000\000\r\233\r\233\000\000\000\000\000\000\000\000\000\000\r\233\000\000\000\000\000\000\r\233\000\000\000\000\r\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\233\r\233\r\233\000\000\r\233\r\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\233\000\000\r\233\000\000\r\233\000\000\r\213\r\213\r\233\000\000\000\000\r\213\000\000\r\233\r\213\000\000\000\000\r\233\000\000\r\233\r\233\000\000\000\000\000\000\r\213\r\213\r\213\000\000\r\213\r\213\r\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\213\000\000\000\000\000\000\000\000\000\000\000\000\r\213\004\226\000\000\000\000\r\213\000\000\000\000\000\000\000\000\000\000\r\213\000\000\000\000\r\213\000\000\000\000\000\000\000\000\000\000\r\213\r\213\r\213\000\000\000\000\000\000\000\000\000\000\000\000\r\213\r\213\000\000\000\000\000\000\000\000\000\000\r\213\000\000\000\000\000\000\r\213\000\000\000\000\r\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\213\r\213\r\213\000\000\r\213\r\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\213\000\000\r\213\000\000\r\213\000\000\r\209\r\209\r\213\000\000\000\000\r\209\000\000\r\213\r\209\000\000\000\000\r\213\000\000\r\213\r\213\000\000\000\000\000\000\r\209\r\209\r\209\000\000\r\209\r\209\r\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\209\000\000\000\000\000\000\000\000\000\000\000\000\r\209\004\210\000\000\000\000\r\209\000\000\000\000\000\000\000\000\000\000\r\209\000\000\000\000\r\209\000\000\000\000\000\000\000\000\000\000\r\209\r\209\r\209\000\000\000\000\000\000\000\000\000\000\000\000\r\209\r\209\000\000\000\000\000\000\000\000\000\000\r\209\000\000\000\000\000\000\r\209\000\000\000\000\r\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\209\r\209\r\209\000\000\r\209\r\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\209\000\000\r\209\000\000\r\209\000\000\r\221\r\221\r\209\000\000\000\000\r\221\000\000\r\209\r\221\000\000\000\000\r\209\000\000\r\209\r\209\000\000\000\000\000\000\r\221\r\221\r\221\000\000\r\221\r\221\r\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\221\000\000\000\000\000\000\000\000\000\000\000\000\r\221\004\226\000\000\000\000\r\221\000\000\000\000\000\000\000\000\000\000\r\221\000\000\000\000\r\221\000\000\000\000\000\000\000\000\000\000\r\221\r\221\r\221\000\000\000\000\000\000\000\000\000\000\000\000\r\221\r\221\000\000\000\000\000\000\000\000\000\000\r\221\000\000\000\000\000\000\r\221\000\000\000\000\r\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\221\r\221\r\221\000\000\r\221\r\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\221\000\000\r\221\000\000\r\221\000\000\r\217\r\217\r\221\000\000\000\000\r\217\000\000\r\221\r\217\000\000\000\000\r\221\000\000\r\221\r\221\000\000\000\000\000\000\r\217\r\217\r\217\000\000\r\217\r\217\r\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\217\000\000\000\000\000\000\000\000\000\000\000\000\r\217\004\210\000\000\000\000\r\217\000\000\000\000\000\000\000\000\000\000\r\217\000\000\000\000\r\217\000\000\000\000\000\000\000\000\000\000\r\217\r\217\r\217\000\000\000\000\000\000\000\000\000\000\000\000\r\217\r\217\000\000\000\000\000\000\000\000\000\000\r\217\000\000\000\000\000\000\r\217\000\000\000\000\r\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\217\r\217\r\217\000\000\r\217\r\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\217\000\000\r\217\000\000\r\217\000\000\r\205\r\205\r\217\000\000\000\000\r\205\000\000\r\217\r\205\000\000\000\000\r\217\000\000\r\217\r\217\000\000\000\000\000\000\r\205\r\205\r\205\000\000\r\205\r\205\r\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\205\000\000\000\000\000\000\000\000\000\000\000\000\r\205\004\226\000\000\000\000\r\205\000\000\000\000\000\000\000\000\000\000\r\205\000\000\000\000\r\205\000\000\000\000\000\000\000\000\000\000\r\205\r\205\r\205\000\000\000\000\000\000\000\000\000\000\000\000\r\205\r\205\000\000\000\000\000\000\000\000\000\000\r\205\000\000\000\000\000\000\r\205\000\000\000\000\r\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\205\r\205\r\205\000\000\r\205\r\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\205\000\000\r\205\000\000\r\205\000\000\r\201\r\201\r\205\000\000\000\000\r\201\000\000\r\205\r\201\000\000\000\000\r\205\000\000\r\205\r\205\000\000\000\000\000\000\r\201\r\201\r\201\000\000\r\201\r\201\r\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\201\000\000\000\000\000\000\000\000\000\000\000\000\r\201\004\210\000\000\000\000\r\201\000\000\000\000\000\000\000\000\000\000\r\201\000\000\000\000\r\201\000\000\000\000\000\000\000\000\000\000\r\201\r\201\r\201\000\000\000\000\000\000\000\000\000\000\000\000\r\201\r\201\000\000\000\000\000\000\000\000\000\000\r\201\000\000\000\000\000\000\r\201\000\000\000\000\r\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\201\r\201\r\201\000\000\r\201\r\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\201\000\000\r\201\000\000\r\201\000\000\r\229\r\229\r\201\000\000\000\000\r\229\000\000\r\201\r\229\000\000\000\000\r\201\000\000\r\201\r\201\000\000\000\000\000\000\r\229\r\229\r\229\000\000\r\229\r\229\r\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\229\000\000\000\000\000\000\000\000\000\000\000\000\r\229\004\226\000\000\000\000\r\229\000\000\000\000\000\000\000\000\000\000\r\229\000\000\000\000\r\229\000\000\000\000\000\000\000\000\000\000\r\229\r\229\r\229\000\000\000\000\000\000\000\000\000\000\000\000\r\229\r\229\000\000\000\000\000\000\000\000\000\000\r\229\000\000\000\000\000\000\r\229\000\000\000\000\r\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\229\r\229\r\229\000\000\r\229\r\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\229\000\000\r\229\000\000\r\229\000\000\r\225\r\225\r\229\000\000\000\000\r\225\000\000\r\229\r\225\000\000\000\000\r\229\000\000\r\229\r\229\000\000\000\000\000\000\r\225\r\225\r\225\000\000\r\225\r\225\r\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\225\000\000\000\000\000\000\000\000\000\000\000\000\r\225\004\210\000\000\000\000\r\225\000\000\000\000\000\000\000\000\000\000\r\225\000\000\000\000\r\225\000\000\000\000\000\000\000\000\000\000\r\225\r\225\r\225\000\000\000\000\000\000\000\000\000\000\000\000\r\225\r\225\000\000\000\000\000\000\000\000\000\000\r\225\000\000\000\000\000\000\r\225\000\000\000\000\r\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\225\r\225\r\225\000\000\r\225\r\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\225\000\000\r\225\000\000\r\225\000\000\r\197\r\197\r\225\000\000\000\000\r\197\000\000\r\225\r\197\000\000\000\000\r\225\000\000\r\225\r\225\000\000\000\000\000\000\r\197\r\197\r\197\000\000\r\197\r\197\r\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\197\000\000\000\000\000\000\000\000\000\000\000\000\r\197\004\226\000\000\000\000\r\197\000\000\000\000\000\000\000\000\000\000\r\197\000\000\000\000\r\197\000\000\000\000\000\000\000\000\000\000\r\197\r\197\r\197\000\000\000\000\000\000\000\000\000\000\000\000\r\197\r\197\000\000\000\000\000\000\000\000\000\000\r\197\000\000\000\000\000\000\r\197\000\000\000\000\r\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\197\r\197\r\197\000\000\r\197\r\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\197\000\000\r\197\000\000\r\197\000\000\r\193\r\193\r\197\000\000\000\000\r\193\000\000\r\197\r\193\000\000\000\000\r\197\000\000\r\197\r\197\000\000\000\000\000\000\r\193\r\193\r\193\000\000\r\193\r\193\r\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\193\000\000\000\000\000\000\000\000\000\000\000\000\r\193\004\210\000\000\000\000\r\193\000\000\000\000\000\000\000\000\000\000\r\193\000\000\000\000\r\193\000\000\000\000\000\000\000\000\000\000\r\193\r\193\r\193\000\000\000\000\000\000\000\000\000\000\000\000\r\193\r\193\000\000\000\000\000\000\000\000\000\000\r\193\000\000\000\000\000\000\r\193\000\000\000\000\r\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\193\r\193\r\193\000\000\r\193\r\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\193\000\000\r\193\000\000\r\193\000\000\r\245\r\245\r\193\000\000\000\000\r\245\000\000\r\193\r\245\000\000\000\000\r\193\000\000\r\193\r\193\000\000\000\000\000\000\r\245\r\245\r\245\000\000\r\245\r\245\r\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\245\000\000\000\000\000\000\000\000\000\000\000\000\r\245\004\226\000\000\000\000\r\245\000\000\000\000\000\000\000\000\000\000\r\245\000\000\000\000\r\245\000\000\000\000\000\000\000\000\000\000\r\245\r\245\r\245\000\000\000\000\000\000\000\000\000\000\000\000\r\245\r\245\000\000\000\000\000\000\000\000\000\000\r\245\000\000\000\000\000\000\r\245\000\000\000\000\r\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\245\r\245\r\245\000\000\r\245\r\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\245\000\000\r\245\000\000\r\245\000\000\r\241\r\241\r\245\000\000\000\000\r\241\000\000\r\245\r\241\000\000\000\000\r\245\000\000\r\245\r\245\000\000\000\000\000\000\r\241\r\241\r\241\000\000\r\241\r\241\r\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\241\000\000\000\000\000\000\000\000\000\000\000\000\r\241\004\210\000\000\000\000\r\241\000\000\000\000\000\000\000\000\000\000\r\241\000\000\000\000\r\241\000\000\000\000\000\000\000\000\000\000\r\241\r\241\r\241\000\000\000\000\000\000\000\000\000\000\000\000\r\241\r\241\000\000\000\000\000\000\000\000\000\000\r\241\000\000\000\000\000\000\r\241\000\000\000\000\r\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\241\r\241\r\241\000\000\r\241\r\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\241\000\000\r\241\000\000\r\241\000\000\001\201\001\201\r\241\000\000\000\000\001\201\000\000\r\241\001\201\000\000\000\000\r\241\000\000\r\241\r\241\000\000\000\000\000\000\001\201\001\201\001\201\000\000\001\201\001\201\001\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\201\000\000\000\000\000\000\000\000\000\000\000\000\001\201\001\201\000\000\000\000\001\201\000\000\000\000\000\000\000\000\000\000\001\201\000\000\000\000\001\201\000\000\000\000\000\000\000\000\000\000\001\201\001\201\001\201\000\000\000\000\000\000\000\000\000\000\000\000\001\201\001\201\000\000\000\000\000\000\000\000\000\000\001\201\000\000\000\000\000\000\001\201\000\000\000\000\001\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\201\001\201\001\201\000\000\001\201\001\201\000\000\000\000\000\000\000\000\000\000\003N\002\250\000\000\001\201\002\182\001\201\b\178\001\201\000\000\0036\000\000\001\201\000\000\000\000\000\000\000\000\001\201\000\000\000\000\001\218\005j\b\234\001\201\000\000\000\000\000\000\003R\000\000\000\000\011&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003^\000\000\000\000\rr\004\181\001\198\000\000\000\000\000\000\000\254\000\000\002\238\002\254\000\000\0042\0046\000\000\000\000\012%\004:\000\000\004B\003\170\r\138\007*\000\000\004\181\000\000\003\174\000\000\000\000\000\000\000\000\004M\000\000\000\000\007.\000\000\000\000\000\000\003\186\000\000\000\000\000\000\000\000\0076\007:\021\174\000\000\r\234\000\000\005\221\005\221\000\000\000\000\000\000\005\221\029\150\000\000\005\221\022\018\000\000\000\000\012%\000\000\000\000\022*\012%\012%\005\221\007>\005\221\000\000\005\221\012%\005\221\004\198\000\000\012%\004M\000\000\000\000\0222\000\000\000\000\000\000\000\000\005\221\000\000\000\000\000\000\000\000\000\000\000\000\005\221\005\221\000\000\022:\022v\000\000\005\221\004\181\004\181\000\000\005\221\n!\000\000\005\221\017\250\000\000\000\000\000\000\000\000\005\221\005\221\005\221\000\000\000\000\000\000\026\206\000\000\012r\000\000\000\000\015\170\n!\000\000\n!\n!\005\221\005\221\000\000\000\000\005\221\000\000\012\170\012\194\012\202\012\178\012\210\000\000\000\000\000\000\000\000\005\221\005\221\005\221\000\000\005\221\005\221\012\218\012\226\000\000\000\000\t\214\000\000\000\000\000\000\000\000\000\000\012\234\000\000\005\221\000\000\000\000\005\221\005\221\000\000\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\000\001\014\005\221\012z\012\186\012\242\012\250\r\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\018\000\000\001\018\000\000\000\000\018\002\002\202\000\000\000\000\000\000\r\026\000\000\000\000\000\000\000\000\001\022\001\026\001\030\001\"\001&\001*\000\000\000\000\000\000\r:\n!\000\000\rB\r\002\001.\000\000\0016\001:\n!\r\"\000\000\000\000\000\000\001>\000\000\000\000\001B\r*\r2\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001F\001J\001N\001R\001V\000\000\000\000\000\000\001Z\000\000\000\000\000\000\001^\003M\003M\000\000\000\000\000\000\003M\000\000\000\000\003M\001b\000\000\000\000\000\000\000\000\000\000\001f\003M\003M\003M\000\000\003M\003M\003M\000\000\003M\000\000\001\162 \134\000\000\000\000\000\000\000\000\000\000\001\166\003M\001\170\003M\000\000\003M\001\174\003M\001\178\001\182\003M\003M\000\000\000\000\000\000\000\000\005e\000\000\000\000\003M\003M\000\000\000\000\003M\000\000\000\000\003M\003M\000\000\003M\003M\003M\005i\000\000\000\000\000\000\003M\000\000\000\000\003M\000\000\000\000\000\000\000\000\000\000\003M\003M\003M\000\000\003M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003M\003M\003M\000\000\003M\003M\000\000\005\209\005\209\000\000\005e\000\000\005\209\000\000\000\000\005\209\003M\003M\003M\003M\003M\003M\003M\000\000\000\000\005\209\005i\005\209\000\000\005\209\000\000\005\209\000\000\003M\003M\003M\000\000\000\000\003M\000\000\000\000\000\000\000\000\005\209\000\000\000\000\000\000\000\000\000\000\003M\005\209\005\209\000\000\000\000\000\000\000\000\n\030\000\000\000\000\000\000\005\209\007\217\000\000\005\209\001Y\000\000\000\000\000\000\000\000\005\209\005\209\000\246\016\242\000\000\000\000\000\000\000\000\012r\000\000\000\000\007\217\000\000\000\000\001Y\007\217\005\209\005\209\000\000\000\000\005\209\000\000\012\170\012\194\012\202\012\178\012\210\000\000\000\000\000\000\000\000\005\209\005\209\005\209\000\000\005\209\005\209\012\218\012\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\234\000\000\005\209\000\000\000\000\005\209\005\209\000\000\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\209\012z\012\186\012\242\012\250\r\n\000\000\000\000\000\000\000\000\000\000\000\000\007\217\r\018\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\r\026\000\000\000\000\000\000\000\000\016\246\000\000\001a\000\000\000\000\000\000\000\000\000\000\000\000\r:\001Y\000\000\rB\r\002\000\000\012r\000\000\000\000\001Y\r\"\000\000\001a\000\000\000\000\000\000\000\000\001Y\r*\r2\012\170\012\194\012\202\012\178\012\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\165\012\218\012\226\000\000\000\000\014\165\000\000\000\000\014\165\000\000\000\000\012\234\000\000\000\000\000\000\000\000\000\000\000\000\014\165\000\000\000\246\000\000\014\165\000\000\014\165\000\000\000\000\000\000\000\000\012z\012\186\012\242\012\250\r\n\000\000\000\000\014\165\000\000\000\000\000\000\000\000\r\018\000\000\014\165\000\000\000\000\001a\000\000\000\000\000\000\000\000\r\026\000\000\000\000\000\000\000\000\014\165\000\000\001]\000\000\000\000\000\000\014\165\014\165\000\000\r:\001a\000\000\rB\r\002\000\000\012r\000\000\000\000\001a\r\"\000\000\001]\014\165\000\000\000\000\000\000\001a\r*\r2\012\170\012\194\012\202\012\178\012\210\000\000\000\000\000\000\014\165\014\165\002\174\000\000\014\165\014\165\000\000\012\218\012\226\000\000\000\000\000\000\000\000\000\000\014\165\000\000\000\000\012\234\000\000\031\202\000\000\000\000\014\165\000\000\000\000\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\000\014\165\000\000\012z\012\186\012\242\012\250\r\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\018\000\000\000\000\000\000\000\000\001]\001\014\000\000\000\000\000\000\r\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\018\000\000\r:\001]\000\000\rB\r\002\000\000\000\000\000\000\000\000\001]\r\"\001\022\001\026\001\030\001\"\001&\001*\001]\r*\r2\000\000\000\000\000\000\000\000\000\000\001.\000\000\0016\001:\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001F\001J\001N\001R\001V\000\000\000\000\000\000\001Z\000\000\000\000\000\000\001^\tm\tm\000\000\000\000\000\000\tm\000\000\000\000\tm\001b\000\000\000\000\000\000\000\000\000\000\001f\000\000\000\000\tm\000\000\tm\000\000\tm\000\000\tm\000\000\001\162 \162\000\000\000\000\000\000\000\000\000\000\001\166\000\000\001\170\tm\000\000\000\000\001\174\000\000\001\178\001\182\tm\tm\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tm\000\000\000\000\tm\000\000\000\000\000\000\000\000\000\000\tm\tm\tm\015U\015U\000\000\000\000\000\000\015U\000\000\000\000\015U\000\000\000\000\000\000\000\000\tm\000\000\000\000\000\000\tm\015U\000\000\015U\000\000\015U\000\000\015U\000\000\000\000\000\000\tm\tm\tm\000\000\tm\tm\000\000\000\000\015U\000\000\000\000\000\000\000\000\000\000\tm\015U\015U\000\000\tm\000\000\000\000\004\150\tm\000\000\000\000\015U\000\000\000\000\015U\000\000\000\000\005j\000\000\tm\015U\015U\015U\015Y\015Y\000\000\000\000\000\000\015Y\000\000\000\000\015Y\000\000\000\000\000\000\000\000\015U\000\000\000\000\000\000\015U\015Y\000\000\015Y\000\000\015Y\000\000\015Y\000\000\000\000\000\000\015U\015U\015U\000\000\015U\015U\000\000\000\000\015Y\000\000\004\166\000\000\000\000\000\000\000\000\015Y\015Y\000\000\015U\000\000\000\000\004\150\015U\000\000\000\000\015Y\021b\000\000\015Y\001Q\000\000\000\000\000\000\015U\015Y\015Y\015Y\000\000\000\000\000\000\000\000\000\000\012r\000\000\000\000\000\000\021f\000\000\001Q\000\000\015Y\000\000\000\000\000\000\015Y\000\000\012\170\012\194\012\202\012\178\012\210\000\000\000\000\000\000\000\000\015Y\015Y\015Y\000\000\015Y\015Y\012\218\012\226\000\000\000\000\004\166\000\000\000\000\000\000\000\000\000\000\012\234\000\000\015Y\000\000\000\000\000\000\015Y\000\000\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015Y\012z\012\186\012\242\012\250\r\n\000\000\000\000\000\000\001\173\000\000\000\000\000\000\r\018\001\173\000\000\001\214\001\173\001Q\000\000\000\000\000\000\000\000\r\026\000\000\t\241\000\000\001\173\000\000\000\000\000\000\001\173\000\000\001\173\000\000\000\000\000\000\r:\001Q\021j\rB\r\002\021z\000\000\000\000\001\173\001Q\r\"\000\000\000\000\000\000\000\000\001\173\001\173\000\000\r*\r2\000\000\000\000\000\000\004\142\000\000\001\173\000\000\000\000\001\173\000\000\000\000\000\000\000\000\000\000\001\173\001\173\001\173\001\169\000\000\000\000\000\000\000\000\001\169\000\000\001\214\001\169\000\000\000\000\000\000\000\000\001\173\001\173\000\000\t\237\005\018\001\169\000\000\000\000\000\000\001\169\000\000\001\169\000\000\000\000\000\000\001\173\001\173\000\000\000\000\001\173\001\173\000\000\000\000\001\169\000\000\000\000\000\000\000\000\000\000\001\173\001\169\001\169\000\000\000\000\000\000\000\000\000\000\001\173\004\142\000\000\001\169\000\000\001\173\001\169\000\000\000\000\000\000\000\000\001\173\001\169\001\169\001\169\001\185\000\000\000\000\000\000\000\000\001\185\000\000\001\214\001\185\000\000\000\000\000\000\000\000\001\169\001\169\000\000\t\253\005\018\001\185\000\000\000\000\000\000\001\185\000\000\001\185\000\000\000\000\000\000\001\169\001\169\000\000\000\000\001\169\001\169\000\000\000\000\001\185\000\000\000\000\000\000\000\000\000\000\001\169\001\185\001\185\000\000\000\000\000\000\000\000\000\000\001\169\004\142\000\000\001\185\000\000\001\169\001\185\000\000\000\000\000\000\000\000\001\169\001\185\001\185\001\185\001\181\000\000\000\000\000\000\000\000\001\181\000\000\001\214\001\181\000\000\000\000\000\000\000\000\001\185\001\185\000\000\t\249\005\018\001\181\000\000\000\000\000\000\001\181\000\000\001\181\000\000\000\000\000\000\001\185\001\185\000\000\000\000\001\185\001\185\000\000\000\000\001\181\000\000\000\000\000\000\000\000\000\000\001\185\001\181\001\181\000\000\000\000\000\000\000\000\000\000\001\185\004\142\000\000\001\181\000\000\001\185\001\181\000\000\000\000\000\000\000\000\001\185\001\181\001\181\001\181\001\177\000\000\000\000\000\000\000\000\001\177\000\000\001\214\001\177\000\000\000\000\000\000\000\000\001\181\001\181\000\000\t\245\005\018\001\177\000\000\000\000\000\000\001\177\000\000\001\177\000\000\000\000\000\000\001\181\001\181\000\000\000\000\001\181\001\181\000\000\000\000\001\177\000\000\000\000\000\000\000\000\000\000\001\181\001\177\001\177\000\000\000\000\000\000\000\000\000\000\001\181\004\142\000\000\001\177\000\000\001\181\001\177\000\000\000\000\000\000\000\000\001\181\001\177\001\177\001\177\0031\000\000\000\000\000\000\000\000\0031\000\000\001\214\0031\000\000\000\000\000\000\000\000\001\177\001\177\000\000\t\233\005\018\0031\000\000\000\000\000\000\0031\000\000\0031\000\000\000\000\000\000\001\177\001\177\000\000\000\000\001\177\001\177\000\000\000\000\0031\000\000\000\000\000\000\000\000\000\000\001\177\0031\001\165\000\000\000\000\000\000\000\000\000\000\001\177\004\142\000\000\0031\000\000\001\177\0031\000\000\000\000\000\000\000\000\001\177\0031\0031\0031\003-\000\000\000\000\000\000\000\000\003-\000\000\001\214\003-\000\000\000\000\000\000\000\000\0031\0031\000\000\t\233\005\018\003-\000\000\000\000\000\000\003-\000\000\003-\000\000\000\000\000\000\0031\0031\000\000\000\000\0031\0031\000\000\000\000\003-\000\000\000\000\000\000\000\000\000\000\0031\003-\001\165\000\000\000\000\000\000\000\000\000\000\0031\004\142\000\000\003-\000\000\0031\003-\000\000\000\000\000\000\000\000\0031\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003-\003-\000\000\000\000\005\018\000\254\001\210\001\214\002\026\000\000\000\000\000\000\000\000\000\000\000\000\003-\003-\000\000\022\182\003-\003-\000\000\004\169\000\000\003\174\001\218\002\186\001\238\000\000\003-\000\000\000\000\000\000\000\000\000\000\001\250\022\186\003-\000\000\000\000\000\000\000\000\003-\022\226\000\000\000\000\000\000\000\000\003-\002\234\002\206\004^\000\000\000\000\000\000\002\226\022\018\002\238\004n\004z\000\000\000y\022*\000\000\000\000\004\134\000y\000\000\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0222\000y\000\000\000y\004\138\000y\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022:\023z\000\000\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000y\000\000\000\000\000\000\000y\000\000\000\000\000\000\000\000\000\000\000y\023\138\000\000\000y\000\000\000\000\004\194\000\000\004\198\000y\000y\000\246\000\189\000\000\000\000\000\000\000\000\000\189\000y\000y\000\189\000\000\000\000\000\000\000\000\000y\000\000\000\000\000\000\000y\000\189\000\000\000\189\000\000\000\189\000\000\000\189\000\000\000\000\000\000\000y\000y\000\000\000\000\000y\000y\000\000\000\000\000\189\000\000\000\000\000\000\000\000\000\000\000y\000\189\000\000\000\000\000\000\000\189\000\000\000y\000y\000\000\000\000\000\189\000\000\000\000\000\189\000\000\000\000\000y\000\000\000y\000\189\000\189\000\246\000\129\000\000\000\000\000\000\000\000\000\129\000\189\000\189\000\129\000\000\000\000\000\000\000\000\000\189\000\000\000\000\000\000\000\189\000\129\000\000\000\129\000\000\000\129\000\000\000\129\000\000\000\000\000\000\000\189\000\189\000\000\000\000\000\189\000\189\000\000\000\000\000\129\000\000\000\000\000\000\000\000\000\000\000\189\000\129\000\000\000\000\000\000\000\129\000\000\000\189\000\189\000\000\000\000\000\129\000\000\000\000\000\129\000\000\000\000\000\189\000\000\000\189\000\129\000\129\000\246\000}\000\000\000\000\000\000\000\000\000}\000\129\000\129\000}\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\000\129\000}\000\000\000}\000\000\000}\000\000\000}\000\000\000\000\000\000\000\129\000\129\000\000\000\000\000\129\000\129\000\000\000\000\000}\000\000\000\000\000\000\000\000\000\000\000\129\000}\000\000\000\000\000\000\000}\000\000\000\129\000\129\000\000\000\000\000}\000\000\000\000\000}\000\000\000\000\000\129\000\000\000\129\000}\000}\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000}\000}\000\000\000\000\000\000\000\000\000\000\000}\000\000\000\000\000\000\000}\000\000\001\133\000\000\000\000\000\000\000\000\001\133\000\000\000\000\001\133\000}\000}\000\000\000\000\000}\000}\000\000\000\000\000\000\001\133\000\000\000\000\000\000\001\133\000}\001\133\000\000\000\000\000\000\000\000\000\000\000}\000}\000\000\000\000\000\000\000\000\001\133\001\133\000\000\000\000\000}\000\000\000}\001\133\000\000\000\000\000\000\000\000\000\000\005e\000\000\000\000\000\000\001\133\000\000\000\000\001\133\000\000\000\000\000\000\000\000\000\000\001\133\001\133\001\133\015Q\015Q\000\000\000\000\000\000\015Q\000\000\000\000\015Q\000\000\000\000\000\000\000\000\001\133\000\000\000\000\000\000\001\133\015Q\000\000\015Q\000\000\015Q\000\000\015Q\000\000\000\000\000\000\001\133\001\133\000\000\000\000\001\133\001\133\000\000\000\000\015Q\000\000\005e\000\000\000\000\000\000\001\133\015Q\015Q\000\000\000\000\000\000\000\000\001\133\001\133\000\000\000\000\015Q\000\000\001\133\015Q\000\000\000\000\000\000\000\000\001\133\015Q\015Q\015Q\015M\015M\000\000\000\000\000\000\015M\000\000\000\000\015M\000\000\000\000\000\000\000\000\015Q\000\000\000\000\000\000\015Q\015M\000\000\015M\000\000\015M\000\000\015M\000\000\000\000\000\000\015Q\015Q\015Q\000\000\015Q\015Q\000\000\000\000\015M\000\000\000\000\000\000\000\000\000\000\000\000\015M\015M\000\000\015Q\000\000\000\000\000\000\015Q\000\000\000\000\015M\000\000\000\000\015M\000\000\000\000\005j\000\000\015Q\015M\015M\015M\tq\tq\000\000\000\000\000\000\tq\000\000\000\000\tq\000\000\000\000\000\000\000\000\015M\000\000\000\000\000\000\015M\tq\000\000\tq\000\000\tq\000\000\tq\000\000\000\000\000\000\015M\015M\015M\000\000\015M\015M\000\000\000\000\tq\000\000\000\000\000\000\000\000\000\000\tr\tq\tq\000\000\015M\000\000\000\000\000\000\015M\000\000\000\000\tq\000\000\000\000\tq\000\000\000\000\000\000\000\000\015M\tq\tq\000\246\000\000\001\161\000\000\000\000\000\000\000\000\001\161\000\000\000\000\000\000\000\000\000\000\000\000\tq\000\000\003N\002\250\tq\000\000\002\182\000\000\b\178\000\000\000\000\0036\001\161\000\000\000\000\tq\tq\tq\000\000\tq\tq\001\218\000\000\b\234\000\000\000\000\000\000\000\000\003R\tq\000\000\011&\000\000\tq\000\000\001\161\000\000\tq\000\000\000\000\000\000\000\000\003^\000\000\001\161\rZ\000\000\001\198\tq\000\000\001\161\001\161\000\246\002\238\000\000\000\000\0042\0046\000\000\001\161\001\161\004:\000\000\004B\000\000\r\138\007*\000\000\000\000\000\000\000\000\003N\002\250\000\000\000\000\002\182\000\000\b\178\007.\000\000\0036\000\000\000\000\000\000\000\000\000\000\001\161\0076\007:\000\000\001\218\014^\b\234\000\000\000\000\001\161\000\000\003R\000\000\000\000\011&\000\000\000\000\000\000\000\000\000\000\000\000\011\234\000\000\000\000\014\130\003^\007>\000\000\rr\000\000\001\198\000\000\004\198\000\000\000\000\000\000\002\238\000\000\000\000\0042\0046\000\000\000\000\000\000\004:\000\000\004B\000\000\r\138\007*\000\000\000\000\000\000\000\000\003N\002\250\000\000\000\000\002\182\000\000\b\178\007.\000\000\0036\000\000\000\000\000\000\000\000\000\000\000\000\0076\007:\000\000\001\218\r\234\b\234\000\000\000\000\000\000\000\000\003R\000\000\000\000\011&\000\000\000\000\000\000\000\000\000\000\000\000\011\234\000\000\000\000\011\246\003^\007>\011\250\rZ\000\000\001\198\000\000\004\198\001\210\001\214\014\178\002\238\000\000\000\000\0042\0046\000\000\000\000\000\000\004:\000\000\004B\000\000\r\138\007*\000\000\001\165\001\218\001\222\001\238\000\000\001\165\000\000\001\214\001\165\000\000\007.\001\250\000\000\000\000\000\000\000\000\t\233\000\000\001\165\0076\007:\000\000\001\165\014^\001\165\001\254\002\206\004^\000\000\000\000\000\000\002\226\000\000\002\238\004n\004z\001\165\000\000\000\000\011\234\000\000\004\134\011\246\001\165\007>\000\000\000\000\000\000\000\000\000\000\004\198\004\142\000\000\001\165\000\000\000\000\001\165\000\000\004\138\000\000\000\000\000\000\001\165\001\165\001\165\005]\000\000\000\000\000\000\000\000\005]\000\000\000Y\005]\000\000\000\000\000\000\000\000\001\165\001\165\000\000\000Y\005\018\005]\000\000\005]\000\000\005]\000\000\005]\000\000\000\000\000\000\001\165\001\165\000\000\000\000\001\165\001\165\000\000\000\000\005]\000\000\000\000\000\000\000\000\000\000\001\165\005]\000Y\000\000\000\000\000\000\000\000\000\000\001\165\000Y\000\000\000\000\000\000\001\165\005]\000\000\000\000\000\000\000\000\001\165\005]\005]\005]\000\000\000\000\006\t\006\t\000\000\000\000\000\000\006\t\000\000\000\000\006\t\000\000\000\000\005]\000\000\000\000\000\000\000Y\000\000\000\000\006\t\000\000\006\t\000\000\006\t\000\000\006\t\000\000\005]\005]\005]\000\000\005]\005]\000\000\000\000\000\000\000\000\006\t\000\000\000\000\000\000\000\000\000\000\000\000\006\t\006\t\015\021\000\000\025\"\005]\n\030\015\021\000\000\000\000\006\t\000\000\000\000\006\t\000\000\000\000\005]\000\000\000\000\006\t\006\t\000\246\000\000\000\000\000\000\000\000\015\021\000\000\000\000\000\000\000\000\n=\000\000\000\000\000\000\006\t\000\000\003N\002\250\006\t\000\000\002\182\000\000\000\000\000\000\000\000\0036\000\000\000\000\015\021\006\t\006\t\006\t\n=\006\t\006\t\001\218\000\000\015\021\001\210\001\214\000\000\000\000\003R\015\021\015\021\000\246\000\000\006\t\000\000\000\000\000\000\006\t\015\021\015\021\000\000\000\000\003^\001\218\002\186\003j\018\018\001\198\006\t\000\000\000\000\000\000\000\000\002\238\000\000\000\000\0042\0046\019\226\000\000\000\000\004:\000\000\004B\007\030\015\021\007*\002\230\000\000\004\218\000\000\000\000\000\000\002\226\015\021\002\238\004n\004z\007.\000\000\000\000\006\005\tF\004\134\000\000\019\234\006\005\0076\007:\006\005\007~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\005\004\138\006\005\000\000\006\005\020:\006\005\n=\000\000\000\000\000\000\000\000\000\000\007>\000\000\n=\000\000\011\014\006\005\004\198\000\000\000\000\000\000\000\000\000\000\006\005\t\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\005\000\000\000\000\006\005\000\000\000\000\000\000\000\000\000\000\006\005\006\005\000\246\015]\015]\000\000\000\000\000\000\015]\000\000\000\000\015]\000\000\000\000\000\000\000\000\006\005\000\000\000\000\000\000\006\005\015]\000\000\015]\000\000\015]\000\000\015]\000\000\000\000\000\000\006\005\006\005\006\005\000\000\006\005\006\005\000\000\000\000\015]\000\000\000\000\000\000\000\000\000\000\000\000\015]\015]\000\000\006\005\000\000\000\000\000\000\006\005\000\000\000\000\015]\000\000\000\000\015]\000\000\000\000\000\000\000\000\006\005\015]\015]\000\246\015a\015a\000\000\000\000\000\000\015a\000\000\000\000\015a\000\000\000\000\000\000\000\000\015]\000\000\000\000\000\000\015]\015a\000\000\015a\000\000\015a\000\000\015a\000\000\000\000\000\000\015]\015]\015]\000\000\015]\015]\000\000\000\000\015a\000\000\000\000\000\000\000\000\000\000\000\000\015a\t\194\000\000\015]\000\000\000\000\000\000\015]\000\000\000\000\015a\000\000\000\000\015a\000\000\000\000\000\000\000\000\015]\015a\015a\000\246\006\029\tF\000\000\000\000\000\000\006\029\000\000\000\000\006\029\000\000\000\000\000\000\000\000\015a\000\000\000\000\000\000\015a\006\029\000\000\006\029\000\000\006\029\000\000\006\029\000\000\000\000\000\000\015a\015a\015a\000\000\015a\015a\000\000\000\000\006\029\000\000\000\000\000\000\000\000\000\000\000\000\006\029\t\194\000\000\015a\000\000\000\000\000\000\015a\000\000\000\000\006\029\000\000\000\000\006\029\000\000\000\000\000\000\000\000\015a\006\029\006\029\000\246\006!\006!\000\000\000\000\000\000\006!\000\000\000\000\006!\000\000\000\000\000\000\000\000\006\029\000\000\000\000\000\000\006\029\006!\000\000\006!\000\000\006!\000\000\006!\000\000\000\000\000\000\006\029\006\029\006\029\000\000\006\029\006\029\000\000\000\000\006!\000\000\000\000\000\000\000\000\000\000\000\000\006!\006!\000\000\006\029\000\000\000\000\000\000\006\029\000\000\000\000\006!\000\000\000\000\006!\000\000\000\000\000\000\000\000\006\029\006!\006!\006!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006!\000\000\003N\002\250\006!\000\000\002\182\000\000\b\178\000\000\000\000\0036\000\000\000\000\000\000\006!\006!\006!\000\000\006!\006!\001\218\000\000\b\234\000\000\000\000\000\000\000\000\003R\000\000\000\000\011&\000\000\006!\000\000\000\000\000\000\006!\000\000\000\000\011\158\000\000\003^\000\000\000\000\017\018\000\000\001\198\t\234\000\000\007\169\007\169\000\000\002\238\000\000\000\000\0042\0046\000\000\000\000\000\000\004:\000\000\004B\000\000\r\138\007*\000\000\003)\007\169\007\169\007\169\000\000\003)\000\000\001\214\003)\000\000\007.\007\169\000\000\000\000\000\000\000\000\000\000\000\000\003)\0076\007:\000\000\003)\000\000\003)\007\169\007\169\007\169\000\000\000\000\000\000\007\169\000\000\007\169\007\169\007\169\003)\000\000\000\000\000\000\000\000\007\169\017*\003)\007>\000\000\000\000\000\000\000\000\000\000\004\198\004\142\000\000\003)\000\000\000\000\003)\000\000\007\169\000\000\000\000\000\000\003)\003)\003)\003%\000\000\000\000\000\000\000\000\003%\000\000\001\214\003%\000\000\000\000\000\000\000\000\003)\003)\000\000\000\000\005\018\003%\000\000\000\000\000\000\003%\000\000\003%\000\000\000\000\000\000\003)\003)\000\000\000\000\003)\003)\000\000\000\000\003%\000\000\006^\000\000\000\000\000\000\003)\003%\000\000\000\000\000\000\000\000\000\000\001\017\003)\004\142\000\000\003%\001\017\003)\003%\001\017\000\000\000\000\000\000\003)\003%\003%\003%\000\000\000\000\001\017\000\000\001\017\000\000\001\017\000\000\001\017\000\000\000\000\000\000\000\000\003%\003%\000\000\000\000\005\018\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\000\001\017\003%\003%\000\000\001\017\003%\003%\000\000\000\000\000\000\001\017\000\000\000\000\001\017\000\000\003%\000\000\000\000\000\000\001\017\001\017\000\246\001\r\003%\000\000\000\000\000\000\001\r\003%\001\017\001\r\000\000\000\000\000\000\003%\001\017\000\000\000\000\000\000\001\017\001\r\000\000\001\r\000\000\001\r\000\000\001\r\000\000\000\000\000\000\001\017\001\017\001\017\000\000\001\017\001\017\000\000\000\000\001\r\000\000\000\000\000\000\000\000\000\000\001\017\001\r\000\000\000\000\000\000\001\r\000\000\000\000\001\017\000\000\000\000\001\r\000\000\000\000\001\r\000\000\000\000\000\000\000\000\001\017\001\r\001\r\000\246\000\000\000\000\000\000\005a\000\000\000\000\000\000\001\r\005a\000\000\014\001\005a\000\000\001\r\000\000\000\000\000\000\001\r\000\000\014\001\000\000\005a\000\000\005a\000\000\005a\000\000\005a\001\r\001\r\001\r\000\000\001\r\001\r\000\000\000\000\000\000\000\000\000\000\005a\000\000\000\000\001\r\000\000\000\000\000\000\005a\014\001\000\000\000\000\001\r\000\000\000\000\000\000\014\001\000\000\000\000\000\000\000\000\005a\000\000\001\r\000\000\000\000\000\000\005a\005a\005a\000\253\000\000\000\000\000\000\000\000\000\253\000\000\006\189\000\253\000\000\000\000\000\000\000\000\005a\000\000\000\000\006\189\014\001\000\253\000\000\000\253\000\000\000\253\000\000\000\253\000\000\000\000\000\000\005a\005a\005a\000\000\005a\005a\000\000\000\000\000\253\000\000\000\000\000\000\000\000\000\000\000\000\000\253\006\189\000\000\000\000\001\193\000\000\000\000\005a\006\189\001\193\000\000\019\198\001\193\000\253\002\182\000\000\000\000\000\000\005a\000\253\000\253\000\253\001\193\000\000\000\000\000\000\001\193\000\000\001\193\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\000\000\000\000\000\006\189\001\193\000\000\000\000\000\000\000\000\000\000\000\000\001\193\000\000\000\000\000\253\000\253\000\253\019\202\000\253\000\253\000\000\001\193\000\000\000\000\001\193\000\000\000\000\000\000\000\000\000\000\001\193\001\193\000\000\019\214\000\000\000\000\000\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\193\000\253\003N\002\250\001\193\000\000\002\182\000\000\b\178\000\000\000\000\0036\000\000\000\000\007:\001\193\001\193\000\000\000\000\001\193\001\193\001\218\000\000\b\234\000\000\000\000\000\000\000\000\003R\001\193\000\000\011&\000\000\000\000\000\000\000\000\000\000\001\193\000\000\000\000\028~\000\000\003^\000\000\000\000\026\230\000\000\001\198\001\193\000\000\000\000\000\000\000\000\002\238\000\000\000\000\0042\0046\000\000\000\000\000\000\004:\000\000\004B\000\000\r\138\007*\000\000\000\000\000\000\000\000\003N\002\250\000\000\000\000\002\182\000\000\b\178\007.\000\000\0036\000\000\000\000\000\000\000\000\000\000\000\000\0076\007:\000\000\001\218\026\234\b\234\000\000\000\000\000\000\000\000\003R\000\000\000\000\011&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029J\003^\007>\000\000\rr\000\000\001\198\000\000\004\198\000\000\000\000\000\000\002\238\000\000\000\000\0042\0046\000\000\000\000\000\000\004:\000\000\004B\000\000\r\138\007*\000\000\000\000\000\000\000\000\003N\002\250\000\000\000\000\002\182\000\000\b\178\007.\000\000\0036\000\000\000\000\000\000\000\000\000\000\000\000\0076\007:\000\000\001\218\r\234\b\234\000\000\000\000\000\000\000\000\003R\000\000\000\000\011&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\134\003^\007>\000\000\rr\000\000\001\198\000\000\004\198\000\000\000\000\000\000\002\238\000\000\000\000\0042\0046\000\000\000\000\000\000\004:\000\000\004B\000\000\r\138\007*\000\000\000\000\000\000\000\000\004\137\004\137\000\000\000\000\004\137\000\000\000\000\007.\000\000\004\137\000\000\000\000\000\000\000\000\000\000\004\137\0076\007:\000\000\004\137\r\234\000\000\000\000\000\000\000\000\000\000\004\137\0286\000\000\000\000\028N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\230\004\137\007>\000\000\004\137\004\137\004\137\000\000\004\198\000\000\000\000\000\000\004\137\000\000\000\000\004\137\004\137\000\000\000\000\000\246\004\137\000\000\004\137\004\137\007v\004\137\000\000\000\000\000\000\000\000\003N\002\250\000\000\000\000\002\182\000\000\000\000\004\137\000\000\0036\000\000\000\000\000\000\000\000\007z\000\000\004\137\004\137\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003^\004\137\000\000\003j\rR\001\198\000\000\004\137\000\000\000\000\000\000\002\238\000\000\000\000\0042\0046\000\000\000\000\000\000\004:\000\000\004B\007\030\000\000\007*\004\161\tF\000\000\000\000\000\000\004\161\000\000\000\000\004\161\000\000\000\000\007.\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\0076\007:\004\161\007~\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\b\158\000\000\000\000\b:\004\161\t\194\007>\000\000\004\161\000\000\n\030\000\000\004\198\000\000\004\161\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\004\161\003\"\000\246\b\253\000\000\000\000\000\000\000\000\b\253\004\161\004\161\b\253\000\000\000\000\000\000\000\000\004\161\004\161\000\000\000\000\004\161\b\253\000\000\000\000\000\000\b\253\000\000\b\253\000\000\000\000\000\000\004\161\004\161\000\000\000\000\004\161\004\161\000\000\000\000\b\253\000\000\t\214\000\000\000\000\000\000\004\161\b\253\000\000\000\000\000\000\b\253\000\000\000\000\004\161\000\000\000\000\b\253\000\000\030\134\b\253\000\000\000\000\000\000\000\000\004\161\b\253\b\253\000\246\b\249\000\000\000\000\000\000\000\000\b\249\b\253\b\253\b\249\000\000\000\000\000\000\000\000\b\253\000\000\000\000\000\000\b\253\b\249\000\000\000\000\000\000\b\249\000\000\b\249\000\000\000\000\000\000\b\253\b\253\b\253\000\000\b\253\b\253\000\000\000\000\b\249\000\000\000\000\000\000\000\000\000\000\b\253\b\249\000\000\000\000\000\000\b\249\000\000\000\000\b\253\000\000\000\000\b\249\000\000\000\000\b\249\000\000\000\000\000\000\000\000\000\000\b\249\b\249\000\246\003\029\000\000\000\000\000\000\000\000\003\029\b\249\b\249\003\029\000\000\000\000\000\000\000\000\b\249\000\000\000\000\000\000\b\249\003\029\000\000\000\000\000\000\003\029\000\000\003\029\000\000\000\000\000\000\b\249\b\249\b\249\000\000\b\249\b\249\000\000\000\000\003\029\019\222\000\000\000\000\000\000\000\000\b\249\003\029\000\000\000\000\000\000\007\189\000\000\000\000\b\249\000\000\007\189\003\029\000\000\007\189\003\029\000\000\000\000\000\000\000\000\000\000\003\029\003\029\003\029\007\189\000\000\000\000\000\000\007\189\000\000\007\189\000\000\000\000\000\000\000\000\000\000\005]\003\029\000\000\000\000\000\000\003\029\007\189\000\000\000\000\000\000\000\000\000\000\000\000\007\189\000\000\000\000\003\029\003\029\030\142\000\000\003\029\003\029\000\000\007\189\000\000\000\000\007\189\000\000\000\000\000\000\003\029\000\000\007\189\007\189\000\000\000\000\000\000\020f\003\029\000\000\000\000\000\000\000\000\003\029\000\000\000\000\000\000\000\000\007\189\003\029\000\000\007)\007\189\000\000\000\000\000\000\000\000\000\000\002\250\000\000\000\000\002\182\000\000\007\189\007\189\007\189\0036\007\189\007\189\000\000\000\000\007)\000\000\000\000\000\000\000\000\001\218\007\189\000\000\000\000\003:\000\000\007\189\000\000\002f\007\189\000\000\000\000\000\000\003>\000\000\000\000\003\214\000\000\000\000\000\000\007\189\000\000\000\000\000\000\004\022\000\000\001\198\000\000\000\000\000\000\000\000\000\000\002\238\000\000\000\000\004\030\nZ\000\000\000\000\000\000\n^\nb\nn\000\000\000\000\007*\000\000\000\000\000\000\000\000\003N\002\250\000\000\000\000\002\182\000\000\b\178\000\000\000\000\0036\000\000\000\000\000\000\000\000\000\000\000\000\0076\007:\000\000\001\218\000\000\b\234\000\000\000\000\000\000\000\000\003R\000\000\000\000\011&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003^\007>\nv\011n\000\000\001\198\n\142\004\198\000\000\000\000\000\000\002\238\000\000\000\000\0042\0046\000\000\000\000\007Q\004:\000\000\004B\000\000\r\138\007*\002\250\000\000\000\000\002\182\000\000\000\000\000\000\000\000\0036\000\000\000\000\007.\000\000\007Q\000\000\000\000\000\000\000\000\001\218\000\000\0076\007:\003:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003>\000\000\000\000\003\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\022\000\000\001\198\007>\000\000\000\000\000\000\000\000\002\238\004\198\000\000\004\030\nZ\000\000\000\000\000\000\n^\nb\nn\000\000\030f\007*\000\000\000\000\000\000\000\000\003N\002\250\000\000\000\000\002\182\000\000\000\000\000\000\000\000\0036\000\000\000\000\000\000\000\000\000\000\000\000\0076\007:\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003^\007>\nv\003j\000\000\001\198\n\142\004\198\000\000\000\000\000\000\002\238\000\000\000\000\0042\0046\000\000\000\000\000\000\004:\000\000\004B\007\030\000\000\007*\003\029\000\000\000\000\000\000\000\000\003\029\000\000\000\000\003\029\000\000\000\000\007.\000\000\000\000\000\000\000\000\000\000\000\000\003\029\000\000\0076\007:\003\029\007~\003\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\029\019\222\000\000\000\000\000\000\000\000\000\000\003\029\000\000\007>\000\000\b\142\000\000\011\014\000\000\004\198\000\000\003\029\000\000\000\000\003\029\000\000\000\000\000\000\000\000\000\000\003\029\003\029\003\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\162\003\029\000\000\000\000\000\000\003\029\003N\002\250\000\000\000\000\002\182\000\000\000\000\000\000\000\000\0036\003\029\003\029\030\190\000\000\003\029\003\029\004>\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003R\000\000\001\210\001\214\000\000\020f\003\029\000\000\000\000\000\000\000\000\003\029\000\000\000\000\003^\000\000\000\000\003j\000\000\001\198\000\000\001\218\001\222\001\238\000\000\002\238\000\000\000\000\0042\0046\000\000\001\250\000\000\004:\000\000\004B\007\030\000\000\007*\002\002\000\000\000\000\007\254\000\000\000\000\001\254\002\206\002\214\003N\002\250\007.\002\226\002\182\002\238\004n\004z\000\000\0036\000\000\0076\007:\004\134\007~\000\000\bR\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003R\000\000\007\173\007\173\004\138\000\000\000\000\000\000\000\000\000\000\007>\000\000\000\000\000\000\003^\000\000\004\198\003j\004~\001\198\000\000\007\173\007\173\007\173\000\000\002\238\000\000\000\000\0042\0046\000\000\007\173\000\000\004:\000\000\004B\007\030\000\000\007*\000\000\000\000\000\000\b\030\000\000\000\000\007\173\007\173\007\173\003N\002\250\007.\007\173\002\182\007\173\007\173\007\173\000\000\0036\000\000\0076\007:\007\173\007~\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\007\173\000\000\000\000\000\000\000\000\000\000\007>\000\000\000\000\000\000\003^\000\000\004\198\003j\000\000\001\198\000\000\000\000\000\000\000\000\000\000\002\238\000\000\000\000\0042\0046\000\000\000\000\000\000\004:\000\000\004B\007\030\000\000\007*\000\000\000\000\000\000\004r\000\000\007\173\000\000\007-\000\000\000\000\000\000\007.\000\000\003N\002\250\000\000\000\000\002\182\000\000\000\000\0076\007:\0036\007~\000\000\000\000\000\000\007-\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\007>\000\000\000\000\000\000\000\000\000\000\004\198\000\000\003^\000\000\000\000\003j\000\000\001\198\000\000\000\000\000\000\000\000\000\000\002\238\000\000\000\000\0042\0046\000\000\000\000\000\000\004:\000\000\004B\007\030\015\018\007*\000\000\000\000\000\000\000\000\003N\002\250\000\000\000\000\002\182\000\000\000\000\007.\000\000\0036\000\000\000\000\000\000\000\000\015\030\000\000\0076\007:\000\000\001\218\003N\002\250\000\000\000\000\002\182\000\000\003R\000\000\000\000\0036\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\218\003^\007>\000\000\003j\000\000\001\198\003R\004\198\000\000\000\000\000\000\002\238\000\000\000\000\0042\0046\000\000\000\000\000\000\004:\003^\004B\007\030\003j\007*\001\198\000\000\000\000\000\000\000\000\000\000\002\238\000\000\000\000\0042\0046\007.\000\000\000\000\004:\000\000\004B\007\030\000\000\007*\0076\007:\000\000\007~\000\000\000\000\000\000\015*\000\000\000\000\000\000\007.\000\000\003N\002\250\000\000\000\000\002\182\000\000\000\000\0076\007:\0036\007~\000\000\007>\000\000\000\000\000\000\000\000\000\000\004\198\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\007>\000\000\000\000\000\000\000\000\000\000\004\198\000\000\003^\000\000\000\000\003j\000\000\001\198\000\000\001\210\001\214\000\000\000\000\002\238\000\000\000\000\0042\0046\000\000\000\000\000\000\004:\000\000\004B\007\030\000\000\007*\005\181\001\218\002\186\000\000\000\000\005\181\000\000\000\000\005\181\000\000\000\000\007.\000\000\000\000\000\000\000\000\000\000\000\000\005\181\000\000\0076\007:\005\181\007~\005\181\002\222\004f\004\218\000\000\000\000\000\000\002\226\000\000\002\238\004n\004z\005\181\000\000\000\000\000\000\000\000\004\134\000\000\005\181\000\000\007>\000\000\000\000\000\000\n\030\000\000\004\198\000\000\005\181\000\000\000\000\005\181\000\000\004\138\000\000\000\000\000\000\005\181\005\181\000\246\005\185\000\000\000\000\000\000\000\000\005\185\000\000\000\000\005\185\000\000\000\000\000\000\000\000\005\181\005\181\000\000\000\000\005\181\005\185\000\000\000\000\000\000\005\185\000\000\005\185\000\000\t-\t-\005\181\005\181\t-\000\000\005\181\005\181\000\000\t-\005\185\000\000\000\000\000\000\000\000\020\194\000\000\005\185\000\000\t-\000\000\000\000\000\000\n\030\005\181\000\000\t-\005\185\000\000\000\000\005\185\000\000\000\000\000\000\000\000\005\181\005\185\005\185\000\246\000\000\t-\000\000\000\000\t-\t-\t-\000\000\000\000\000\000\000\000\000\000\t-\005\185\005\185\t-\t-\005\185\000\000\000\000\t-\000\000\t-\t-\000\000\t-\000\000\000\000\005\185\005\185\003\029\000\000\005\185\005\185\000\000\003\029\000\000\t-\003\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t-\t-\003\029\000\000\005\185\000\000\003\029\000\000\003\029\000\000\000\000\000\000\000\000\000\000\000\000\005\185\000\000\000\000\000\000\000\000\003\029\019\222\000\000\000\000\000\000\t-\000\000\003\029\000\000\000\000\000\000\t-\000\000\006\225\000\000\000\000\000\000\003\029\006\225\000\000\003\029\006\225\000\000\000\000\000\000\000\000\003\029\003\029\003\029\000\000\000\000\006\225\000\000\000\000\000\000\006\225\000\000\006\225\000\000\000\000\000\000\000\000\003\029\000\000\000\000\000\000\003\029\000\000\000\000\006\225\000\000\000\000\000\000\000\000\000\000\000\000\006\225\003\029\003\029\022\134\000\000\003\029\003\029\000\000\000\000\000\000\006\225\000\000\000\000\006\225\000\000\000\000\000\000\000\000\000\000\006\225\006\225\000\246\020f\003\029\014\165\000\000\000\000\000\000\000\000\014\165\000\000\000\000\014\165\000\000\000\000\006\225\000\000\000\000\000\000\006\225\000\000\000\000\014\165\000\000\000\000\000\000\014\165\000\000\014\165\000\000\006\225\006\225\026r\000\000\006\225\006\225\000\000\000\000\000\000\000\000\014\165\000\000\000\000\000\000\006\225\000\000\000\000\014\165\000\000\000\000\000\000\000\000\006\225\000\000\000\000\000\000\000\000\014\165\000\000\000\000\014\165\000\000\000\000\006\225\000\000\000\000\014\165\014\165\000\000\007\225\tF\000\000\000\000\000\000\007\225\000\000\000\000\007\225\000\000\000\000\000\000\000\000\014\165\000\000\000\000\000\000\014\165\007\225\000\000\000\000\000\000\007\225\000\000\007\225\000\000\000\000\000\000\014\165\014\165\002\174\000\000\014\165\014\165\000\000\000\000\007\225\000\000\000\000\000\000\000\000\000\000\014\165\007\225\t\194\000\000\000\000\001\145\000\000\000\000\014\165\000\000\001\145\007\225\000\000\001\145\007\225\000\000\000\000\000\000\000\000\014\165\007\225\007\225\000\246\001\145\000\000\000\000\000\000\001\145\000\000\001\145\000\000\000\000\000\000\000\000\000\000\000\000\007\225\000\000\000\000\000\000\007\225\001\145\000\000\000\000\000\000\000\000\000\000\000\000\001\145\000\000\000\000\007\225\007\225\000\000\001\197\007\225\007\225\000\000\001\145\001\197\000\000\001\145\001\197\000\000\000\000\000\000\000\000\001\145\001\145\001\145\000\000\000\000\001\197\007\225\000\000\000\000\001\197\000\000\001\197\000\000\000\000\000\000\000\000\001\145\000\000\000\000\000\000\001\145\000\000\000\000\001\197\000\000\000\000\000\000\000\000\000\000\000\000\001\197\001\145\001\145\000\000\000\000\001\145\001\145\000\000\000\000\000\000\001\197\022\146\000\000\001\197\000\000\000\000\000\000\000\000\000\000\001\197\001\197\000\000\006\229\001\145\000\000\000\000\000\000\006\229\001\145\000\000\006\229\000\000\000\000\000\000\000\000\001\197\000\000\000\000\000\000\001\197\006\229\000\000\000\000\000\000\006\229\000\000\006\229\000\000\000\000\000\000\001\197\001\197\000\000\000\000\001\197\001\197\000\000\014]\006\229\002\250\014]\000\000!z\000\000\001\197\006\229\000\000!~\000\000\000\000\014]\000\000\001\197\000\000\000\000\006\229\014]\026N\006\229\000\000\000\000\000\000\000\000\001\197\006\229\006\229\000\246\000\000\014]\000\000\000\000\000\000\000\000\000\000\000\000\014]\000\000\000\000\000\000\000\000\006\229\001\n\000\000\001\198\006\229\014]\000\000\000\000\014]\000\000\000\000\000\000\000\000\000\000\014]\006\229\006\229\000\000\004\161\006\229\006\229\000\000!\130\004\161\000\000\000\000\004\161\000\000\000\000\006\229\014]\000\000\000\000\000\000\014]\000\000\004\161\006\229\000\000\000\000\004\161\000\000\004\161\000\000!\134\014]\014]\000\000\006\229\014]\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\0015\000\000\014]\000\000\000\000\0015\004\161\000\000\0015\004\161\000\000\000\000\000\000\000\000\000\000\004\161\003\"\000\000\0015\000\000\0015\000\000\0015\000\000\0015\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\004\161\0015\000\000\000\000\000\000\000\000\000\000\000\000\0015\000\000\000\000\004\161\004\161\000\000\000\177\004\161\004\161\000\000\000\000\000\177\000\000\0015\000\177\000\000\000\000\tr\000\000\0015\0015\000\246\000\000\000\000\000\177\004\161\000\000\000\000\000\177\000\000\000\177\000\000\000\000\000\000\000\000\0015\004\161\000\000\000\000\000\000\000\000\000\000\000\177\000\000\000\000\000\000\000\000\000\000\000\000\000\177\0015\0015\0015\000\181\0015\0015\000\000\000\000\000\181\000\177\000\000\000\181\000\177\000\000\000\000\000\000\000\000\000\000\000\177\000\177\000\246\000\181\0015\000\000\000\000\000\181\000\000\000\181\000\000\000\000\000\000\000\000\000\000\0015\000\177\000\000\000\000\000\000\000\177\000\181\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\000\000\000\000\177\000\177\000\000\014\165\000\177\000\177\000\000\000\181\014\165\000\000\000\181\014\165\000\000\000\000\000\000\000\000\000\181\000\181\000\246\000\000\000\000\014\165\000\177\000\000\000\000\014\165\000\000\014\165\000\000\000\000\000\000\000\000\000\181\000\177\000\000\000\000\000\181\000\000\000\000\014\165\000\000\000\000\000\000\000\000\000\000\000\000\014\165\000\181\000\181\000\000\000\000\000\181\000\181\000\000\000\000\000\000\000\000\000\000\000\000\014\165\000\000\000\000\000\000\000\000\000\000\014\165\014\165\000\000\000\000\000\181\000\000\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\181\014\165\000\000\001\210\002\178\000\000\000\000\002\182\000\000\000\000\001\218\002\186\000\000\000\000\000\000\000\000\014\165\014\165\002\174\000\000\014\165\014\165\001\218\002\186\001\238\020J\000\000\000\000\000\000\000\000\014\165\000\000\001\250\000\000\002\230 \006\004\218\000\000\014\165\000\000\002\226\000\000\002\238\004n\004z\000\000\002\198\002\206\004^\014\165\004\134\000\000\002\226\000\000\002\238\004n\004z\003N\002\250\000\000\000\000\002\182\026&\000\000\031\174\000\000\0036\004\138\000\000\000\000\000\000\020R\000\000\000\000\000\000\000\000\001\218\000\000\000\000\004\138\000\000\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\007:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003^\000\000\031\186\r\142\000\000\001\198\000\000\001\210\001\214\000\000\000\000\002\238\000\000\000\000\0042\0046\000\000\000\000\000\000\004:\026:\004B\000\000\000\000\007*\006\217\001\218\002\186\000\000\000\000\006\217\000\000\000\000\006\217\000\000\000\000\007.\000\000\000\000\000\000\022b\000\000\000\000\006\217\000\000\0076\007:\006\217\000\000\006\217\005:\005\218\004\218\000\000\000\000\000\000\002\226\000\000\002\238\004n\004z\006\217\000\000\000\000\000\000\000\000\004\134\000\000\006\217\000\000\007>\000\000\005\193\tF\000\000\000\000\004\198\005\193\006\217\000\000\005\193\006\217\000\000\004\138\000\000\000\000\000\000\006\217\006\217\000\000\005\193\000\000\000\000\000\000\005\193\000\000\005\193\000\000\000\000\000\000\000\000\000\000\000\000\006\217\000\000\000\000\000\000\006\217\005\193\000\000\000\000\000\000\000\000\000\000\000\000\005\193\t\194\000\000\006\217\006\217\000\000\014\r\006\217\006\217\000\000\000\000\014\r\000\000\005\193\014\r\000\000\000\000\000\000\000\000\005\193\005\193\000\246\000\000\000\000\014\r\006\217\000\000\000\000\014\r\000\000\014\r\000\000\000\000\000\000\000\000\005\193\000\000\000\000\000\000\000\000\000\000\000\000\014\r\000\000\000\000\000\000\000\000\000\000\000\000\014\r\005\193\005\193\000\000\004y\005\193\005\193\000\000\000\000\004y\014\r\000\000\004y\014\r\000\000\000\000\000\000\000\000\000\000\014\r\000\000\000\000\004y\005\193\000\000\000\000\004y\000\000\004y\000\000\000\000\000\000\000\000\000\000\000\000\014\r\012f\000\000\000\000\014\r\004y\000\000\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\014\r\014\r\000\000\000\000\014\r\014\r\000\000\004y\000\000\000\000\004y\000\000\000\000\000\000\000\000\000\000\004y\000\000\000\000\004\161\000\000\000\000\014\r\000\000\004\161\000\000\000\000\004\161\000\000\000\000\000\000\000\000\004y\rJ\000\000\000\000\004y\004\161\000\000\000\000\000\000\004\161\000\000\004\161\000\000\000\000\000\000\004y\004y\004q\000\000\004y\004y\000\000\004q\004\161\000\000\004q\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\004q\004\150\004y\000\000\004q\000\000\004q\000\000\004\161\000\000\000\000\000\000\000\000\021\234\004\161\003\"\000\000\000\000\004q\000\000\000\000\000\000\000\000\000\000\000\000\004q\000\000\000\000\000\000\004\145\004\161\000\000\000\000\000\000\004\145\004q\000\000\004\145\004q\000\000\000\000\000\000\000\000\000\000\004q\004\161\004\161\004\145\000\000\004\161\004\161\004\145\000\000\004\145\000\000\004\166\000\000\000\000\000\000\000\000\004q\000\000\000\000\000\000\004q\004\145\000\000\004\161\000\000\000\000\000\000\000\000\004\145\000\000\000\000\004q\004q\000\000\004a\004q\004q\000\000\004\145\004a\000\000\004\145\004a\000\000\000\000\000\000\000\000\004\145\000\000\000\000\000\000\000\000\004a\004q\000\000\000\000\004a\000\000\004a\000\000\000\000\000\000\000\000\004\145\024\222\000\000\000\000\004\145\000\000\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\004a\004\145\004\145\000\000\004\169\004\145\004\145\000\000\000\000\000\254\004a\000\000\002\026\004a\000\000\000\000\000\000\000\000\000\000\004a\000\000\000\000\022\182\004\145\000\000\000\000\by\000\000\003\174\by\000\000\000\000\000\000\000\000\025\222\004a\000\000\000\000\000\000\004a\022\186\000\000\001\210\001\214\000\000\by\by\022\226\by\by\004a\004a\000\000\000\000\004a\004a\002\202\000\000\000\000\000\000\022\018\001\218\001\222\001\238\000\000\000\000\022*\000\000\000\000\000\000\by\001\250\004a\000\000\000\000\000\000\000\000\000\000\000\000\002\002\000\000\000\000\0222\029j\000\000\001\254\002\206\002\214\000\000\b\141\by\002\226\b\141\002\238\004n\004z\000\000\022:\023z\000\000\000\000\004\134\004\169\000\000\000\000\by\000\000\000\000\b\141\b\141\000\000\b\141\b\141\000\000\000\000\000\000\000\000\000\000\004\138\023\138\000\000\by\000\000\by\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\141\000\000\007\150\by\000\000\000\000\by\by\000\000\000\000\000\000\by\000\000\by\000\000\000\000\019\206\by\be\000\000\000\246\be\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\141\000\000\be\be\000\000\be\be\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\141\000\000\b\141\000\000\004\161\000\000\000\000\000\000\000\000\004\161\000\000\be\004\161\000\000\b\141\b\141\000\000\000\000\007\158\b\141\000\000\000\000\004\161\b\141\000\000\b\141\004\161\000\000\004\161\b\141\b\145\be\000\000\b\145\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\be\004\161\000\000\b\145\b\145\000\000\b\145\b\145\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\be\000\000\be\000\000\004\161\003\"\000\000\000\000\b\129\000\000\000\000\b\129\b\145\000\000\be\be\000\000\000\000\007\158\be\004\161\000\000\000\000\be\000\000\be\000\000\b\129\b\129\be\b\129\b\129\000\246\000\000\000\000\004\161\004\161\000\000\000\000\004\161\004\161\000\000\000\000\000\000\000\000\000\000\000\000\b\145\000\000\b\n\000\000\000\000\b\129\000\000\000\000\001\210\001\214\004\161\000\000\000\000\000\000\000\000\026N\b\145\000\000\b\145\000\000\000\000\000\000\000\000\000\000\004>\000\246\000\000\001\218\002\186\001\238\b\145\b\145\000\000\000\000\007\158\b\145\000\000\001\250\000\000\b\145\b\129\b\145\000\000\000\000\000\000\b\145\000\000\000\000\000\000\000\000\000\000\002\234\002\206\004^\000\000\000\000\b\129\002\226\b\129\002\238\004n\004z\000\000\000\000\004\129\000\000\000\000\004\134\000\000\004\129\007\250\b\129\004\129\000\000\007\158\b\129\000\000\000\000\000\000\b\129\000\000\b\129\004\129\000\000\004\138\b\129\004\129\004i\004\129\000\000\000\000\000\000\004i\000\000\000\000\004i\000\000\000\000\000\000\000\000\004\129\000\000\000\000\000\000\000\000\004i\000\000\004\129\000\000\004i\004\153\004i\000\000\000\000\000\000\004\153\000\000\000\000\004\153\000\000\004\129\000\000\004\194\004i\004\198\000\000\004\129\000\000\004\153\000\000\004i\000\000\004\153\000\000\004\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\129\004i\000\000\000\000\004\153\000\000\000\000\004i\000\000\000\000\000\000\004\153\000\000\000\000\000\000\004\129\004\129\000\000\000\000\004\129\004\129\000\000\000\000\004i\004\153\000\000\000\000\000\000\000\000\000\000\004\153\000\000\000\000\000\000\000\000\000\000\000\000\004\129\004i\004i\000\000\000\000\004i\004i\000\000\000\000\004\153\000\000\0232\000\000\000\000\000\000\000\000\001\210\001\214\000\000\000\000\000\000\000\000\000\000\004i\004\153\004\153\000\000\000\000\004\153\004\153\000\000\000\000\000\000\000\000\025r\001\218\002\186\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\004\153\000\000\000\000\000\000\000\000\015e\015e\002\002\000\000\000\000\011\238\026\014\000\000\002\234\002\206\002\214\001\210\001\214\000\000\002\226\000\000\002\238\004n\004z\015e\015e\015e\tZ\000\000\004\134\000\000\000\000\000\000\000\000\015e\001\218\002\186\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\004\138\000\000\015e\015e\015e\000\000\000\000\000\000\015e\000\000\015e\015e\015e\002\234\002\206\004^\000\000\000\000\015e\002\226\000\000\002\238\004n\004z\011\250\000\000\000\000\000\000\000\000\004\134\001\210\001\214\000\000\000\000\000\000\015e\b\n\000\000\000\000\000\000\000\000\000\000\001\210\001\214\027\138\000\000\004\138\000\000\000\000\001\218\002\186\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\000\000\001\218\001\222\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\000\000\002\234\002\206\004^\000\000\000\000\000\000\002\226\000\000\002\238\004n\004z\000\000\001\254\002\206\004^\000\000\004\134\000\000\002\226\004\169\002\238\004n\004z\000\000\000\254\000\000\000\000\002\026\004\134\000\000\000\000\001\210\001\214\004\138\000\000\000\000\000\000\022\182\000\000\000\000\000\000\004\169\000\000\003\174\000\000\004\138\000\000\000\000\000\000\000\000\001\218\002\186\001\238\000\000\000\000\022\186\000\000\000\000\000\000\000\000\001\250\000\000\022\226\023\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\230\022\018\025\030\000\000\024>\000\000\002\226\022*\002\238\004n\004z\000\000\000\000\000\000\000\000\000\000\025.\000\000\000\000\000\000\000\000\000\000\000\000\0222\000\000\001\210\001\214\027\234\000\000\000\000\000\000\000\000\000\000\004\138\000\000\000\000\001\210\001\214\022:\023z\000\000\000\000\004\169\004\169\001\218\001\222\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\001\218\002\186\001\238\000\000\000\000\023\138\000\000\000\000\000\000\000\000\001\250\000\000\000\000\001\254\002\206\004^\001\210\001\214\000\000\002\226\000\000\002\238\004n\004z\002\234\004\214\004^\000\000\000\000\004\134\002\226\000\000\002\238\004n\004z\001\218\002\186\001\238\000\000\000\000\004\134\000\000\000\000\000\000\000\000\001\250\004\138\000\000\000\000\000\000\000\000\001\210\001\214\000\000\000\000\000\000\000\000\004\138\000\000\002\234\004\230\004^\001\210\001\214\000\000\002\226\000\000\002\238\004n\004z\001\218\002\186\001\238\000\000\000\000\004\134\000\000\000\000\000\000\000\000\001\250\001\218\002\186\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\004\138\000\000\002\234\005\170\004^\001\210\001\214\000\000\002\226\000\000\002\238\004n\004z\002\234\005\246\004^\000\000\000\000\004\134\002\226\000\000\002\238\004n\004z\001\218\002\186\001\238\000\000\000\000\004\134\000\000\000\000\000\000\000\000\001\250\004\138\000\000\000\000\000\000\000\000\001\210\001\214\000\000\000\000\000\000\000\000\004\138\000\000\002\234\006\014\004^\001\210\001\214\000\000\002\226\000\000\002\238\004n\004z\001\218\002\186\001\238\000\000\000\000\004\134\000\000\000\000\000\000\000\000\001\250\001\218\002\186\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\004\138\000\000\002\234\006&\004^\001\210\001\214\000\000\002\226\000\000\002\238\004n\004z\002\234\006\210\004^\000\000\000\000\004\134\002\226\000\000\002\238\004n\004z\001\218\002\186\001\238\000\000\000\000\004\134\000\000\000\000\000\000\000\000\001\250\004\138\000\000\000\000\000\000\000\000\001\210\001\214\000\000\000\000\000\000\000\000\004\138\000\000\002\234\006\234\004^\000\000\001\210\001\214\002\226\000\000\002\238\004n\004z\001\218\002\186\001\238\000\000\000\000\004\134\000\000\000\000\000\000\000\000\001\250\000\000\001\218\001\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138\000\000\002\234\007\002\004^\019\226\000\000\000\000\002\226\000\000\002\238\004n\004z\000\000\020j\000\000\004\218\000\000\004\134\000\000\002\226\000\000\002\238\004n\004z\001\210\001\214\000\000\000\000\000\000\004\134\000\000\019\234\000\000\000\000\004\138\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\001\218\002\186\001\238\004\138\000\000\000\000\000\000\020:\000\000\000\000\001\250\001\218\002\186\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\000\000\000\000\002\234\031\018\004^\001\210\001\214\000\000\002\226\000\000\002\238\004n\004z\002\234\031n\004^\000\000\000\000\004\134\002\226\000\000\002\238\004n\004z\001\218\002\186\001\238\000\000\000\000\004\134\000\000\000\000\000\000\000\000\001\250\004\138\000\000\000\000\000\000\000\000\001\210\001\214\000\000\000\000\000\000\000\000\004\138\000\000\002\234\031\154\004^\001\210\001\214\000\000\002\226\000\000\002\238\004n\004z\001\218\002\186\000\000\000\000\000\000\004\134\000\000\000\000\000\000\000\000\000\000\001\218\002\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138\000\000\002\230\000\000\031\"\001\210\001\214\000\000\002\226\000\000\002\238\004n\004z\002\230\000\000\031\"\000\000\000\000\004\134\002\226\000\000\002\238\004n\004z\001\218\002\186\000\000\000\000\000\000\004\134\000\000\000\000\000\000\001\210\001\214\004\138\000\000\000\000\005-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138\000\000\002\210\0051\004\218\000\000\001\218\002\186\002\226\031:\002\238\004n\004z\000\000\000\000\000\000\000\000\000\000\004\134\000\000\031:\000\000\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\004j\000\000\004\218\000\000\000\000\004\138\002\226\000\000\002\238\004n\004z\001\218\002\186\000\000\000\000\000\000\004\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138\000\000\005\222\000\000\004\218\000\000\000\000\000\000\002\226\000\000\002\238\004n\004z\000\000\000\000\000\000\000\000\000\000\004\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138")) and lhs = - (8, "\014\r\012\011\n\t\b\007\006\005\004\003\002\001\000\236\236\235\235\234\233\233\232\232\232\232\232\232\232\232\232\232\232\232\232\232\232\232\232\232\232\232\231\231\230\229\228\228\228\228\228\228\228\228\227\227\227\227\227\227\227\227\226\226\226\225\225\224\223\223\223\222\222\221\221\221\221\221\221\220\220\220\220\220\220\220\220\219\219\219\219\219\219\219\219\218\218\218\218\217\216\215\215\214\214\213\213\212\212\212\212\211\211\211\211\210\210\210\209\209\209\209\208\207\207\207\207\207\207\207\206\206\205\205\204\204\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\203\202\202\201\201\200\199\198\197\197\196\196\195\195\195\195\194\194\193\193\192\192\192\192\192\192\191\190\189\189\188\188\187\187\186\185\185\184\184\183\182\182\181\180\179\179\179\178\178\178\177\176\176\176\176\176\176\175\175\175\175\175\175\175\175\175\175\175\175\175\175\175\175\174\173\173\172\172\172\172\172\172\172\172\172\171\171\170\170\170\169\169\169\168\168\168\168\167\167\166\166\165\165\164\164\163\163\162\162\161\161\160\160\159\159\158\158\157\157\157\156\156\156\156\155\155\154\154\153\153\152\152\152\152\152\151\151\151\151\150\150\149\149\149\148\148\148\147\147\147\147\147\147\147\146\146\146\146\146\146\146\145\145\144\144\143\143\143\143\143\143\142\142\141\141\140\140\139\139\138\138\138\137\136\136\136\135\135\134\134\134\134\134\134\134\134\134\133\133\132\132\131\131\131\131\131\131\131\131\131\131\131\130\129\128\127\127~~~~}}}}}|{{zzyyyyyyyyyyyyyyxxwwvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvuuttssrrqqppoonnmmllkkjjjjjjjjjjjiihgfedcba`_^]]]]]]]]]]\\\\\\[[[ZZZZZYYYYYYYYYXXWWWWWVVUUTSRRQQQQQPPOONNNMMMMMMLLLKKJJIIHHGGFFEEEDDCCBBAA@@??>>======<<;;::99888777666555444432111111111111111111100000//////////.............................................................................--,,,,,,,,,,,,,,,,,,,,,,+++++++++++++++++++++++++++++++++++++++++++++++++++++**)))((((((((((((((((((((((((((((((((((((''&&&&&&&&&&&&&&&&%%$$#######\"\"\"\"!! \031\031\030\029\028\028\028\027\027\026\026\026\026\026\026\026\026\026\026\025\025\024\024\024\024\023\023\022\021\021\021\021\021\020\019\019\018\018\018\017\017\017\016\016\016\016\016\016\015\015") + (8, "\014\r\012\011\n\t\b\007\006\005\004\003\002\001\000\244\244\243\243\242\241\241\240\240\239\239\238\237\236\236\236\236\236\236\236\236\235\235\235\235\235\235\235\235\234\234\234\233\233\232\231\231\231\230\230\229\229\229\229\229\229\228\228\228\228\228\228\228\228\227\227\227\227\227\227\227\227\226\226\226\226\225\224\223\223\222\222\221\221\220\220\220\220\219\219\219\219\218\218\218\217\217\217\217\216\215\215\215\215\215\215\215\214\214\213\213\212\212\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\211\210\210\209\209\208\207\206\205\205\204\204\203\203\203\203\203\202\202\201\201\200\200\200\200\200\200\199\198\197\197\196\196\195\195\194\193\193\192\192\191\190\190\189\188\187\187\187\186\186\186\185\184\184\184\184\184\184\183\183\183\183\183\183\183\183\183\183\183\183\183\183\183\183\182\181\180\179\179\178\178\178\178\178\178\178\178\178\177\177\176\176\176\175\175\175\174\174\174\174\173\173\172\172\171\171\170\170\169\169\168\168\167\167\166\166\165\165\164\164\163\163\163\162\162\162\162\161\161\160\160\159\159\158\158\158\158\158\157\157\157\157\156\156\155\155\155\155\154\154\154\153\153\153\153\153\153\153\152\152\152\152\152\152\152\151\151\150\150\149\149\149\149\149\149\148\148\147\147\146\146\145\145\144\144\144\143\142\142\142\141\141\140\140\140\140\140\140\140\140\140\139\139\138\138\137\137\137\137\137\137\137\137\137\137\137\136\135\134\133\133\132\132\132\132\131\131\131\131\131\130\129\129\128\127\127\127\127\127\127\127\127\127\127\127\127\127\127\127\127\127\127\127\127\127\127~~}}||{{{{{{{{{{{{{{zzyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxwwvvuuttssrrqqppoonnmmllkkkkkkkkkkkjjihgfedcba`_^^^^^^^^^^]]]\\\\\\[[[[[ZZZZZZZZZYYXXXXXWWVVUTSSRRRRRQQPPOOONNNNNNMMMLLKKJJIIHHGGGGFFFEEDDCCBBAA@@??>>>>>>==<<;;::9998887776665555432222222222222222222111110000000000/////////////////////////////////////////////////////////////////////////////..----------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++****))))))))))))))))))))))))))))))))))))(''&&&&&&&&&&&&&&&&%%$$#######\"\"\"\"!! \031\031\030\029\028\028\028\027\027\026\026\026\026\026\026\026\026\026\026\025\025\024\024\024\024\023\023\022\021\021\021\021\021\020\019\019\018\018\018\017\017\017\016\016\016\016\016\016\015\015") and goto = - ((16, "\002\006\001\147\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\000\000\000\000\001%\001n\000)\001\137\001\027\000\002\000\131\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\145\000\000\000\000\000\000\000\000\000\000\000Y\000\000\000\000\000\000\000Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\234\000\000\000\000\000\000\000\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0042\000\186\000\231\004h\000\000\000o$,\001\236\001\136\001\198\000\000\000\000\000\000\0020\000\000\000\000\000&\000\000\000\000\000\000\000\000\003t\000\000\002l\000\000\001\186\000q\000\000\000\000\000\000\002\002\000\000\000\000\000\000\000\000\002\146\000\000\000\000\004d\001\186\000\b\004\134\b\024\000\000\000\000\004<\000\000\t\206\0042\000\000\002\182(\246\000\000\003\028@\212\002\162\0042\002\236\003 \000\000\000\000\004D\002\146\002\238\003\226\001\200\004\134\006\"\003\154\003\026\000p\005\162\003\002\011`\000\000\005\b\005\198\003~\005\170:F\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\244\000\000\005\226\004\022\006p\000\000\000\000\000\000\000\000\014X\000\000\000\000\004h\003x\005\"\006@\007\208\000\000\000\000\000\000\006:\006f\0058\004\016\004\228\006,%\012\006\196\006@\000\135\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\224\006B\011\130\n,\005\b\005\186\011\182\000\000%\184\002\216%\218&|&\228\000\000\000\201\000\000\000\000\000\000\000\000\007\226H\234\007\252\000\000&4\b\012\000\000'<\000\028\001\024\000\000\000\000\000.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'\164\007\130\000\000\000\000\000\000\002\128\007\000\000\000\r|\007d\000\000\000\000\001\206\000\000\000\000\002F\001\144\000\000\000\000\002F\005\234\002F\000\000\000\000\007\128@\250\000\000\000\000\002\232\002\216\000\000\000\000I\136\000\000\007V\000\000\000\000\000\000\007\220\000\000\000\000\007\238\000\000I\164\007V\000\000\015 \bl\000\000\000\000\000\000\007V\000\000I\222\007V\t\244A\004\000\000I\254\007V\000\000\023\254\rx\000\000\000\000\000\000\000\000\030\208\r\128\000\000\000\000\000\000\000\000<\242\017\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:H\000\000\007T\b\214\000\0008\222\007d\012\014\000\000\000\000\000\000\000\000\007V\000\000\000\000\000\000'\168\000\000\000\000\000\000\000\000\000\000\000\000\003\022\b\212\000\000\000\000\000\000\007V\b\250:\146\bP\007\132J4\000\000\003\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\174\000\000\000\000\000\000\000\000\t\194;>\000\000\000\000\b\178\007\176;H\000\000\000\000\000\000;V\003<<\026\000\000\003<\000\000<$\003<\000\000<\\$\244\t\140\t\208\000\000\000\000Jr\000\000\000\000\000\000\000\000\000\000\000\000\003<\000\000\000\000(*\n\014\030\000\00036\018\180\000\000\000\000\019:\000\000\000\0003t\000\000\000\000Gb\014.\000\000M \007V\019\142\000\000\000\000M`\007V\020\020\000\000\000\000\0206\000\000\000\000\000\000M\174\007V\020\138\000\000\rd\020\238\000\000>D\000\000\003<>\174\000\000\003<>\234\000\000\003<\b\030\000\000\000\000\000\000\000\000\000\000?P\003<\000\000\003\212\005V\000\000\000\000\000\000\0007\021\016\000\000\000\000\000\000\021\194\000\000\000\000\000\000\000\000\000\000\021\228\000\000\000\000\000\000\0007\022\156\000\000\022\180\000\000\000\000\000\000\022\190\000\000\000\000\000\000\000\000Q2\000\000\000\000\022\214\000\000\000\000\000\0002\232\0007\023\172\000\000\000\000\000\0003\232\0007\023\180\000\000\000\000\000\0004\012\0007\007\164\024X\000\000\000\0004p\0007\024\172\000\000\000\0004\196\0007\024\180\000\000\000\0004\220\0007\000\000\000\000\025\134\000\000\000\0005\178\0007\025\168\000\000\000\0005\202\0007\026Z\000\000\000\0006\030\0007\000\0006v\0007\000\000\007Z\000\000\000\000\0007\000\000\000\000\026|\000\000\000\000\026\132\000\000\000\000\r\214\000\000\000\000\026\224\000\000\027V\000\000\000\000\000\000*\n\014\134\000\000A\252\t\150\002F\027x\000\000B\n\000\000\000\000\000\000B\136\000\000\000\000\028L\000\000\028p\000\000\000\000\000\000\000\0006\196\000\000\000\000\000\0007\030\00077l\0007\000\000\rd\028\154\000\000\000\000\029@\000\0007\224\000\000\000\000\029\028\000\000\000\000\000\000\029N\000\000\000\000\000\000\000\000\005(7\164\0007\0036\000\000\0018?\192@\006\003<8~\0007\003<8\160\00078\216\00079p\0007\000\000\000\000\000\000\r\246\000\000\000\000\000\000\030\030\000\000\000\000\000\000\000\000\005H\r\246\000\000\030@\000\000\000\000\000\000\000\000\005\166\r\246\000\000\015@\000\000\000\000\000\000?\136\000\000\006\172\000\000\004T\000\000\014\224\000\000\t\n\000\000\000\000\000\000\000\000\000\000\000\000\007\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0007\000\000\015Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\210\r\246\000\000\000\000\000\000\000\000\000\000\006T\r\246\000\000\000\000\t\152\0070\000\193\030X\000\000\014L\t\154\014\222\003X\b\134\000\193!\186\004\016\n\226\000\193\000\000\031\016\000\000\004\170\000\000\014`\n\006\006\188\000\000\000\000\000\000\000\000\000\000\014z\016\002\t\174\002F\000\239\000\000\000\000\000\000\000\000\000\000\011\192\000\000P\248\000\000\n\018\000\000\nr\000\000\000\000\000\000\000\000\004\024\000\000\000\000\0114\002F\000\000\015D\015\204\002F\016\250\002F\002F\000\000\002F\005\250\000\000\0172\000\000\017\228\002F\002F\000\000\018\218\002F\002F\n\132\000\000\0312\000\000\000\000\n\136\015\\\000\000\031\222\006l\000\000\000\000\000\000\000\000\015$\000\000\000\000\000\000\000\000\0007\000\000\000\000\000\000\000\000\000\000\006h\r\246\000\000\000\000\014z\n\152\r&\000\193\000\000$\206\000\000\004\016\000\000\015\228\000\000\000\000\000\000\000\000\000\000 \160\000\000\0007\000\000\000\000%l\000\000\004\016\000\000&\182\000\000\004\016\000\000(D\004\016\000\000\003\152\000\000\n\158\rb\004Z\000\000\014\146\014\156\n\166\014\196\015\144)~\004\016\007\212\000\000\n\180\015l\015\142\006\132\b\n\015`\n\212\015\178\007V\b2\015x\000\000\000\000\b\004\br\000\000\004\004\003\184@\218\003< L\000\000\006\006\001n\000\000\000\000\015,\n\248\b\250\000\000&\222\000\000M\200\007V\000\000\015\212\015\216\000\000\b\138\000\000\007V\015>\011\030\b\248\015b\005\028\000\000\000\000\000\000\000\000\011\"\011\004\000\000\011$\011J\000\000\bhBp\015P\015R\011L\006z\011\158\000\000\011h\006\160\011\180\000\000\015V\015^\011j\015\132\015\144*J\004\016\000\000\011p\015\242\000\000\007\190\000\000\011\234\000\000\015\244\000\000*\132\005p\015\194\011\178\016\002\000\000*\162\007\218\015\202\000\000\000\000\004\188\001\130\012\000\000\000+P\004\016\012.\000\000\005\150\000\000\015|\011\182\tv\015b\015\134\015\136\011\206\016\250\000\000\015\156\002\216\000\000\000\000\000\000\t\216\000\000\000\000\000\000\000\235\011\208\015lM\252\007V\000\000\000\186\011\218\016F\000\000\000\000\000\000\000\000\000\000\000\000NJ\t\b\000\000\011\220\016\160\000\000\000\000\000\000\000\000\000\000\000\000B\208\012>\000\000\011\252\000\231\000\000\012\b\012.\t\"\000\000\000\159\031\240\000\000\003B\000\000N\158\007V\007V\000\000\000\000\t\182\000\000\t\226\000\000\000\146\t\182\t\182\000\000\012Z\025D\007VN\198\007V\012b\000\000\000\000\000\000\000\000\012\154\000\000\000\000\001\246\000\000\t\210\015\252\012\142\017 \015\192\000\000\000\000\002\222\t\238\016\004\000\000\000\000\012\146\017(\015\198\000\000\000\000\018f\000\000\021>\000\000\023|8\b\007V\000\000',\022(\000\000*n\000\000\000\000\000\000\t\182\000\000\000\000\012\174\016\016\012\158\017:\015\216\000\000\000\000,z\012\214\016\028\000\000\000\000\000\000B\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\220\000\000\015\224\012\186,\014\011D\000\000\0166\012\190\007j\000\000\017<\016\232\r\024\016@\000\000\000\000\016D\012\220\007\166\000\000\000\000\b\174\000\028\005\024\000\000\000\000\000\000\012\006\016\n\012\230\000\000\016\014\012\006\000\000\016\250\r\194\016`\000\000\000\000\000\000\007V\0026\002\174\005\224\000\000\000\000\000\000\000\000\016\"\r\"\000\000\0074\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007V\016\022\r<\017\136\016(\000\000Cd*\n\001\t\r>\015\246\000\147\000\180\rh\016\184\000\000\000\000\017z T\000\000\000\000 \190\000\000\r\196\000\000\004\246\000\000\000\000\000\000\000\000\000\000\000\000N\202\007V\000\000\017~!b\000\000\000\000!\212\000\000\004\026\rj\017\028\000\000\000\000C\190C\184\016\206\000\000N\236\007V!\250\000\000\000\000\"Z\000\000\000\000\014$\000\000\011\236\000\000\000\000\000\000\000\000\000\000\000\000D\014\000\000\000\000DPD\160\016\208\000\000Ol\007V\"\128\000\000\000\000\"\242\000\000\000\000\rz#\024\014*\000\000\r\214\r\222\004\188\007D\r\230\006f\r\248\0170#\132\014,\000\000\r\250\014\024\t\238\000\000\bFG\222\000\000\002\220\000\000\0148C\220D\184\017\130\016\004\019\254\000\000\019\226\007Z\000\000\t\214\000\000\000\000\t\214\000\000\000\000\t\214\n\028\000\000\023\226\t\214\017:#\236\014\158\000\000\t\214\000\000\000\000,\252\000\000\000\000\000\000\t\214\000\000\000\000\014\228\000\000\027*\011\216\014\238\000\000\014HH\000\014\250\000\000\000\000\000\000\000\000\015\012\000\000\000\000\000\178\000\000\t\2141 \000\000\028\018\t\214E<\000\000\015,\016\144\014X\017\184\016X\000\000Et\015.\016\154\000\000\000\000\000\000\003\250\t\254\000\000\000\000\000\000\000\000\000\000\000\000\r\b\0156\000\000\016T\014\132\r\174\005\024\000\000\016\178\000\000\000\000\000\000\000\000\015P\018\"\000\000\000\000\000\000\r\b\000\000\000\000\000\000\000\000\015bHF\000\000\000\000\000\000\000\000\000\000\000\193\004\016\000\000\000\000\003<\000\000O\178\007V\000\000\005l\000\000\000\000\000\000\000\000\"\206\000\000\000\000\000\000\000\000\000\000\000\000\017P\001\018\012\136\016\n\007v\014\162\000\000\000\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\"\011\014\014\216\000\000\tB\017\184\017b\015l\000\000\000\000\017V\011\210\000\026\000\000\000\000\000\000\000\000Hn\014\250\000\000\015\004\004x\000\000\000\000\002F\t\234\000\000\000\000\000\000\000\000\000\000O\194\007V\000\000A\020\0220\000\000\000\000\000\000\025\254Ev\000\000O\212\007V\000\000Ql\027\242\000\000\000\000\000\000\000\000Q\190\030j\000\000\000\000\000\000\000\000Q\224\"\162\000\000\000\000\000\000\000\000P\002\007V\000\000Q\228#X\000\000\000\000\000\000\000\000\000\000Pj\007V\000\000R&%6\000\000\000\000\000\000\bP\000\000\000\000\000\000\007V\000\000\000\000\b\244\017n\015n\000\000\000\000\017h\n\138\004\148\000\000\000\000\000\000\000\000\t\196\017\184\t\180\017z\015\162\000\000\000\000\017p\n\158\005f\000\000\000\000\000\000\000\000\004\016\000\000\015\214\000\000\000\000\000\000$\132\000\000$\170\000\000\000\000\000\000\000\000\000\0009\\\000\000\000\000\000\000\000\024\000\131\000\000\000\000\000\000\000\000\000\000\b|\000\131\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\182\000\000\000\000\000\000H\132\000\000\007V\000\000\000\246\000\000\000\000\000\000\000\173\000\000\000\000\000\000\004\224\000\000\000\000\000\000\001\156\000\000\000\193\000\000\t\140\000\000\004\016\000\000\000k\000\000\000\000\000\0009\016\003<\000\000\000\000\000B\000\000\000\000\000\000\000\000\007\226\004\176\016\162\002\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Hv\000\000\015\242\000\000\000\000\000\000\000\000\005H\006\216*\212E\160\000\000\000\000\015\248E\200\000\000\000\000\000\000\016\012E\210\000\000\000\000\000\000\000\000"), (16, "\007\011\000=\002y\002z\001\166\000\246\000A\004\176\000\250\000\251\002e\002y\002z\001\166\007\249\007\206\003\144\002\194\007\012\007 \000B\001\029\007\014\001\029\000s\001\166\002\195\001$\001'\001$\001'\007\015\007!\002X\007\178\004]\007\222\000\246\006\200\002\221\000\250\001\014\004f\b\t\001,\000\149\000\131\001-\000\160\0009\001\138\001\015\007\250\000o\001C\b\017\002z\001\166\001$\001\029\004\187\004\189\004\191\007\016\0009\001$\001'\007$\004s\006\202\000\246\001\140\0014\000\250\000\251\b\n\007\011\001\018\002y\002z\001\166\006\241\000\161\000\158\005\201\002<\005\201\006\203\000\158\002@\007O\001$\006\205\002\194\007\012\007 \006\249\003\144\007\014\005\202\007\017\005\202\002\195\005\226\002\223\005\209\000\134\007\015\007!\006\244\007\018\006q\000^\002|\000\158\002\221\007\223\002}\000\155\002\225\000\250\001A\005\201\007P\000\165\006\246\004j\b\019\002\225\000\250\001\014\000\156\007Q\002f\002A\001\172\007%\005\202\001\127\007\016\000b\005\203\001\029\007$\000f\002y\002z\001\166\001$\0016\007\224\007&\001\029\002R\006\247\007\231\001$\000\252\001$\0016\002\194\001 \007\021\001\165\001\166\007\023\004`\001$\007\028\002\195\b\020\007c\002\225\000\250\000\158\007\245\007\017\004?\007\030\000{\002\223\002\226\002\221\002\232\001\167\001\183\007\018\001\169\001\170\002\238\002\226\001\204\002\228\002}\007\237\002\225\000\250\007\031\002\227\007\232\001\204\002\228\002\237\007\011\007P\002y\002z\001\166\001J\004\019\007\204\001\029\007%\007Q\007N\0017\002\240\001$\001'\001\137\002\194\007\012\007 \007\233\007\247\007\014\0009\007&\005P\002\195\001\184\000\250\001\185\002\153\007\015\007!\000\246\000<\007\021\000\250\001\014\007\023\002\221\006\248\007\028\007\234\001<\002\223\005\218\001M\001\247\006s\000;\000\166\007\030\007\186\0025\002\226\007F\002\232\002}\001,\002\225\000\250\001\192\002\238\007\016\001\204\002\228\002G\007$\006\244\000\250\007\031\005\201\005\221\001\018\001\175\001\029\007\011\000\250\002y\002z\001\166\001$\001'\007C\006\246\004\022\005\202\002\"\005\223\002\240\005\208\002\229\000\130\002\194\007\012\007\211\001\173\007\238\007\014\001\204\007\017\b\001\002\195\000\166\002\223\000\168\0025\007\015\007!\002Z\007\018\005\224\0028\006\247\0045\002\221\000\158\002}\001;\002\225\000\250\002\226\002<\002\232\007R\007S\002@\005\131\001$\002\238\000\250\001\204\002\228\007T\007U\001\029\007%\b\002\001\194\007\016\002g\001$\001'\000\250\007V\004\218\001\195\001,\001\204\001\173\001w\007&\000\149\001(\000\137\000\160\002\240\001x\006:\b\029\002z\001\166\007\021\001\029\001,\007\023\001\029\004B\007\028\001$\0016\002A\001$\0016\001,\0014\007\017\007\157\007\030\000\157\002\223\002\226\000\158\002\232\002\000\001\166\007\018\000\166\002I\002\238\005\150\001\204\002\228\002}\001$\002\225\000\250\007\031\000\166\001H\007Z\0025\0014\005\225\002h\001\167\002\142\002R\001\169\001\170\007'\000?\007%\001:\0009\000\159\002\240\007\011\006:\002y\002z\001\166\000\158\005\151\001A\001,\001\029\007&\007\142\0017\005\221\000\164\001$\0016\002\194\007\012\007 \0009\007\021\007\014\0009\007\023\007\213\002\195\007\028\000\136\005\223\000\158\007\015\007!\004\029\003\138\003\139\0014\007\030\001\029\002\221\002\226\002L\002\232\0018\001$\0016\001\149\001$\002\238\000\153\001\204\002\228\005\224\006A\006B\001\029\007\031\b\030\0043\002\225\000\250\001$\0016\007\016\007r\001\029\000\158\007d\001\192\006R\000\191\001$\0016\006K\004\218\002\240\007\011\000\152\002y\002z\001\166\001\175\001\029\000\246\000\250\001\029\000\250\000\251\001$\001'\001\029\001$\001'\002\194\007\012\007 \001$\0016\007\014\001\152\007\017\0017\002\195\000\166\002\223\000\193\0025\007\015\007!\007\011\007\018\004 \004%\006A\006B\002\221\001\029\002}\0017\002\225\000\250\001\161\001$\0016\003\144\003\144\000\201\007\012\0017\006J\002Z\007\014\001<\006K\004\218\001\029\007%\0009\000\158\007\016\007\015\001$\001'\007)\004\155\001\194\002e\001,\005\201\007n\001-\007&\0045\001\195\003\144\001\204\001\173\001C\0072\001<\001G\002g\007\021\005\202\000\250\007\023\004a\005\234\007\028\000\167\006\195\000\166\007\016\002(\0025\0014\007\017\001D\007\030\0017\002\223\002\226\001,\002\232\003\144\000\186\007\018\007\158\000\206\002\238\000\195\001\204\002\228\002}\000\158\002\225\000\250\007\031\005\019\007E\007\011\004\158\002y\002z\001\166\004C\002Z\004A\000\198\007\017\001<\002\244\007%\005\197\b \b!\002\240\002\194\b#\007\018\000\158\003\144\007\014\001\191\001A\002h\002\195\007&\003\146\001\029\004\176\007\015\b%\006x\005\018\001$\0016\002g\007\021\002\221\000\250\007\023\004b\002e\007\028\007\019\002y\002z\001\166\000\246\003\144\006\148\000\250\001\014\007\030\001\029\000\158\002\226\005l\002\232\007\020\001$\0016\007\016\000\219\002\238\006\150\001\204\002\228\002f\004\242\007\021\002$\007\031\007\023\007\200\007\011\007\028\002y\002z\001\166\b4\002<\004\190\004\189\004\191\002@\007\030\001$\002)\001\029\b,\002\240\002\194\b-\005\023\001$\0016\007\014\007m\007\017\002h\002\195\007\253\002\223\000\228\007\031\007\015\b5\000\174\007\018\001J\002Z\004\159\004D\002\221\003\144\002}\0017\002\225\000\250\005\135\001\\\000\246\007\182\0052\000\250\000\251\000\190\002;\004N\002A\000\158\b(\000\158\002y\002z\001\166\002e\007\016\002^\007\254\006|\002g\000\250\002B\000\250\003\144\002|\001<\002\194\007&\001M\0017\002Z\003\144\006\200\007\183\004\176\002\195\003\144\002}\007\021\002\225\000\250\007\023\002f\001,\007\028\004\236\004\158\005P\002\221\000\158\000\250\001,\007\017\004V\007\030\005\137\002\223\002\226\002i\002\232\007n\002g\007\018\006\202\000\250\002\238\007\027\001\204\002\228\002}\0009\002\225\000\250\007\031\000\230\004\130\007\011\002M\002y\002z\001\166\006\203\004\194\002h\b9\000\238\006\205\0063\004\189\004\191\006\228\004\204\002\240\002\194\007\012\007/\003\157\003\145\007\014\000\250\001\014\002\226\002\195\007&\007<\007\196\005\138\007\015\007!\002\227\005x\001\204\002\228\002\223\007\021\002\221\000\196\007\023\0009\005S\007\028\001\204\002y\002z\001\166\002h\002}\002N\002\225\000\250\007\030\004G\006\244\002\226\004\176\002\232\003\174\002f\007\183\007\016\004\137\002\238\000\158\001\204\002\228\002\237\004n\004G\006\246\007\031\004\240\001\029\007\011\000\158\002y\002z\001\166\001$\0016\001\029\002\229\002\237\003\144\004_\005\137\001$\0016\b,\002\240\002\194\b-\002Z\001\224\001\166\007\014\002Z\007\017\006\247\002\195\000\200\002\223\002;\001,\007\015\b0\0010\007\018\006G\004\189\004\191\002\226\002\221\004\239\002}\004G\002\225\000\250\000\205\002\238\002[\001\204\002\228\002g\002\134\007;\000\250\002g\000\241\002\237\000\250\0014\000\218\007%\000\222\0017\007\016\004G\000\244\001\001\002y\002z\001\166\0017\005_\002|\002\240\005%\007&\004\210\001$\002\237\000\166\001,\006$\0025\0013\004\224\002}\007\021\002\225\000\250\007\023\005c\003\232\007\028\001>\001,\000\246\001$\001q\000\250\001\014\007\017\004\213\007\030\005\020\002\223\002\226\0058\002\232\0014\000\166\007\018\006.\0025\002\238\002h\001\204\002\228\002}\002h\002\225\000\250\007\031\0014\000\158\007\011\000\237\002y\002z\001\166\004G\002Z\004\158\b3\000\158\000\158\004`\004m\001\166\001\029\004G\002\240\002\194\007\012\002\237\001$\0016\007\014\003\"\001\166\002\226\002\195\007&\004\176\002\237\006\182\007\015\007+\002\227\004\142\001\204\002\228\002g\007\021\002\221\000\250\007\023\003\136\001\166\007\028\002|\001,\000\246\000\243\001-\000\250\000\251\004\168\004\218\007\030\005*\001C\002\226\002}\002\232\002\225\000\250\001\000\007\016\001\029\002\238\003\144\001\204\002\228\003\144\001$\0016\005P\007\031\0014\000\250\006\017\0017\001\029\001\136\006\200\006O\004\189\004\191\001$\0016\001,\001\134\001,\001-\007\229\001Y\002\240\003\144\006:\003\212\001C\003\234\000\250\001\014\007\017\002h\001\154\001\158\002\223\006\018\006X\006\019\001<\005r\007\018\006\202\004\158\003\144\0014\001$\0014\002}\001\022\002\225\000\250\001,\002\226\001A\001-\001\182\001\025\0017\001+\006\203\002\227\001C\001\204\002\228\006\205\003\229\007.\007\173\006\221\006\020\005 \0017\005/\005~\007L\003\144\001\204\000\158\001L\0014\002\024\007&\005>\001\166\001\029\000\158\001,\003\144\001<\001-\001$\0016\007\021\001A\002\026\007\023\001C\005&\007\028\006:\004\176\000\158\001<\001P\002!\006\021\000\246\002Z\007\030\000\250\000\251\002\226\001S\002\232\0014\006\022\006\023\005+\006\024\002\238\004e\001\204\002\228\000\158\001\029\007_\001\029\007\031\001A\004\158\001$\0016\001$\0016\006:\004\150\006A\006B\002g\006\200\001J\000\250\006=\006Y\002;\002t\002\240\0017\000\158\0050\003\144\006C\006S\007\168\004\189\004\191\006K\004\218\001\130\001\029\002w\005H\000\158\001A\001\151\001$\0016\001,\006\026\001\242\006\202\006\028\000\158\002\133\006!\006+\001\157\007\175\001<\001,\001J\001M\001,\007\230\006U\001-\002\148\0017\006\203\0017\007\192\006Z\001C\006\205\001\029\001,\000\166\006\212\001-\005\154\001$\0016\002h\006V\000\246\001C\001\240\000\250\001\014\001,\0014\006A\006B\000\158\001,\001J\005\192\001k\001<\000\250\001<\001M\0017\0014\005\174\001\181\006C\006S\000\158\b\005\006:\006K\004\218\001\029\002y\002z\001\166\003\144\002\151\001$\0016\000\158\0014\006:\004`\002\157\006A\006B\002\183\002\194\001J\003\144\002\188\001<\000\158\001\200\001M\0017\002\195\001A\002$\006C\006S\b\006\004\252\003\144\006K\004\218\005M\004\218\002<\002\221\001A\007\189\002@\001\029\001$\002y\002z\001\166\003 \001$\0016\006\231\002y\002z\001\166\001\029\001<\001\199\001\029\001M\002\194\001$\0016\001L\001$\0016\001\029\004\141\004\147\002\195\001\246\001\029\001$\0016\000\158\004'\003\232\001$\0016\005\210\005\206\000\158\002\221\000\250\000\158\001\029\006\190\002A\000\158\000\250\001\029\001$\0016\005\227\007p\002\012\001$\0016\000o\005\142\004\218\002B\003\233\007\181\002\223\001,\0017\005\235\001-\006\214\006A\006B\000\250\007\195\001J\001C\000\158\002}\0017\002\225\000\250\0017\004\162\006A\006B\006C\006S\001J\004\183\002\n\006K\004\218\004\228\0014\0017\000\158\000\158\004\003\007\171\007\172\002\018\000o\001,\006K\004\218\005@\004\226\002\223\0017\004\171\005\204\002\229\001<\0017\002|\001M\002y\002z\001\166\004\219\002}\007\202\002\225\000\250\005\204\001<\006\207\002}\001M\002\225\000\250\002\194\003\144\002y\002z\001\166\004\185\002Z\005\204\007n\002\195\002\226\001A\002\232\001<\004\215\007?\004\220\002\194\002\238\000\158\001\204\002\228\002\221\002\229\004\245\000\158\002\195\005\021\002y\002z\001\166\005\027\005\001\003\144\004\154\003\235\003\144\002g\005\"\002\221\000\250\001,\001\029\002\194\001-\002\240\007\184\007\185\001$\0016\006\155\001C\002\195\002\226\005(\002\232\007\184\007\185\004\234\005P\002\226\002\238\000\250\001\204\002\228\002\221\006K\004\218\002\227\0014\001\204\002\228\005=\000\158\004\140\005U\006K\004\218\003\144\001\029\001,\004\179\000\158\001-\000\158\001$\0016\002\223\002\240\003\144\001C\005L\000\158\005T\005W\000\158\004\182\007b\001J\000\158\002}\002h\002\225\000\250\002\223\0017\000\158\006 \0014\005I\005X\002y\002z\001\166\005^\006\159\003\144\002}\001A\002\225\000\250\002\023\000\158\002y\002z\001\166\002\194\003\144\005b\005h\002\223\007X\005n\001\204\002\229\002\195\001<\006\235\002\194\001M\000\158\004\225\0017\002}\002\029\002\225\000\250\002\195\002\221\001\029\003\144\002\229\005`\004\139\002Q\001$\0016\001A\003\144\000\158\002\221\000\158\000\158\005d\002\226\005z\002\232\005\141\002.\002y\002z\001\166\002\238\004\193\001\204\002\228\003\144\002\229\002;\005\146\005\159\002\226\000\158\002\232\002\194\005\165\005\176\0020\001\029\002\238\005s\001\204\002\228\002\195\001$\0016\000\158\000\158\002?\002\240\000\158\005\132\005\187\004\133\003\144\001J\002\221\002\226\005\205\002\232\007R\007S\0017\002\223\003\144\002\238\002\240\001\204\002\228\007T\007U\002y\002z\001\166\005\136\002\223\002}\005\191\002\225\000\250\007V\004\218\005\185\000\158\003\144\000\158\002\194\003\144\002}\002P\002\225\000\250\002\240\001<\001J\002\195\004\186\000\158\000\158\005\212\005\217\0017\006\207\000\158\000\158\004~\0067\004\218\002\221\004{\002\229\001,\004w\001,\001h\001,\001?\003\144\001n\002s\000\158\002\223\002\229\001@\002v\005\229\000\158\005\239\005\222\002y\002z\001\166\001<\006\b\002}\001\133\002\225\000\250\006\006\0014\002\226\0014\002\232\0014\002\194\000\158\002Z\006\030\002\238\006#\001\204\002\228\002\226\002\195\002\232\002y\002z\001\166\006\014\004p\002\238\006\027\001\204\002\228\006-\002\132\002\221\000\158\002\229\0069\002\194\007J\004\218\002\223\004\246\002\240\002Z\002g\002\147\002\195\000\250\002y\002z\001\166\002\150\004\028\002}\002\240\002\225\000\250\001A\006(\002\221\000\158\002\156\000\158\002\194\002\175\002\226\006M\004\136\000\158\003\144\003\144\005\022\002\195\002\238\002g\001\204\002\228\000\250\004\023\006]\006d\002Z\000\158\002\169\000\158\002\221\001\029\002\229\001\029\002\172\001\029\002\178\001$\0016\001$\0016\001$\0016\002\223\000\158\002\240\006h\006\133\002\182\000\158\002y\002z\001\166\002h\007\026\006\173\002}\002g\002\225\000\250\000\250\002\187\002\226\003\144\004\129\002\194\003\144\003\144\002\207\002\223\002\238\003\147\001\204\002\228\002\195\003%\002y\002z\001\166\000\158\004\012\003/\002}\002h\002\225\000\250\003.\002\221\006?\006r\002\229\002\194\000\158\000\158\0017\002\223\0017\002\240\0017\003Z\002\195\006\233\002y\002z\001\166\006\178\003\253\003g\002}\006\217\002\225\000\250\003\137\002\221\000\158\000\158\002\229\002\194\006\183\006\213\002\226\002h\002\232\000\158\003\144\001<\002\195\001<\002\238\001<\001\204\002\228\003\245\002$\006\189\001,\0073\006\149\001Z\002\221\006\175\006\186\002\229\002<\003\248\001[\002\226\002@\002\232\001$\006\197\004\000\002\223\001,\002\238\002\240\001\204\002\228\006\238\003\144\002y\002z\001\166\0014\003\144\002}\007\003\002\225\000\250\000\158\003\144\004F\002\226\000\158\002\232\002\194\004Y\000\158\002\223\003\144\002\238\002\240\001\204\002\228\002\195\004c\000\158\000\158\007\025\004y\002\218\002}\002A\002\225\000\250\003\144\003\144\002\221\006\220\002\229\003\144\004\146\000\158\007M\002\223\004\148\002B\002\240\002y\002z\001\166\004\161\001A\003\144\004\214\004\222\004\229\002}\000\158\002\225\000\250\001,\003\144\002\194\004\244\002\229\000\158\003\144\003\144\002\226\007Y\002\232\002\195\006\232\000\158\004\255\005!\002\238\006\236\001\204\002\228\005\026\003\237\001\029\006\240\002\221\005\028\007i\001,\001$\0016\002\229\007k\006\245\003\144\002\226\000\158\002\232\002y\002z\001\166\001\029\002\223\002\238\002\240\001\204\002\228\001$\0016\007\001\007\b\000\158\005\031\002\194\007\022\002}\005.\002\225\000\250\004\194\003\144\002\226\002\195\002\232\002y\002z\001\166\007\"\002\231\002\238\002\240\001\204\002\228\005$\003\144\002\221\007,\003\144\000\158\002\194\005-\007^\007\177\002y\002z\001\166\0017\003\144\002\195\002\229\002\223\005)\005,\005<\002\246\000\158\002\240\005G\002\194\005F\000\158\002\221\005K\002}\0017\002\225\000\250\002\195\007\191\001\029\005V\005a\005]\002\245\005m\001$\0016\001<\005g\002\226\002\221\002\232\005i\005\129\005u\003W\001\166\002\238\005\128\001\204\002\228\005{\005\127\005\140\007\203\004\200\001\029\002\229\005\238\005\145\002\223\005\148\001$\0016\005\155\005\163\003u\001\183\b&\001\169\001\170\b1\001,\002}\002\240\002\225\000\250\005\170\005\181\005\237\005\230\b6\005\231\005\236\005\240\005\241\002\223\002\226\001,\003\163\006\016\001t\0017\006\t\006\n\002\238\006\015\001\204\002\228\002}\001,\002\225\000\250\006\029\006*\002\223\006&\002\229\006'\006)\006T\003z\003\138\003\139\0068\006<\0014\006>\002}\0017\002\225\000\250\002\240\004\197\006@\004\201\006L\002y\002z\001\166\006\\\004\194\006^\002\229\006_\006e\006j\002\226\006n\002\232\006\128\006\135\002\194\006\139\006\163\002\238\001\192\001\204\002\228\006\184\004\202\002\195\002\229\006\208\006\218\007\n\007\004\003;\007\005\001\175\007\t\007\024\000\250\002\226\002\221\002\232\007\029\007H\007\\\007]\007a\002\238\002\240\001\204\002\228\007\176\002y\002z\001\166\007\180\001\029\007\190\002\226\007\194\002\232\b\024\001$\0016\000\000\001,\002\238\002\194\001\204\002\228\003\142\003\143\001\029\000\000\002\240\000\000\002\195\000\000\001$\0016\000\000\000\000\003>\000\000\001\029\000\000\007\011\000\000\000\000\002\221\001$\0016\000\000\002\240\000\000\000\000\000\000\000\000\000\000\001\194\000\000\002y\002z\001\166\007\012\002\223\000\000\001\195\007\014\001\204\001\173\000\000\000\000\000\000\000\000\000\000\002\194\007\015\002}\0017\002\225\000\250\000\000\000\246\000\000\002\195\000\250\000\251\000\000\000\000\001,\003R\000\000\005\250\000\000\0017\000\000\000\000\002\221\000\000\000\000\000\000\000\000\000\000\002y\002z\001\166\0017\000\000\007\016\004\199\000\000\002\229\004\206\002\223\000\000\006\200\000\000\0014\002\194\000\000\002y\002z\001\166\000\000\000\000\001<\002}\002\195\002\225\000\250\000\000\000\000\001\029\003U\000\000\002\194\000\000\004\209\001$\0016\002\221\002\226\000\000\002\232\002\195\007\017\006\202\001,\000\000\002\238\003]\001\204\002\228\000\000\000\000\007\018\000\000\002\221\000\000\000\000\002\229\000\000\002\223\000\000\006\203\000\000\005\252\000\000\000\000\006\205\000\000\000\000\000\000\006\209\000\000\002}\002\240\002\225\000\250\000\000\000\000\007#\000\000\000\000\000\000\000\000\000\000\002y\002z\001\166\002\226\000\000\002\232\000\000\000\000\0017\007\020\001\029\002\238\000\000\001\204\002\228\002\194\001$\005\255\002\223\000\000\007\021\000\000\002\229\007\023\002\195\000\000\007\028\000\000\000\000\000\000\003`\002}\000\000\002\225\000\250\002\223\007\030\002\221\002\240\004\208\000\000\000\000\002y\002z\001\166\000\000\000\000\000\000\002}\000\000\002\225\000\250\002\226\000\000\002\232\007\031\000\000\002\194\000\000\000\000\002\238\000\000\001\204\002\228\000\000\002\229\002\195\000\000\001\029\000\000\000\000\000\000\003k\006\000\001$\0016\000\000\000\000\000\000\002\221\000\000\000\000\002\229\000\000\002y\002z\001\166\002\240\005\202\000\000\006\005\000\000\006\002\000\000\000\000\002\226\000\000\002\232\000\000\000\000\000\000\000\000\002\223\002\238\001<\001\204\002\228\000\000\003\232\002y\002z\001\166\002\226\000\000\002\232\002}\000\000\002\225\000\250\000\000\002\238\000\000\001\204\002\228\002\194\000\000\002y\002z\001\166\000\000\002\240\0017\000\000\002\195\006\204\000\000\000\000\000\000\000\000\003p\000\000\002\194\000\000\000\000\002\223\000\000\002\221\002\240\000\000\002\229\002\195\000\000\000\000\000\000\000\000\000\000\003s\002}\000\000\002\225\000\250\000\000\004\212\002\221\000\000\000\000\000\000\000\000\002y\002z\001\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\226\000\000\002\232\000\000\002\194\000\000\000\000\002|\002\238\000\000\001\204\002\228\002\229\002\195\000\000\002$\000\000\000\000\002V\003y\002}\000\000\002\225\000\250\000\000\002<\002\221\000\000\000\000\002@\000\000\001$\002\223\000\000\000\246\002\240\000\000\000\250\000\251\002y\002z\001\166\002\226\000\000\002\232\002}\000\000\002\225\000\250\002\223\002\238\000\000\001\204\002\228\002\194\000\000\002y\002z\001\166\003\235\000\000\000\000\002}\002\195\002\225\000\250\000\000\006\200\000\000\003|\000\000\002\194\000\000\000\000\002A\000\000\002\221\002\240\000\000\002\229\002\195\000\000\000\000\000\000\002\226\000\000\003\150\001,\002B\000\000\005\246\002\223\002\227\002\221\001\204\002\228\002\229\000\000\006\202\000\000\000\000\000\000\000\000\000\000\002}\000\000\002\225\000\250\000\000\002\226\000\000\002\232\000\000\000\000\000\000\0014\006\203\002\238\000\000\001\204\002\228\006\205\000\000\000\000\000\000\006\206\002\226\000\000\002\232\000\000\000\000\000\000\000\000\000\000\002\238\000\000\001\204\002\228\002\229\002$\000\000\002\223\002S\000\000\002\240\002y\002z\001\166\000\000\002<\000\000\000\000\000\000\002@\002}\001$\002\225\000\250\002\223\000\000\002\194\002\240\002y\002z\001\166\000\000\000\000\000\000\002\226\002\195\002\232\002}\000\000\002\225\000\250\003\154\002\238\002\194\001\204\002\228\000\000\000\000\002\221\000\000\000\000\000\000\002\195\000\000\002\229\000\000\000\000\000\000\000\000\000\000\000\000\001\029\003\160\000\000\002A\002\221\000\000\001$\0016\002\240\001,\002\229\000\000\005\253\001,\000\000\000\000\007z\002B\000\000\000\000\000\000\000\000\000\000\002\226\000\000\002\232\000\000\000\000\000\000\000\000\000\000\002\238\000\000\001\204\002\228\000\000\000\000\0014\000\000\000\000\002\226\0014\002\232\000\000\000\000\000\000\000\000\000\000\002\238\000\000\001\204\002\228\002\223\000\000\000\000\000\000\000\000\000\000\002\240\002y\002z\001\166\000\000\0017\000\000\002}\000\000\002\225\000\250\002\223\000\000\002y\002z\001\166\002\194\002\240\002y\002z\001\166\000\000\000\000\000\000\002}\002\195\002\225\000\250\002\194\000\000\002y\002z\001\166\002\194\000\000\003\165\001<\002\195\002\221\000\000\000\000\002\229\002\195\000\000\000\000\002\194\000\000\003\167\000\000\000\000\002\221\000\000\003\171\000\000\002\195\002\221\000\000\000\000\002\229\001\029\000\000\000\000\000\000\001\029\003\179\001$\0016\002\221\000\000\001$\0016\002\226\000\000\002\232\000\000\000\000\000\000\000\000\000\000\002\238\000\000\001\204\002\228\000\000\000\000\000\000\000\000\000\000\002\226\000\000\003\163\000\000\000\000\000\000\000\000\000\000\002\238\000\000\001\204\002\228\000\000\000\000\000\000\002\223\000\000\000\000\002\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\223\002}\000\000\002\225\000\250\002\223\001,\0017\002\240\005\250\000\000\0017\000\000\002}\000\000\002\225\000\250\002\223\002}\000\000\002\225\000\250\002y\002z\001\166\000\000\002y\002z\001\166\000\000\002}\000\000\002\225\000\250\0014\002\229\000\000\002\194\001<\000\000\000\000\002\194\001<\000\000\000\000\000\000\002\195\002\229\000\000\000\000\002\195\000\000\002\229\000\000\000\000\000\000\003\185\000\000\000\000\002\221\003\191\000\000\000\000\002\221\002\229\002\226\000\000\003\163\000\000\000\000\000\000\001,\000\000\002\238\001i\001\204\002\228\002\226\000\000\003\163\000\000\001j\002\226\005\252\003\163\002\238\000\000\001\204\002\228\000\000\002\238\000\000\001\204\002\228\002\226\000\000\003\163\000\000\000\000\0014\002\240\000\000\002\238\000\000\001\204\002\228\000\000\000\000\002y\002z\001\166\000\000\002\240\000\000\001\029\000\000\000\000\002\240\000\000\000\000\001$\005\255\000\000\002\194\002\223\000\000\000\000\000\000\002\223\002\240\000\000\000\000\002\195\000\000\000\000\000\000\000\000\002}\003\198\002\225\000\250\002}\000\000\002\225\000\250\002\221\000\000\000\000\001A\000\000\002y\002z\001\166\000\000\002y\002z\001\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\246\002\194\000\000\000\250\000\251\002\194\000\000\002\229\000\000\000\000\002\195\002\229\000\000\006\000\002\195\001\029\003\203\000\000\000\000\000\000\003\208\001$\0016\002\221\000\000\000\000\002$\002\221\005\202\002%\006\004\000\000\006\002\006\200\000\000\000\000\002<\002\226\000\000\003\163\002@\002\226\001$\003\163\001<\002\238\002\223\001\204\002\228\002\238\000\000\001\204\002\228\000\000\000\000\000\000\000\000\000\000\000\000\002}\000\000\002\225\000\250\000\000\006\202\002$\000\000\000\000\002:\000\000\001,\000\000\002\240\001-\000\000\002<\002\240\000\000\0017\002@\001C\001$\006\203\000\000\000\000\002A\000\000\006\205\002\223\000\000\000\000\006\216\002\223\002\229\000\000\002y\002z\001\166\0014\002B\000\000\002}\000\000\002\225\000\250\002}\000\000\002\225\000\250\001<\002\194\000\000\002y\002z\001\166\000\000\000\000\000\000\000\000\002\195\000\000\000\000\000\000\002\226\002A\002\232\000\000\002\194\000\000\003\215\000\000\002\238\002\221\001\204\002\228\002\229\002\195\000\000\002B\002\229\000\000\000\000\000\000\000\000\000\000\000\000\003\220\001A\000\000\002\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\240\000\000\000\000\000\000\000\000\001,\000\000\002\226\007\136\002\232\000\000\002\226\000\000\002\232\000\000\002\238\000\000\001\204\002\228\002\238\001\029\001\204\002\228\000\000\000\000\000\000\001$\0016\000\000\000\000\000\000\000\000\000\000\0014\000\000\000\000\000\000\000\000\000\000\002\223\000\000\000\000\002\240\002y\002z\001\166\002\240\000\000\000\000\000\000\000\000\000\000\002}\000\000\002\225\000\250\002\223\000\000\002\194\000\000\002y\002z\001\166\000\000\002y\002z\001\166\002\195\000\000\002}\000\000\002\225\000\250\000\000\000\000\002\194\001J\003\225\000\000\002\194\002\221\000\000\000\000\0017\002\195\000\000\002\229\005\213\002\195\000\000\005\216\000\000\000\000\000\000\003\240\000\000\000\000\002\221\003\243\000\000\000\000\002\221\000\000\002\229\000\000\000\000\000\000\000\000\000\000\000\000\002y\002z\001\166\001\029\001<\000\000\002\226\001M\003\163\001$\0016\000\000\000\000\000\000\002\238\002\194\001\204\002\228\000\000\000\000\000\000\000\000\000\000\002\226\002\195\003\163\000\000\000\000\000\000\000\000\003\249\002\238\000\000\001\204\002\228\002\223\000\000\002\221\000\000\000\000\000\000\002\240\000\000\000\000\000\000\000\000\000\000\000\000\002}\000\000\002\225\000\250\002\223\000\000\000\000\000\000\002\223\000\000\002\240\002y\002z\001\166\000\000\000\000\000\000\002}\0017\002\225\000\250\002}\000\000\002\225\000\250\000\000\002\194\000\000\002y\002z\001\166\000\000\000\000\000\000\002\229\002\195\000\000\000\000\000\000\000\000\000\000\003\251\000\000\002\194\000\000\000\000\000\000\000\000\002\221\001<\000\000\002\229\002\195\000\000\002\223\002\229\000\000\000\000\004\005\000\000\000\000\000\000\000\000\000\000\002\226\002\221\003\163\002}\000\000\002\225\000\250\000\000\002\238\000\000\001\204\002\228\000\000\000\000\000\000\000\000\000\000\002\226\000\000\003\163\000\000\002\226\000\000\003\163\000\000\002\238\000\000\001\204\002\228\002\238\000\000\001\204\002\228\001,\000\000\002\240\007\133\002\229\000\000\000\000\000\246\000\000\000\000\000\250\000\251\000\000\000\000\000\000\000\000\002\223\000\000\000\000\002\240\000\000\000\000\000\000\002\240\000\000\000\000\000\000\000\000\0014\002}\000\000\002\225\000\250\002\223\002\226\000\000\002\232\002y\002z\001\166\006\200\000\000\002\238\000\000\001\204\002\228\002}\000\000\002\225\000\250\000\000\000\000\002\194\000\000\000\000\002y\002z\001\166\000\000\000\000\000\000\002\195\000\000\002\229\000\000\000\000\000\000\004\014\000\000\002\240\002\194\006\202\000\000\000\000\002\221\000\000\002y\002z\001\166\002\195\002\229\000\000\000\000\000\000\000\000\004\017\000\000\000\000\000\000\006\203\000\000\002\194\002\221\002\226\006\205\002\232\000\000\000\000\006\234\000\000\002\195\002\238\000\000\001\204\002\228\000\000\004\031\000\000\001\029\000\000\002\226\000\000\002\232\002\221\001$\0016\000\000\000\000\002\238\000\000\001\204\002\228\000\000\000\246\000\000\000\000\000\250\000\251\002\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\223\000\000\002y\002z\001\166\000\000\002\240\000\000\000\000\002$\000\000\000\000\002D\002}\000\000\002\225\000\250\006\200\002\223\002<\002y\002z\001\166\002@\000\000\001$\002{\002y\002z\001\166\000\000\002}\0017\002\225\000\250\002\194\000\000\000\000\000\000\002\223\000\000\000\000\002\194\000\000\002\195\000\000\000\000\002\229\006\202\000\000\004\"\002\195\002}\000\000\002\225\000\250\000\000\002\221\000\000\000\000\000\000\004,\000\000\001<\002\221\002\229\006\203\000\000\002A\001\165\001\166\006\205\000\000\000\000\000\000\006\253\000\000\002\226\003<\002\232\000\000\000\000\002B\000\000\000\000\002\238\002\229\001\204\002\228\000\000\001\167\003?\000\000\001\169\001\170\002\226\000\000\002\232\000\000\000\000\000\000\000\000\000\000\002\238\002|\001\204\002\228\000\000\000\000\000\000\000\000\000\000\002\240\000\000\000\000\000\000\002\226\002}\002\232\002\225\000\250\000\000\002\223\000\000\002\238\000\000\001\204\002\228\000\000\002\223\002\240\002y\002z\001\166\000\000\002}\000\000\002\225\000\250\000\000\000\000\000\000\002}\000\000\002\225\000\250\002\194\000\000\002y\002z\001\166\002\240\000\000\000\000\000\000\002\195\000\000\000\000\000\000\000\000\002y\002z\001\166\002\194\000\000\004J\000\000\000\000\002\221\002\229\001\174\000\000\002\195\000\000\000\000\002\194\002\229\001,\000\000\000\000\007\139\002\226\004R\001\175\002\195\002\221\000\250\000\000\000\000\002\227\004\144\001\204\002\228\000\000\000\000\003@\003A\002\221\000\000\002\226\000\000\002\232\000\000\000\000\000\000\0014\002\226\002\238\004/\001\204\002\228\000\000\000\000\000\000\002\238\000\000\001\204\002\228\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\000\000\000\000\001,\002$\000\000\001o\002F\002\223\002\240\000\000\000\000\000\000\001p\002<\000\000\002\240\000\000\002@\000\000\001$\002}\001\194\002\225\000\250\002\223\000\000\002y\002z\001\166\001\203\0014\001\204\001\173\000\000\000\000\000\000\002\223\002}\000\000\002\225\000\250\002\194\000\000\002y\002z\001\166\000\000\000\000\000\000\002}\002\195\002\225\000\250\000\000\002\229\000\000\004\157\000\000\002\194\001\029\000\000\000\000\002A\002\221\000\000\001$\0016\002\195\000\000\000\000\000\000\002\229\000\000\004\217\000\000\000\000\002B\000\000\000\000\001A\002\221\000\000\000\000\002\229\002\226\000\000\004M\000\000\000\000\000\000\000\000\000\000\002\238\000\000\001\204\002\228\000\000\000\000\000\000\000\000\000\000\002\226\000\000\004U\002$\000\000\000\000\002b\000\000\002\238\001\029\001\204\002\228\002\226\002<\002\232\001$\0016\002@\002\240\001$\002\238\0017\001\204\002\228\000\000\000\000\000\000\002\223\000\000\003W\001\166\000\000\000\000\000\000\000\000\002\240\000\000\000\000\000\000\000\000\002}\000\000\002\225\000\250\002\223\001,\000\000\002\240\001-\000\000\003u\001\183\001<\001\169\001\170\001C\000\000\002}\000\000\002\225\000\250\000\000\002A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0017\0014\002\229\000\000\002B\000\000\000\000\005\195\000\000\000\000\000\000\002y\002z\001\166\000\000\002y\002z\001\166\000\000\002\229\000\000\000\000\000\000\003z\003\138\003\139\002\194\000\000\000\000\000\000\002\194\001<\002\226\000\000\002\232\002\195\000\000\000\000\000\000\002\195\002\238\0056\001\204\002\228\000\000\006m\000\000\000\000\002\221\002\226\001A\002\232\002\221\000\000\001\165\001\166\000\000\002\238\001\192\001\204\002\228\000\000\000\000\000\000\000\000\000\000\000\000\002\240\002y\002z\001\166\001\175\000\000\000\000\000\250\001\167\001\183\000\000\001\169\001\170\000\000\001\029\000\000\002\194\002\240\000\000\000\000\001$\0016\000\000\000\000\000\000\002\195\000\000\002$\000\000\000\000\002\137\006p\000\000\005\003\002y\002z\001\166\002<\002\221\003\142\004\223\002@\000\000\001$\000\000\000\000\002\223\000\000\000\000\000\000\002\223\000\000\000\000\000\000\001\184\000\000\001\185\002\153\002\189\002}\000\000\002\225\000\250\002}\000\000\002\225\000\250\000\000\001\194\000\000\001J\000\000\000\000\000\000\000\000\000\000\001\195\0017\001\204\001\173\000\000\005\200\000\000\002y\002z\001\166\002A\000\000\001\192\000\000\000\000\000\000\000\000\002\229\000\000\000\000\000\000\002\229\002\194\000\000\002B\001\175\000\000\002\223\000\250\000\000\000\000\002\195\001<\000\000\000\000\001M\004\022\006\127\000\000\000\000\002}\000\000\002\225\000\250\002\221\000\000\000\000\002\226\000\000\002\232\000\000\002\226\000\000\002\232\000\000\002\238\000\000\001\204\002\228\002\238\002|\001\204\002\228\000\000\002y\002z\001\166\000\000\000\000\000\000\000\000\000\000\000\000\002}\002\229\002\225\000\250\000\000\000\000\002\194\000\000\000\000\002\240\002y\002z\001\166\002\240\000\000\002\195\001\194\000\000\000\000\000\000\000\000\006\130\000\000\000\000\001\195\002\194\001\204\001\173\002\221\000\000\000\000\002\226\000\000\002\232\002\195\000\000\002\223\000\000\000\000\002\238\006\143\001\204\002\228\000\000\000\000\000\000\000\000\002\221\000\000\002}\000\000\002\225\000\250\000\000\000\000\000\000\000\000\000\000\002y\002z\001\166\000\000\000\000\000\000\002\226\000\000\002\240\000\000\000\000\000\000\000\000\000\000\002\227\002\194\001\204\002\228\000\000\002y\002z\001\166\000\000\000\000\002\195\002\229\002$\000\000\000\000\004\152\006\146\000\000\000\000\000\000\002\194\002\223\002<\002\221\000\000\000\000\002@\000\000\001$\002\195\001,\000\000\000\000\007\145\002}\006\167\002\225\000\250\000\000\000\000\002\223\002\226\002\221\002\232\000\000\001\165\001\166\000\000\000\000\002\238\000\000\001\204\002\228\002}\000\000\002\225\000\250\000\000\0014\000\000\000\000\000\000\002y\002z\001\166\000\000\001\167\001\183\002\229\001\169\001\170\002A\000\000\000\000\000\000\000\000\002\240\002\194\000\000\000\000\000\000\002y\002z\001\166\000\000\002B\002\195\002\229\002\223\000\000\000\000\007B\006\170\000\000\000\000\000\000\002\194\000\000\002\226\002\221\002\232\002}\000\000\002\225\000\250\002\195\002\238\002\223\001\204\002\228\000\000\006\174\001\184\000\000\001\185\002\153\000\000\002\226\002\221\002\232\002}\001,\002\225\000\250\007\154\002\238\000\000\001\204\002\228\000\000\000\000\000\000\000\000\002\240\000\000\002\229\003W\001\166\001\029\000\000\000\000\000\000\000\000\000\000\001$\0016\001\192\000\000\000\000\0014\000\000\000\000\002\240\000\000\002\229\000\000\000\000\003u\001\183\001\175\001\169\001\170\000\250\000\000\002\223\002\226\000\000\002\232\000\000\000\000\004\022\000\000\000\000\002\238\000\000\001\204\002\228\002}\000\000\002\225\000\250\000\000\000\000\002\223\002\226\000\000\002\232\000\000\003W\001\166\000\000\000\000\002\238\000\000\001\204\002\228\002}\000\000\002\225\000\250\002\240\0017\003z\003\138\003\139\000\000\000\000\000\000\000\000\003u\001\183\002\229\001\169\001\170\000\000\000\000\000\000\006\017\000\000\002\240\000\000\000\000\000\000\001\194\000\000\000\000\000\000\000\000\000\000\001\029\002\229\001\195\001<\001\204\001\173\001$\0016\001\192\000\000\000\000\000\000\002\226\000\000\002\232\000\000\000\000\006\018\007\197\006\019\002\238\001\175\001\204\002\228\000\250\003z\003\138\003\139\000\000\000\000\000\000\002\226\000\000\002\232\002y\002z\001\166\000\000\000\000\002\238\000\000\001\204\002\228\000\000\000\000\000\000\000\000\002\240\000\000\002\194\000\000\006\020\000\000\002y\002z\001\166\003\142\006\185\002\195\000\000\001\192\000\000\000\000\0017\007\207\000\000\002\240\000\000\002\194\000\000\000\000\002\221\000\000\001\175\000\000\000\000\000\250\002\195\000\000\000\000\000\000\000\000\000\000\007\209\000\000\001\194\000\000\006\021\000\000\000\000\002\221\001\165\001\166\001\195\001<\001\204\001\173\006\022\006\023\000\000\006\024\000\000\002y\002z\001\166\000\000\000\000\000\000\003\142\006\219\000\000\000\000\001\167\001\183\000\000\001\169\001\170\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006Y\002\195\000\000\000\000\000\000\000\000\001,\000\000\000\000\007\164\000\000\002\223\001\194\000\000\002\221\000\000\000\000\000\000\000\000\000\000\001\195\000\000\001\204\001\173\002}\006\026\002\225\000\250\006\028\000\000\002\223\006!\006+\001\184\0014\001\185\001\208\000\000\000\000\000\000\000\000\006U\000\000\002}\000\000\002\225\000\250\000\000\000\000\000\000\000\000\000\000\002$\000\000\000\000\004\250\000\000\000\000\002\229\000\000\006V\000o\002<\002y\002z\001\166\002@\001\192\001$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\229\002\194\002\223\001\175\001\165\001\166\000\250\000\000\000\000\000\000\002\195\002\226\000\000\002\232\000\000\002}\000\000\002\225\000\250\002\238\000\000\001\204\002\228\002\221\000\000\001\167\001\183\000\000\001\169\001\170\002\226\000\000\002\232\000\000\002A\001\253\000\000\001\029\002\238\000\000\001\204\002\228\000\000\001$\0016\000\000\002\240\000\000\002B\002\229\000\000\000\000\000\000\000\000\002$\000\000\001,\005\t\000\000\001-\000\000\000\000\001y\000\000\002<\002\240\001C\001\194\002@\000\000\001$\001\184\000\000\001\185\001\237\001\195\000\000\001\204\001\173\002\226\000\000\005\004\000\000\001z\0014\001\165\001\166\002\238\002\223\001\204\002\228\001\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0017\002}\000\000\002\225\000\250\001\192\001\167\001\183\000\000\001\169\001\170\000\000\000\000\002A\002\240\000\000\001\249\000\000\001\175\000\000\000\000\000\250\000\000\000\000\000\000\000\000\000\000\002B\000\000\000\000\000\000\001<\000\000\001A\000\000\002\229\000\000\001\165\001\166\000\000\000\000\001,\000\000\000\000\001-\000\000\000\000\000\000\000\000\000\000\001\127\001C\001\184\000\000\001\185\001\237\000\000\000\000\001\167\001\183\000\000\001\169\001\170\000\000\001\029\002\226\000\000\004\233\001\234\0014\001$\0016\000\000\002\238\000\000\001\204\002\228\000\000\000\000\000\000\001,\005@\001\194\005\250\000\000\000\000\001\192\000\000\001,\000\000\001\195\001-\001\204\001\173\001y\000\000\000\000\005C\001C\001\175\002\240\000\000\000\250\000\000\001\184\000\000\001\185\001\237\0014\000\000\000\000\000\000\000\000\000\000\000\000\001z\0014\000\000\001A\002$\001J\000\000\005\r\001\144\000\000\000\000\000\000\0017\000\000\002<\000\000\001\137\000\000\002@\000\000\001$\000\000\000\000\001\192\000\000\001,\000\000\001,\001-\000\000\001-\001y\000\000\001y\001\029\001C\001\175\001C\000\000\000\250\001$\0016\005\252\001<\000\000\000\000\001M\000\000\001\194\000\000\001A\000\000\001z\0014\001z\0014\001\195\000\000\001\204\001\173\001{\000\000\001\142\002A\000\000\000\000\000\000\001\127\000\000\002y\002z\001\166\000\000\001\029\000\000\000\000\000\000\002B\000\000\001$\005\255\001\029\000\000\000\000\002\194\000\000\000\000\001$\0016\000\000\001J\001\165\001\166\002\195\000\000\000\000\000\000\0017\000\000\000\000\001\194\005I\001A\000\000\001A\000\000\002\221\000\000\001\195\000\000\001\204\001\173\001\167\001\183\000\000\001\169\001\170\000\000\000\000\001\127\000\000\001\127\001\239\000\000\000\000\000\000\000\000\000\000\001<\000\000\000\000\001M\000\000\001\029\000\000\001\029\006\000\001J\000\000\001$\0016\001$\0016\000\000\0017\000\000\001,\000\000\001\137\001-\000\000\005\202\000\000\006\003\000\000\006\002\001C\000\000\001\184\000\000\001\185\001\237\000\000\000\000\000\000\000\000\000\000\001<\000\000\000\000\000\000\002\223\000\000\000\000\0014\001<\000\000\000\000\001M\000\000\000\000\000\000\000\000\000\000\002}\000\000\002\225\000\250\000\000\001J\000\000\001J\001\192\000\000\001,\000\000\0017\001-\0017\000\000\001\137\000\000\001\137\002$\001C\001\175\005\016\000\000\000\250\000\000\000\000\000\000\000\000\002<\000\000\001\165\001\166\002@\002\229\001$\001\165\001\166\0014\001A\001D\000\000\000\000\001<\000\000\001<\001M\000\000\001M\000\000\007\148\000\000\001\167\001\183\000\000\001\169\001\170\001\167\001\183\000\000\001\169\001\170\000\000\000\000\002\226\000\000\004v\000\000\000\000\000\000\001\029\000\000\002\238\000\000\001\204\002\228\001$\0016\002A\000\000\000\000\000\000\000\000\000\000\000\000\001\194\000\000\001A\001\165\001\166\000\000\000\000\002B\001\195\000\000\001\204\001\173\000\000\001\184\002\240\001\185\002\153\000\000\001\184\000\000\001\185\002\162\000\000\000\000\001\167\001\183\000\000\001\169\001\170\002y\002z\001\166\000\000\001\029\000\000\000\000\000\000\000\000\000\000\001$\0016\001J\000\000\000\000\002\194\000\000\000\000\001\192\0017\000\000\000\000\000\000\001\192\002\195\000\000\000\000\001\165\001\166\000\000\000\000\001\175\000\000\000\000\000\250\000\000\001\175\002\221\000\000\000\250\000\000\001\184\004\018\001\185\002\162\000\000\000\000\000\000\001\167\001\183\001<\001\169\001\170\002-\000\000\002y\002z\001\166\000\000\000\000\001J\000\000\002$\000\000\000\000\005\030\000\000\0017\002\171\000\000\002\194\001\\\002<\000\000\000\000\001\192\002@\000\000\001$\002\195\000\000\000\000\000\000\000\000\001,\000\000\000\000\005\250\001\175\000\000\000\000\000\250\002\221\000\000\001\184\001\194\001\185\003G\001<\000\000\001\194\001M\002\223\001\195\000\000\001\204\001\173\000\000\001\195\000\000\001\204\001\173\0014\000\000\000\000\002}\000\000\002\225\000\250\000\000\002\168\002A\000o\000\000\000\000\007\011\000\000\000\000\001\192\000\000\000\000\002y\002z\001\166\000\000\002B\000\000\000\000\000\000\000\000\b,\001\175\000\000\b-\000\250\000\000\002\194\007\014\000\000\002\229\000\000\000\000\001\194\000\000\000\000\002\195\007\015\002\223\000\000\000\000\001\195\005\252\001\204\001\173\002$\000\000\000\000\005k\002\221\000\000\002}\000\000\002\225\000\250\002<\000\000\000\000\000\000\002@\002\226\001$\003\236\002y\002z\001\166\000\000\000\000\002\238\007\016\001\204\002\228\000\000\001\029\002$\000\000\000\000\005w\002\194\001$\005\255\000\000\000\000\000\000\002<\002\229\001\194\002\195\002@\002$\001$\000\000\005}\000\000\001\195\002\240\001\204\001\173\000\000\002<\002\221\000\000\000\000\002@\002A\001$\007\017\002y\002z\001\166\000\000\000\000\000\000\000\000\002\223\002\226\007\018\003\148\002B\002y\002z\001\166\002\194\002\238\000\000\001\204\002\228\002}\000\000\002\225\000\250\002\195\000\000\002A\002\194\000\000\006\000\000\000\b/\000\000\000\000\000\000\000\000\002\195\002\221\000\000\000\000\002B\002A\000\000\002\240\005\202\000\000\006\001\000\000\006\002\002\221\007\020\002y\002z\001\166\002\229\002B\000\000\000\000\002\223\000\000\001<\007\021\000\000\000\000\007\023\000\000\002\194\007\028\000\000\002$\000\000\002}\005\134\002\225\000\250\002\195\000\000\007\030\000\000\002<\000\000\000\000\000\000\002@\002\226\001$\002\234\000\000\002\221\000\000\000\000\000\000\002\238\000\000\001\204\002\228\007\031\000\000\000\000\000\000\000\000\000\000\002\223\000\000\000\000\002\229\000\000\002y\002z\001\166\000\000\000\000\000\000\000\000\002\223\002}\000\000\002\225\000\250\002\240\001,\000\000\002\194\005\250\000\000\000\000\000\000\002}\002A\002\225\000\250\002\195\000\000\000\000\000\000\002\226\000\000\002\236\000\000\000\000\000\000\000\000\002B\002\238\002\221\001\204\002\228\000\000\0014\002\229\000\000\000\000\000\000\002\223\000\000\000\000\000\000\000\000\002y\002z\001\166\002\229\000\000\000\000\002$\000\000\002}\006\031\002\225\000\250\002\240\000\000\000\000\002\194\002<\000\000\000\000\000\000\002@\002\226\001$\002\241\002\195\000\000\000\000\001,\000\000\002\238\005\250\001\204\002\228\002\226\000\000\002\248\000\000\002\221\000\000\005\252\000\000\002\238\002\229\001\204\002\228\000\000\000\000\000\000\000\000\000\000\000\000\002\223\000\000\000\000\000\000\0014\002\240\000\000\000\000\000\000\002y\002z\001\166\000\000\002}\002A\002\225\000\250\002\240\000\000\001\029\000\000\002\226\000\000\002\250\002\194\001$\005\255\000\000\002B\002\238\000\000\001\204\002\228\002\195\000\000\002y\002z\001\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\229\000\000\000\000\002\194\002\223\000\000\005\252\000\000\000\000\002\240\000\000\000\000\002\195\000\000\000\000\000\000\000\000\002}\000\000\002\225\000\250\000\000\000\000\000\000\000\000\002\221\000\000\000\000\000\000\000\000\002\226\000\000\002\252\000\000\000\000\006\000\000\000\001\029\002\238\000\000\001\204\002\228\000\000\001$\005\255\002y\002z\001\166\000\000\000\000\005\202\002\229\006\r\000\000\006\002\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\000\002\223\002\240\001<\000\000\000\000\002\195\000\000\002y\002z\001\166\000\000\000\000\000\000\002}\000\000\002\225\000\250\002\226\002\221\002\254\000\000\000\000\002\194\000\000\000\000\002\238\002\223\001\204\002\228\000\000\000\000\002\195\000\000\002y\002z\001\166\006\000\000\000\000\000\002}\000\000\002\225\000\250\000\000\002\221\000\000\000\000\002\229\002\194\000\000\000\000\005\202\002\240\006\225\000\000\006\002\000\000\002\195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001<\000\000\000\000\002\221\000\000\000\000\002\229\000\000\000\000\000\000\002\226\000\000\003\000\000\000\000\000\000\000\002\223\000\000\002\238\000\000\001\204\002\228\000\000\000\000\002y\002z\001\166\000\000\000\000\002}\000\000\002\225\000\250\000\000\000\000\000\000\002\226\000\000\003\002\002\194\000\000\000\000\002\223\000\000\002\238\002\240\001\204\002\228\002\195\000\000\002y\002z\001\166\000\000\000\000\002}\000\000\002\225\000\250\000\000\000\000\002\221\000\000\002\229\000\000\002\194\000\000\000\000\002\223\000\000\000\000\002\240\000\000\000\000\002\195\000\000\002y\002z\001\166\000\000\000\000\002}\000\000\002\225\000\250\000\000\000\000\002\221\000\000\002\229\000\000\002\194\000\000\002\226\000\000\003\004\000\000\000\000\000\000\000\000\002\195\002\238\000\000\001\204\002\228\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\229\000\000\000\000\000\000\002\226\000\000\003\006\000\000\000\000\000\000\000\000\002\223\002\238\002\240\001\204\002\228\000\000\000\000\002y\002z\001\166\000\000\000\000\000\000\002}\000\000\002\225\000\250\000\000\000\000\002\226\000\000\003\b\002\194\000\000\000\000\000\000\002\223\002\238\002\240\001\204\002\228\002\195\000\000\002y\002z\001\166\000\000\000\000\000\000\002}\000\000\002\225\000\250\000\000\002\221\000\000\000\000\002\229\002\194\000\000\000\000\000\000\002\223\000\000\002\240\000\000\000\000\002\195\000\000\002y\002z\001\166\000\000\000\000\000\000\002}\000\000\002\225\000\250\000\000\002\221\000\000\000\000\002\229\002\194\000\000\000\000\002\226\000\000\003\n\000\000\000\000\000\000\002\195\000\000\002\238\000\000\001\204\002\228\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\000\000\002\229\000\000\000\000\000\000\002\226\000\000\003\012\000\000\000\000\000\000\002\223\000\000\002\238\002\240\001\204\002\228\000\000\000\000\002y\002z\001\166\000\000\000\000\002}\000\000\002\225\000\250\000\000\000\000\000\000\002\226\000\000\003\014\002\194\000\000\000\000\002\223\000\000\002\238\002\240\001\204\002\228\002\195\000\000\002y\002z\001\166\000\000\000\000\002}\000\000\002\225\000\250\000\000\000\000\002\221\000\000\002\229\000\000\002\194\000\000\000\000\002\223\000\000\000\000\002\240\000\000\000\000\002\195\000\000\002y\002z\001\166\000\000\000\000\002}\000\000\002\225\000\250\000\000\000\000\002\221\000\000\002\229\000\000\002\194\000\000\002\226\000\000\003\016\000\000\000\000\000\000\000\000\002\195\002\238\000\000\001\204\002\228\000\000\000\000\000\000\000\000\001,\000\000\000\000\005\250\002\221\000\000\002\229\000\000\000\000\000\000\002\226\000\000\003\018\000\000\000\000\000\000\000\000\002\223\002\238\002\240\001\204\002\228\000\000\000\000\002y\002z\001\166\000\000\0014\000\000\002}\000\000\002\225\000\250\000\000\000\000\002\226\000\000\003\020\002\194\000\000\000\000\000\000\002\223\002\238\002\240\001\204\002\228\002\195\000\000\002y\002z\001\166\000\000\000\000\000\000\002}\000\000\002\225\000\250\000\000\002\221\000\000\000\000\002\229\002\194\000\000\000\000\000\000\002\223\000\000\002\240\000\000\000\000\002\195\000\000\000\000\005\252\000\000\000\000\000\000\000\000\002}\000\000\002\225\000\250\000\000\002\221\000\000\000\000\002\229\000\000\000\000\000\000\002\226\000\000\003\022\000\000\000\000\000\000\000\000\000\000\002\238\000\000\001\204\002\228\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\001$\005\255\002\229\000\000\000\000\000\000\002\226\000\000\003\024\000\000\000\000\000\000\002\223\000\000\002\238\002\240\001\204\002\228\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002}\000\000\002\225\000\250\000\000\000\000\000\000\002\226\000\000\003\026\000\000\000\000\000\000\002\223\000\000\002\238\002\240\001\204\002\228\001\165\001\166\000\000\000\000\000\000\000\000\000\000\002}\000\000\002\225\000\250\000\000\000\000\006\000\000\000\002\229\000\000\000\000\001\165\001\166\000\000\001\167\001\183\002\240\001\169\001\170\000\000\003<\005\202\000\000\006\251\000\000\006\002\000\000\000\000\000\000\000\000\000\000\000\000\001\167\003?\002\229\001\169\001\170\001<\002\226\000\000\003\028\000\000\000\000\000\000\000\000\000\000\002\238\000\000\001\204\002\228\000\000\000\000\000\000\000\000\000\000\002y\002z\001\166\000\000\000\000\001\184\000\000\001\185\0033\002\226\000\000\003\030\000\000\000\000\000\000\002\194\000\000\002\238\002\240\001\204\002\228\001\165\001\166\000\000\002\195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000o\000\000\000\000\000\000\002\221\000\000\001\192\001\165\001\166\001\167\001\183\002\240\001\169\001\170\000\000\000\000\003^\000\000\000\000\001\175\000\000\000\000\000\250\000\000\001\174\003a\000\000\000\000\001\167\003?\000\000\001\169\001\170\000\000\000\000\000\000\000\000\001\175\001\165\001\166\000\250\000\000\000\000\000\000\000\000\000\000\000\000\003^\000\000\003@\003C\000\000\000\000\000\000\000\000\001\184\003a\001\185\002\162\001\167\003?\000\000\001\169\001\170\000\000\000\000\000\000\000\000\000\000\002\223\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\000\000\000\000\002}\001\194\002\225\000\250\000\000\000\000\000\000\001\192\000\000\001\195\000\000\001\204\001\173\002y\002z\001\166\000\000\000\000\000\000\001\194\001\175\000\000\000\000\000\250\000\000\000\000\001\174\001\203\002\194\001\204\001\173\002y\002z\001\166\002\229\000\000\000\000\002\195\000\000\001\175\000\000\000\000\000\250\000\000\000\000\000\000\002\194\000\000\000\000\000\000\002\221\000\000\003E\000\000\000\000\002\195\000\000\001\174\000\000\000\000\000\000\000\000\000\000\000\000\002\226\000\000\003\183\000\000\002\221\000\000\001\175\000\000\002\238\000\250\001\204\002\228\000\000\003b\000\000\000\000\000\000\002y\002z\001\166\001\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\195\000\000\001\204\001\173\002\194\000\000\003d\002\240\000\000\000\000\000\000\001\194\000\000\002\195\000\000\000\000\003b\000\000\000\000\001\203\000\000\001\204\001\173\002\223\000\000\000\000\002\221\000\000\000\000\000\000\000\000\002y\002z\001\166\000\000\000\000\002}\003c\002\225\000\250\000\000\002\223\001\194\002y\002z\001\166\002\194\000\000\000\000\000\000\001\203\000\000\001\204\001\173\002}\002\195\002\225\000\250\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\195\002\221\000\000\002\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\229\000\000\000\000\002\223\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\226\000\000\003\189\000\000\002}\000\000\002\225\000\250\002\238\000\000\001\204\002\228\000\000\000\000\000\000\000\000\000\000\000\000\002\226\000\000\003\195\000\000\000\000\000\000\000\000\000\000\002\238\000\000\001\204\002\228\000\000\000\000\000\000\002\223\000\000\002\240\000\000\000\000\002\229\000\000\000\000\000\000\000\000\000\000\000\000\002\223\002}\000\000\002\225\000\250\002y\002z\001\166\002\240\000\000\000\000\000\000\000\000\002}\000\000\002\225\000\250\002y\002z\001\166\002\194\000\000\000\000\002\226\000\000\003\201\000\000\000\000\000\000\002\195\000\000\002\238\002\194\001\204\002\228\002\229\000\000\000\000\000\000\000\000\000\000\002\195\002\221\000\000\000\000\000\000\000\000\002\229\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\000\000\000\000\002\240\002y\002z\001\166\000\000\000\000\000\000\002\226\000\000\003\206\000\000\000\000\000\000\000\000\000\000\002\238\002\194\001\204\002\228\002\226\000\000\003\211\000\000\000\000\000\000\002\195\000\000\002\238\000\000\001\204\002\228\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\000\000\000\000\002\240\000\000\000\000\002y\002z\001\166\000\000\002\223\000\000\000\000\000\000\000\000\002\240\000\000\000\000\000\000\000\000\000\000\002\194\002\223\002}\000\000\002\225\000\250\000\000\000\000\000\000\002\195\000\000\000\000\000\000\000\000\002}\000\000\002\225\000\250\000\000\000\000\000\000\000\000\002\221\000\000\000\000\001\165\001\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\229\000\000\000\000\000\000\000\000\000\000\000\000\002\223\000\000\000\000\001\167\001\183\002\229\001\169\001\170\000\000\000\000\000\000\000\000\000\000\002}\000\000\002\225\000\250\000\000\000\000\000\000\000\000\000\000\000\000\002\226\000\000\003\218\002y\002z\001\166\000\000\000\000\002\238\000\000\001\204\002\228\002\226\000\000\003\223\000\000\000\000\000\000\002\194\000\000\002\238\002\223\001\204\002\228\002\229\000\000\001\184\002\195\001\185\002\153\000\000\000\000\000\000\000\000\002}\002\240\002\225\000\250\000\000\000\000\002\221\000\000\002y\002z\001\166\000\000\000\000\002\240\000\000\000\000\000\000\000\000\000\000\000\000\002\226\000\000\003\228\002\194\000\000\000\000\001\192\000\000\002\238\000\000\001\204\002\228\002\195\000\000\002\229\000\000\002y\002z\001\166\001\175\000\000\000\000\000\250\000\000\000\000\002\221\000\000\000\000\000\000\000\000\004\021\002\194\000\000\000\000\000\000\002\240\000\000\000\000\000\000\000\000\002\195\000\000\000\000\000\000\002\226\000\000\003\231\002\000\001\166\000\000\000\000\002\223\002\238\002\221\001\204\002\228\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002}\000\000\002\225\000\250\001\167\002\142\000\000\001\169\001\170\000\000\001,\000\000\000\000\001-\000\000\002\240\001\138\000\000\000\000\001\194\001C\000\000\000\000\000\000\000\000\000\000\002\223\001\195\000\000\001\204\001\173\000\000\000\000\000\000\002\229\000\000\000\000\001\140\0014\002}\000\000\002\225\000\250\000\000\005\195\000\000\000\000\000\000\000\000\004\029\003\138\003\139\000\000\000\000\002\223\000\000\000\000\000\000\000\000\000\000\000\000\002y\002z\001\166\002\226\000\000\004\025\002}\000\000\002\225\000\250\000\000\002\238\002\229\001\204\002\228\002\194\000\000\002y\002z\001\166\000\000\000\000\000\000\001\192\002\195\000\000\001A\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\000\001\175\002\221\002\240\000\250\002\229\002\195\002\226\001\127\004\027\002y\002z\001\166\000\000\000\000\002\238\000\000\001\204\002\228\002\221\000\000\001,\001\029\000\000\001-\002\194\000\000\000\000\001$\0016\000\000\001C\004$\000\000\002\195\002\226\000\000\0041\000\000\001\165\001\166\000\000\002\240\002\238\000\000\001\204\002\228\002\221\000\000\0014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\131\001\167\001\183\000\000\001\169\001\170\001\194\000\000\002\223\000\000\000\000\002\240\000\000\000\000\001\195\006\017\001\204\001\173\000\000\001J\000\000\002}\000\000\002\225\000\250\002\223\0017\002y\002z\001\166\005\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002}\001A\002\225\000\250\002\194\000\000\006\018\007\215\006\019\001\184\000\000\001\185\b\r\002\195\b\015\002\223\000\000\002\229\000\000\001<\000\000\000\000\001M\000\000\000\000\000\000\002\221\000\000\002}\000\000\002\225\000\250\001\029\000\000\002\229\000\000\000\000\000\000\001$\0016\006\020\000\000\000\000\001\192\000\000\000\000\000\000\002\226\000\000\0049\000\000\000\000\000\000\000\000\000\000\002\238\001\175\001\204\002\228\000\250\000\000\000\000\002\229\000\000\002\226\000\000\004<\000\000\000\000\000\000\000\000\000\000\002\238\000\000\001\204\002\228\006\021\000\000\000\000\000\000\000\000\000\000\002\240\000\000\000\000\000\000\006\022\006\023\001J\006\024\000\000\002\223\002\226\000\000\004>\0017\000\000\001\165\001\166\002\240\002\238\000\000\001\204\002\228\002}\001,\002\225\000\250\001-\000\000\000\000\001y\000\000\000\000\006Y\001C\000\000\000\000\001\167\001\183\001\194\001\169\001\170\000\000\000\000\000\000\001<\002\240\001\195\001\135\001\204\001\173\001~\0014\000\000\001\165\001\166\000\000\002\229\006\026\007\217\000\000\006\028\000\000\000\000\006!\006+\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006U\001\167\001\183\000\000\001\169\001\170\000\000\000\000\000\000\001\184\000\000\001\185\0076\002\226\000\000\004@\000\000\000\000\000\000\006V\000\000\002\238\000\000\001\204\002\228\000\000\000\000\001A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\001\127\000\000\000\000\001\184\002\240\001\185\001\241\000\000\000\000\000\000\000\000\000\000\001\175\000\000\001\029\000\250\000\000\000\000\000\000\000\000\001$\0016\001\165\001\166\000\000\000\000\000\000\001\165\001\166\000\000\000\000\000\000\000\000\000\000\001\165\001\166\000\000\001\192\000\000\000\000\000\000\000\000\000\000\001\167\001\183\000\000\001\169\001\170\001\167\001\183\001\175\001\169\001\170\000\250\000\000\001\167\001\183\000\000\001\169\001\170\000\000\000\000\000\000\000\000\000\000\000\000\002y\002z\001\166\000\000\001J\000\000\000\000\000\000\000\000\000\000\001\194\0017\000\000\000\000\000\000\001\137\000\000\000\000\001\195\000\000\001\204\001\173\000\000\001\184\002\191\001\185\001\229\000\000\001\184\000\000\001\185\001\226\000\000\000\000\000\000\001\184\000\000\001\185\001\187\000\000\000\000\000\000\001<\000\000\000\000\001M\000\000\000\000\001\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\195\001\192\001\204\001\173\000\000\000\000\001\192\000\000\000\000\000\000\001\165\001\166\000\000\001\192\001\175\001\165\001\166\000\250\000\000\001\175\000\000\000\000\000\250\000\000\000\000\000\000\001\175\000\000\000\000\000\250\000\000\001\167\001\183\000\000\001\169\001\170\001\167\001\183\000\000\001\169\001\170\000\000\000\000\001\165\001\166\000\000\002|\000\000\001\165\001\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002}\000\000\002\225\000\250\000\000\001\167\001\183\000\000\001\169\001\170\001\167\001\183\000\000\001\169\001\170\000\000\000\000\000\000\001\184\001\194\001\185\001\190\000\000\001\184\001\194\001\185\001\193\001\195\000\000\001\204\001\173\001\194\001\195\000\000\001\204\001\173\000\000\000\000\000\000\001\195\000\000\001\204\001\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\184\001\192\001\185\001\225\000\000\001\184\001\192\001\185\001\213\000\000\000\000\000\000\000\000\002\226\001\175\001,\000\000\000\250\001u\001\175\000\000\002\227\000\250\001\204\002\228\001v\000\000\000\000\000\000\000\000\000\000\000\000\001\165\001\166\001\192\000\000\000\000\001\165\001\166\001\192\000\000\000\000\000\000\0014\000\000\000\000\000\000\001\175\000\000\000\000\000\250\000\000\001\175\001\167\001\183\000\250\001\169\001\170\001\167\001\183\000\000\001\169\001\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\194\000\000\000\000\000\000\000\000\001\194\000\000\000\000\001\195\000\000\001\204\001\173\000\000\001\195\001A\001\204\001\173\000\000\000\000\000\000\000\000\001\184\000\000\001\185\001\221\000\000\001\184\000\000\001\185\002\184\000\000\000\000\000\000\001\194\000\000\000\000\000\000\000\000\001\194\000\000\000\000\001\195\000\000\001\204\001\173\001\029\001\195\000\000\001\204\001\173\000\000\001$\0016\001\165\001\166\001\192\000\000\000\000\001\165\001\166\001\192\000\000\003S\000\000\000\000\000\000\000\000\000\000\001\175\000\000\000\000\000\250\000\000\001\175\001\167\003?\000\250\001\169\001\170\001\167\001\183\000\000\001\169\001\170\000\000\001\165\001\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003q\000\000\000\000\000\000\000\000\001\165\001\166\000\000\000\000\003t\000\000\000\000\001\167\003?\0017\001\169\001\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\167\001\183\000\000\001\169\001\170\001\184\000\000\001\185\003*\000\000\000\000\000\000\001\194\000\000\000\000\000\000\000\000\001\194\000\000\001<\001\195\000\000\001\204\001\173\000\000\001\195\000\000\001\204\001\173\000\000\000\000\000\000\001\165\001\166\001\174\000\000\000\000\000\000\000\000\001\192\000\000\000\000\000\000\000\000\000\000\000\000\001\184\001\175\001\185\003\127\000\250\000\000\001\175\001\167\001\183\000\250\001\169\001\170\000\000\003V\000\000\000\000\001\165\001\166\000\000\000\000\001\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\175\001\192\000\000\000\250\001\167\001\183\003B\001\169\001\170\000\000\000\000\000\000\000\000\000\000\001\175\000\000\000\000\000\250\000\000\000\000\001\184\000\000\001\185\003\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\194\000\000\001\165\001\166\000\000\001\194\003b\000\000\001\203\000\000\001\204\001\173\000\000\001\195\000\000\001\204\001\173\000\000\001\184\000\000\001\185\003\133\001\192\001\167\001\183\000\000\001\169\001\170\000\000\002y\002z\001\166\001\194\000\000\000\000\001\175\000\000\000\000\000\250\000\000\001\203\000\000\001\204\001\173\000\000\000\000\001\194\000\000\000\000\000\000\000\000\000\000\001\192\004]\001\195\000\000\001\204\001\173\001\165\001\166\004f\000\000\000\000\000\000\000\000\001\175\000\000\000\000\000\250\001\184\000\000\001\185\003\141\000\000\000\000\000\000\000\000\000\000\000\000\001\167\001\183\000\000\001\169\001\170\000\000\000\000\004g\000\000\000\000\000\000\000\000\000\000\000\000\001\165\001\166\000\000\000\000\000\000\000\000\001\194\000\000\000\000\000\000\001\192\000\000\000\000\000\000\001\195\000\000\001\204\001\173\000\000\000\000\000\000\001\167\001\183\001\175\001\169\001\170\000\250\000\000\000\000\000\000\000\000\000\000\001\184\000\000\001\185\004:\001\194\000\000\002|\000\000\000\000\000\000\000\000\000\000\001\195\000\000\001\204\001\173\000\000\000\000\000\000\004j\000\000\002\225\000\250\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\001\184\000\000\001\185\0047\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\175\000\000\000\000\000\250\000\000\000\000\000\000\000\000\001\194\000\000\000\000\000\000\004`\000\000\000\000\000\000\001\195\000\000\001\204\001\173\000\000\000\000\001\192\000\000\000\000\000\000\000\000\001\165\001\166\000\000\000\000\001,\000\000\000\000\001-\001\175\002\226\000\000\000\250\000\000\000\000\001C\000\000\000\000\002\227\000\000\001\204\002\228\001\167\001\183\001,\001\169\001\170\001-\000\000\001,\000\000\000\000\001-\0014\001C\001D\000\000\001,\001\194\001C\007{\000\000\000\000\000\000\000\000\007t\001\195\007|\001\204\001\173\000\000\000\000\0014\000\000\001D\000\000\000\000\0014\000\000\001D\000\000\000\000\000\000\000\000\001Q\0014\000\000\000\000\001\184\001b\001\185\0054\000\000\001\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\195\001A\001\204\001\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001A\001\192\000\000\001\165\001\166\001A\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001A\001\175\000\000\000\000\000\250\001$\0016\000\000\004\232\000\000\000\000\001\167\003?\000\000\001\169\001\170\000\000\000\000\001\029\000\000\001\165\001\166\000\000\001\029\001$\0016\000\000\000\000\000\000\001$\0016\001\029\001\165\001\166\000\000\000\000\000\000\001$\0016\001\165\001\166\001\167\003?\000\000\001\169\001\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\167\003?\001J\001\169\001\170\000\000\000\000\001\167\003?\0017\001\169\001\170\001\194\001\\\000\000\000\000\000\000\000\000\000\000\000\000\001\195\001J\001\204\001\173\000\000\000\000\001J\000\000\0017\000\000\000\000\000\000\001\\\0017\006\017\000\000\000\000\001\\\001\174\000\000\001<\0017\000\000\001M\000\000\000\000\000\000\000\000\000\000\001\165\001\166\001\175\000\000\000\000\000\250\000\000\000\000\000\000\000\000\001<\000\000\000\000\001M\006\018\001<\006\019\000\000\001M\001\174\000\000\001\167\003?\001<\001\169\001\170\000\000\000\000\006\017\000\000\000\000\001\174\001\175\000\000\000\000\000\250\000\000\000\000\001\174\000\000\003b\000\000\000\000\001,\001\175\000\000\001-\000\250\006\020\000\000\000\000\001\175\001,\001C\000\250\001-\000\000\006\018\000\000\006\019\000\000\000\000\001C\000\000\000\000\000\000\001\194\000\000\000\000\000\000\004\006\0014\000\000\000\000\001\203\000\000\001\204\001\173\000\000\000\000\0014\000\000\004\006\005@\006\021\000\000\000\000\000\000\000\000\004\006\004\t\006\020\000\000\000\000\006\022\006\023\001\194\006\024\000\000\005\184\000\000\001\174\004\b\000\000\001\203\000\000\001\204\001\173\001\194\004\007\001\165\001\166\000\000\000\000\001\175\001\194\001\203\000\250\001\204\001\173\001A\000\000\006W\001\203\000\000\001\204\001\173\006\021\000\000\001A\000\000\001\167\003?\000\000\001\169\001\170\000\000\006\022\006\023\000\000\006\024\000\000\000\000\000\000\000\000\000\000\000\000\006\026\000\000\000\000\006\028\001\029\004\006\006!\006+\001\165\001\166\001$\0016\001,\001\029\000\000\001-\006U\000\000\006\025\001$\0016\000\000\001C\001\165\001\166\004\011\006\147\000\000\000\000\001\167\003?\001\194\001\169\001\170\000\000\006V\000\000\000\000\000\000\001\203\0014\001\204\001\173\006\026\001\167\003?\006\028\001\169\001\170\006!\006+\000\000\005@\000\000\000\000\001,\000\000\000\000\001-\006U\001J\000\000\000\000\000\000\001\174\001C\000\000\0017\006\144\001J\000\000\005I\000\000\000\000\000\000\000\000\0017\001\175\006V\000\000\000\250\001\165\001\166\0014\000\000\000\000\000\000\000\000\000\000\001A\000\000\000\000\000\000\000\000\000\000\005@\000\000\000\000\001<\006\171\000\000\001M\001\167\003?\000\000\001\169\001\170\001<\000\000\001\174\002/\006\158\000\000\000\000\000\000\006\254\000\000\000\000\000\000\000\000\001\029\000\000\001\175\000\000\001\174\000\250\001$\0016\001,\000\000\000\000\001-\001A\001\165\001\166\000\000\000\000\001\175\001C\000\000\000\250\001\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\203\000\000\001\204\001\173\000\000\001\167\003?\0014\001\169\001\170\000\000\003b\000\000\000\000\001\029\000\000\000\000\007\000\000\000\005@\001$\0016\000\000\000\000\000\000\000\000\006\198\001J\000\000\000\000\000\000\000\000\000\000\001\174\0017\006\168\000\000\001\194\005I\000\000\000\000\000\000\000\000\000\000\000\000\001\203\001\175\001\204\001\173\000\250\001\165\001\166\001\194\000\000\000\000\000\000\001A\000\000\000\000\000\000\001\203\000\000\001\204\001\173\000\000\001<\000\000\000\000\001M\000\000\001J\001\167\003?\000\000\001\169\001\170\006\211\0017\001\165\001\166\000\000\005I\000\000\000\000\003b\001\174\001,\001\029\000\000\001-\000\000\000\000\000\000\001$\0016\000\000\001C\007\011\001\175\001\167\003?\000\250\001\169\001\170\000\000\000\000\000\000\000\000\001<\000\000\001\194\001M\b,\000\000\0014\b-\001D\007\011\001\203\007\014\001\204\001\173\007\011\000\000\000\000\000\000\007\127\000\000\007\015\000\000\000\000\000\000\b,\000\000\000\000\b-\006\198\b,\000\000\007\014\b-\000\000\000\000\001J\007\014\000\000\000\000\000\000\007\015\000\000\0017\001\174\000\000\007\015\005I\000\000\000\000\000\000\000\000\000\000\007\016\000\000\001\194\001A\001\175\000\000\000\000\000\250\000\000\000\000\001\203\000\000\001\204\001\173\000\000\000\000\000\000\000\000\000\000\001\174\007\016\001<\000\000\000\000\001M\007\016\006\210\000\000\001\165\001\166\000\000\000\000\001\175\001,\001\029\000\250\001-\007\017\000\000\000\000\001$\0016\006\254\001C\000\000\000\000\000\000\007\018\000\000\001\167\003?\000\000\001\169\001\170\000\000\001,\000\000\007\017\001-\000\000\000\000\0014\007\017\000\000\000\000\001C\000\000\007\018\001\194\b.\006\254\000\000\007\018\002\006\000\000\000\000\001\203\000\000\001\204\001\173\000\000\000\000\000\000\0014\000\000\000\000\000\000\000\000\007\020\b2\001J\000\000\000\000\006\255\b7\002\164\001\194\0017\000\000\007\021\000\000\001\\\007\023\000\000\001\203\007\028\001\204\001\173\007\020\000\000\001A\000\000\000\000\007\020\000\000\007\030\000\000\000\000\000\000\007\021\000\000\007\007\007\023\000\000\007\021\007\028\000\000\007\023\001<\001\174\007\028\001M\001A\001,\007\031\007\030\001-\000\000\000\000\000\000\007\030\001\029\001\175\001C\000\000\000\250\000\000\001$\0016\000\000\001,\000\000\000\000\001-\007\031\001,\000\000\000\000\001-\007\031\001C\0014\000\000\001\029\000\000\001C\000\000\000\000\000\000\001$\0016\000\000\001,\0035\000\000\001-\000\000\000\000\0014\000\000\004\n\000\000\001C\0014\000\000\000\000\000\000\000\000\000\000\000\000\003I\000\000\000\000\000\000\000\000\003N\000\000\001J\000\000\000\000\0014\000\000\000\000\000\000\0017\000\000\001\194\000\000\002\t\000\000\001A\000\000\003l\000\000\001\203\000\000\001\204\001\173\000\000\001J\000\000\000\000\000\000\000\000\000\000\000\000\0017\001A\000\000\000\000\002\167\000\000\001A\000\000\001,\001<\000\000\001-\001M\000\000\000\000\001\029\000\000\000\000\001C\000\000\000\000\001$\0016\001A\000\000\001,\000\000\000\000\001-\000\000\000\000\001<\001\029\000\000\001M\001C\0014\001\029\001$\0016\000\000\000\000\006\193\001$\0016\000\000\000\000\000\000\000\000\000\000\007\011\000\000\000\000\0014\001\029\000\000\000\000\000\000\000\000\000\000\001$\0016\000\000\000\000\000\000\000\000\000\000\000\000\007\012\000\000\000\000\001J\007\014\000\000\007\011\000\000\000\000\000\000\0017\000\000\001,\007\015\001\216\001-\000\000\001A\000\000\000\000\001J\000\000\001C\001,\b#\001J\001-\0017\007\014\000\000\000\000\001\216\0017\001C\001A\000\000\002\204\007\015\000\000\000\000\0014\001<\001J\000\000\001M\007\016\000\000\000\000\001\029\0017\000\000\0014\004\179\002\204\001$\0016\000\000\000\000\001<\000\000\000\000\001M\000\000\001<\000\000\001\029\001M\007h\000\000\007\016\000\000\001$\0016\000\000\001,\000\000\000\000\001-\000\000\000\000\001<\000\000\007\017\001M\001C\000\000\000\000\000\000\000\000\001A\000\000\000\000\007\018\000\000\000\000\007\241\000\000\000\000\000\000\000\000\001A\000\000\0014\000\000\001J\000\000\007\017\000\000\000\000\000\000\000\000\0017\000\000\000\000\000\000\005\200\007\018\000\000\007-\000\000\001\029\001J\000\000\000\000\000\000\000\000\001$\0016\0017\000\000\000\000\001\029\005\213\007\020\000\000\006\239\000\000\001$\0016\b$\000\000\000\000\001<\000\000\007\021\001M\000\000\007\023\000\000\000\000\007\028\001A\000\000\001,\000\000\000\000\001-\007\020\000\000\001<\007\030\000\000\001M\001C\000\000\000\000\000\000\001,\007\021\000\000\001-\007\023\000\000\000\000\007\028\000\000\001J\001C\000\000\007\031\000\000\0014\001\029\0017\007\030\000\000\000\000\001J\001$\0016\000\000\000\000\000\000\000\000\0017\0014\001,\000\000\007\242\001-\000\000\000\000\000\000\007\031\000\000\000\000\001C\000\000\000\000\000\000\000\000\000\000\001,\000\000\001<\001-\000\000\004\186\000\000\000\000\000\000\000\000\001C\000\000\0014\001<\000\000\000\000\001M\000\000\001A\000\000\001\165\001\166\000\000\000\000\000\000\000\000\001J\000\000\0014\000\000\000\000\000\000\001A\0017\000\000\000\000\000\000\001\153\000\000\000\000\000\000\001\167\001\168\000\000\001\169\001\170\000\000\000\000\000\000\001\029\000\000\001\165\001\166\000\000\000\000\001$\0016\000\000\000\000\000\000\000\000\001A\000\000\001\029\001<\000\000\000\000\001M\000\000\001$\0016\000\000\001\167\001\202\000\000\001\169\001\170\001A\000\000\001,\000\000\000\000\001-\000\000\000\000\000\000\000\000\000\000\000\000\001C\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\001$\0016\000\000\000\000\000\000\001,\000\000\001J\001-\0014\001\029\000\000\000\000\000\000\0017\001C\001$\0016\001K\000\000\000\000\001J\000\000\001\174\000\000\000\000\000\000\000\000\0017\000\000\000\000\000\000\001U\0014\000\000\000\000\001\175\000\000\000\000\000\250\000\000\000\000\000\000\000\000\000\000\001<\000\000\000\000\001M\000\000\001J\000\000\000\000\001,\001\174\000\000\001-\0017\001A\001<\000\000\001_\001M\001C\000\000\000\000\001J\001\175\000\000\000\000\000\250\000\000\000\000\0017\000\000\000\000\000\000\001d\000\000\000\000\000\000\0014\001A\000\000\000\000\000\000\000\000\000\000\001<\001\029\000\000\001M\000\000\000\000\000\000\001$\0016\000\000\000\000\000\000\001\194\000\000\001\165\001\166\001<\000\000\000\000\001M\001\203\000\000\001\204\001\173\001,\001\029\000\000\001-\000\000\000\000\000\000\001$\0016\000\000\001C\001\167\0039\001,\001\169\001\170\001-\000\000\001A\001\194\000\000\000\000\001,\001C\000\000\001-\000\000\001\203\0014\001\204\001\173\000\000\001C\001J\000\000\000\000\000\000\000\000\000\000\000\000\0017\0014\001,\000\000\002\b\001-\000\000\000\000\000\000\001\029\0014\000\000\001C\000\000\000\000\001$\0016\001J\000\000\000\000\000\000\000\000\000\000\000\000\0017\000\000\000\000\000\000\0022\000\000\0014\001<\000\000\000\000\001M\001,\000\000\001A\001-\000\000\000\000\000\000\000\000\000\000\000\000\001C\000\000\000\000\000\000\000\000\001A\001\174\000\000\000\000\000\000\001<\000\000\000\000\001M\001A\000\000\000\000\000\000\0014\001\175\001J\000\000\000\250\001\029\000\000\000\000\000\000\0017\000\000\001$\0016\0024\000\000\000\000\001A\000\000\001\029\000\000\001,\000\000\000\000\001-\001$\0016\000\000\001\029\000\000\000\000\001C\000\000\000\000\001$\0016\000\000\000\000\000\000\000\000\000\000\001<\001,\000\000\001M\001-\000\000\000\000\001\029\0014\001A\000\000\001C\000\000\001$\0016\000\000\001,\000\000\000\000\001-\000\000\001J\000\000\000\000\000\000\001\194\001C\000\000\0017\0014\000\000\000\000\002\144\001\203\001J\001\204\001\173\000\000\000\000\000\000\001\029\0017\000\000\001J\0014\002\166\001$\0016\001,\000\000\0017\001-\000\000\000\000\002\201\000\000\000\000\001A\001C\001<\000\000\000\000\001M\001J\000\000\000\000\000\000\000\000\000\000\000\000\0017\000\000\001<\000\000\002\206\001M\0014\000\000\001A\000\000\001,\001<\000\000\001-\001M\000\000\000\000\000\000\001\029\000\000\001C\000\000\000\000\001A\001$\0016\001J\000\000\000\000\000\000\000\000\001<\000\000\0017\001M\000\000\000\000\0031\0014\001\029\000\000\000\000\000\000\000\000\000\000\001$\0016\000\000\000\000\001,\000\000\000\000\001-\000\000\001\029\001A\000\000\000\000\000\000\001C\001$\0016\001,\000\000\001<\001-\000\000\001M\000\000\000\000\000\000\000\000\001C\000\000\001J\000\000\000\000\0014\000\000\000\000\000\000\0017\000\000\000\000\000\000\0037\001\029\001A\001,\000\000\0014\001-\001$\0016\000\000\001J\000\000\000\000\001C\000\000\000\000\000\000\0017\000\000\000\000\000\000\003K\000\000\000\000\000\000\001J\000\000\001<\000\000\000\000\001M\0014\0017\001\029\000\000\000\000\003P\000\000\000\000\001$\0016\001A\001,\000\000\000\000\001-\000\000\000\000\001<\000\000\000\000\001M\001C\000\000\001A\000\000\000\000\001J\000\000\000\000\000\000\000\000\000\000\001<\0017\000\000\001M\000\000\003i\000\000\0014\000\000\001\029\000\000\000\000\000\000\000\000\000\000\001$\0016\001A\000\000\000\000\000\000\001,\001\029\000\000\001-\000\000\001J\000\000\001$\0016\000\000\001C\001<\0017\000\000\001M\000\000\003n\000\000\000\000\000\000\001,\000\000\001,\001-\000\000\001-\000\000\001\029\0014\000\000\001C\000\000\001C\001$\0016\001A\000\000\000\000\000\000\001,\000\000\000\000\001-\001<\001J\000\000\001M\000\000\0014\001C\0014\0017\000\000\000\000\000\000\003w\000\000\001J\000\000\000\000\000\000\000\000\000\000\000\000\0017\000\000\001\029\0014\005B\000\000\000\000\000\000\001$\0016\000\000\000\000\000\000\001A\000\000\000\000\000\000\000\000\001<\001J\000\000\001M\000\000\000\000\000\000\000\000\0017\000\000\000\000\000\000\005\161\001<\000\000\001A\001M\001A\000\000\000\000\000\000\001,\000\000\000\000\001-\000\000\001\029\000\000\000\000\000\000\000\000\001C\001$\0016\001A\000\000\000\000\000\000\000\000\001<\001J\000\000\001M\000\000\000\000\000\000\001\029\0017\001\029\0014\000\000\005\173\001$\0016\001$\0016\001,\000\000\000\000\001-\000\000\000\000\000\000\000\000\001,\001\029\001C\001-\000\000\000\000\000\000\001$\0016\001,\001C\000\000\001-\000\000\001<\000\000\000\000\001M\001J\001C\0014\000\000\000\000\000\000\000\000\0017\000\000\000\000\0014\005\199\000\000\000\000\001,\000\000\001A\001-\000\000\0014\001J\000\000\001J\000\000\001C\000\000\000\000\0017\000\000\0017\000\000\005\215\000\000\006{\000\000\000\000\000\000\000\000\001<\001J\000\000\001M\0014\000\000\000\000\000\000\0017\001\029\000\000\000\000\006\141\001A\000\000\001$\0016\000\000\000\000\000\000\001<\001A\001<\001M\000\000\001M\000\000\000\000\001,\000\000\001A\001-\000\000\000\000\000\000\000\000\000\000\000\000\001C\001<\000\000\000\000\001M\000\000\001\029\000\000\000\000\000\000\000\000\000\000\001$\0016\001\029\001A\000\000\000\000\0014\000\000\001$\0016\000\000\001\029\002y\002z\001\166\001J\000\000\001$\0016\002y\002z\001\166\0017\000\000\000\000\000\000\006\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\002\213\000\000\000\000\000\000\001$\0016\000\000\002\224\002y\002z\001\166\000\000\000\000\001,\001J\000\000\001-\001<\000\000\001A\001M\0017\001J\001C\000\000\0079\000\000\000\000\000\000\0017\000\000\001J\002\239\007v\002y\002z\001\166\000\000\0017\000\000\000\000\0014\007\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\001<\000\000\001J\001M\001$\0016\003\176\000\000\001<\0017\000\000\001M\000\000\007\150\000\000\000\000\000\000\001<\000\000\001,\001M\000\000\007\134\000\000\000\000\000\000\002|\000\000\000\000\007\135\000\000\000\000\000\000\002|\000\000\000\000\000\000\000\000\001A\002}\001<\002\225\000\250\001M\000\000\000\000\002}\0014\002\225\000\250\000\000\000\000\000\000\000\000\001J\000\000\000\000\000\000\002|\000\000\001,\0017\000\000\007\140\000\000\007\160\000\000\000\000\000\000\001\029\007\141\002}\000\000\002\225\000\250\001$\0016\001,\000\000\001,\007\146\000\000\007\155\000\000\002|\000\000\000\000\007\147\0014\007\156\000\000\000\000\001<\000\000\000\000\001M\001A\002}\000\000\002\225\000\250\000\000\000\000\002\226\000\000\0014\000\000\0014\000\000\000\000\002\226\002\227\001,\001\204\002\228\007\165\000\000\000\000\002\227\000\000\001\204\002\228\007\166\000\000\000\000\001J\000\000\001\029\000\000\000\000\000\000\000\000\0017\001$\0016\002\226\000\000\001A\000\000\000\000\0014\000\000\000\000\002\227\000\000\001\204\002\228\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001A\000\000\001A\000\000\000\000\000\000\000\000\002\226\000\000\001<\000\000\000\000\004\181\000\000\001\029\002\227\000\000\001\204\002\228\000\000\001$\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\001\029\000\000\001A\0017\001$\0016\001$\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001<\000\000\000\000\000\000\000\000\001$\0016\000\000\000\000\000\000\0017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0017\000\000\0017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001<\000\000\001<\000\000\0017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001<")) + ((16, "\001\228\001}\000?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000b\000\000\000\000\000\233\000\222\000)\001m\000.\000$\000a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\231\000\000\000\000\000\000\000\000\000\000\000\207\000\000\000\000\000\000\000\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\012\000\000\000\000\000\000\000\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\236\000\244\000\128\000q\000\000\002f:J\001\004\002\176\000\016\000\000\000\000\000\000\000\160\000\000\000\000\002B\000\000\000\000\000\000\000\000\002\160\000\000\002\030\000\000\000\237\000\253\000\000\000\000\000\000\000\000\003:\000\000\000\000\000\000\000\000\004\172\000\000\000\000\003|\000\237\000\t\000\211\003\196\007\142\000\000\000\000\002\232\000\000\t\186@2\000\000\001\180@\128\000\000\002\154A0\002\238\002\014@2\001\222\003`\000\000\000\000\002\220\003\144\b\b\t\\\003\b\000\234\003\196\003\254\001\184\003*\000\017\003&\004@\011\142\000\000\006\250\003\136\004l\003n:\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\003\174\004\198\004~\000\000\000\000\000\000\000\000\005$\000\000\000\000\005\024\000\171\005X\006\242\b\158\000\000\000\000\000\000\0044\004B\006J\003\144\b<\006T&$\004`\006\172\004(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\250\006\248\011\150\n\142\006\250\011\238\012^\000\000&P\012\250&\132'T'^\000\000\001\168\000\000\000\000\000\000\000\000\005\200\000\000\000\000\003HK\196\005\186\000\000\022v\018^\000\000\000\000\000\000\000\000\020\190\000\000\000\000\005\186\000\000L\004\005\186\022\006A\188\000\000L\156\005\186\000\000\025\144\023Z\000\000\000\000\000\000\000\000\028D\026<\000\000\000\000\000\000\000\000\031\n\0276\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000;\004\000\000\007\004\007\026\000\000\030\026\007R#\026\000\000\000\000\000\000\000\000\005\186\000\000\000\000\000\000(t\000\000\000\000\000\000\000\000\000\000\000\000\000|\0074\000\000\000\000\000\000\000\000L\188\005\186\000\0004\160\029`\000\000\000\000\000\000\000\000O|\031\182\000\000\000\000\000\000\000\000Up \016\000\000\000\000\000\000\005\186\007x;>\006\188\007\2100\228\000\000\006\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000W\000\000\000\000\000\000\000\000\bV;\180\000\000\000\000\0070\b\130;\190\000\000\000\000\000\000<\004\000>\000\000<\224\000>\000\000<\238\004\000\b\004\b\028\000\000\000\000L\186\000\000\000\000\000\000\000\000\000\000\000\000\000>\000\000\000\000=$\000\000\000>I\018\000\000\005\186\000\000\000\000=\154\000\000\000>\000\216\000\000\000\000\000>\000>\000\000\000\000\000>\000\000\000\000'^\000\000\000\000\000\000\000\000\000>(\196\000\000\000\000\000>\000\000\005\004\bV\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\024\000\000\007\212\b\014\000\000G\180\000\000M*\005\186\005\186\000\000\000\000\000\000\000\000\000\000\000\000\b\160\b\170\t\200\012\150\t\138\t\200\n\016\b\200\t\168\b\248\002\128\n\178\000\000\000\000\007\196\007\254\t\022\003b\n\130\b\188\000\000\000\220\003\178\t\254\001\021\012D\000\000\000\0006J\000\000Tt\011\214\000\000M\128\005\186M\184\005\186\000\000\005\b\004\168\000\000\r\190\000\220\000\000\000\000\n\236\000\000\000\000\000\000\000\000\000\000\r\238\000\220\015\210\000\220\000\000\005\206\000\000\000\000\006\144\000\000\000\000\000\000\012v\000\000\000\000\000\000\000\220\000\000\000\000\000\220\000\000\n\130\n\128\000\000\000\148\b<\000\000\000\148\000\000\000\000\015\248\000\220\000\000\000\000\000\000\000\000\000\000\000\000\000\148\r>\r\150\r\250\012.\011\196(\254\001~\000\000\011(\tL\014L\011`\t\154\016$-0\000\000\000\000\000\000\000\000\000\000\003,\n\198\000\000\000\000\000\000\011x\t\206\n\182\000\148\020\152\000\000\000\220\000\000\000\000\000\000\012\250\000\000M\194\005\186\014d\011\212\t\212\015J\011\232\nF\000d)\b\000>\015\170\012$\nTHL\r\030\000\000)z)\132\000>H\242\000\000M\242\005\186\005\186\r\n\000\000\000\000\r\026\000\000\000\000\000\000\000\000*4\005\014\000\000\000\000\000\233\000\000\000\000\000\000\000\000\000\197\000\000B&\016\012\012f\nX=\166\000>\016\022\012|\n\1685\154\000\000D\154\000\000\000\000\016h)\228\000\178\000\000\000\000\r\236N\016\000\000\005\186Ir\000\000\005\186N\128\005\186\000\000\000\000\000\000\000\000\000\000F\204\000\000\000\000\000\000\000\245\016r\000\000\000\000\000\000\000\000*\154T\202\000\000\000\000\000\000\000\000\000\000\012\\\017\184\000\000\0014*\162\0014+\020\0014\000\000T\212\000\000+\128\0014\018\n\004\230\018\018\000\000\000\000+\180\0014+\240\0014,P\0014,\188\0014-\024\0014-\136\0014-\224\0014-\232\0014.P\0014.\176\0014/\b\0014/x\0014/\128\0014/\232\00140^\00140\136\00140\176\00141f\00141\142\00142\006\0014\n\202\017B\003L7\196*4\b\236\000\000\000|\000\000\019z*4\t\004\000\000\005\216\000\000\028\208N\2322F>\022\000>\000\000\r\196\r\030\000\000\011\194\000\000!H\000\000\000\000\000\000N\176\005\186\000\000\000>I\018\000\000O0\005\186\000\000\000\000\018n\000\000\000\000\018\218\000\000\000\000\000\000!\158\000\000\000\000\000\000\000\0002\134\000\000\003\190\000\000\000\000.\194\000\000\000\000\000>In\000\000O\148\005\186\000\000\000\000\000\0002^\019T\000\000\000\000\019\184\000\000\000\000\000\0002\254\000\000Ir\000\000O\168\005\186\019\192\000\000\000\000\020\028\000\000\000\000>\nI\202\t\180\000\000O\192\005\186\020$\000\000\000\000O\248\005\186\020v\000\000\000\000\021\030\000\000\000\000\000\000P\140\005\186\021\130\000\000\r6\021\218\000\000>\182\000\000\000>?&\000\000\000>?2\000\000\000>\007$\000\000\000\000\000\000\000\000\000\000?v\000>\000\000\005\236\t,\000\000\000\000\000\000\0014\022>\000\000\000\000\000\000\022d\000\000\000\000\000\000\000\000\000\000\023\000\000\000\000\000\000\000\0014\023&\000\000\023\138\000\000\000\000\000\000\023\226\000\000\000\000\000\000\000\000U\012\000\000\000\000\024\006\000\000\000\000\000\0003&\0014\024B\000\000\000\000\000\0003\220\0014\025$\000\000\000\000\000\0004\002\0014\005l\025H\000\000\000\0004.\0014\025\160\000\000\000\00046\0014\026\004\000\000\000\0004\254\0014\000\000\000\000\026*\000\000\000\0005\198\0014\026\198\000\000\000\0005\206\0014\026\236\000\000\000\0005\250\0014\000\0006 \0014\000\000\005N\000\000\000\000\0014\000\000\000\000\027P\000\000\000\000\027\168\000\000\000\000\r\132\000\000\000\000\027\204\000\000\028\174\000\000\000\000\000\000*4\t\212\000\000\006\b\000\000B\154\012\230\003H\029\014\000\000C\000\000\000\000\000\000\000CR\000\000\000\000\000\000C\182\000\000C\192\000\000\000\000\029p\000\000\029z\000\000\000\000\000\000\000\0005\216\000\000\000\000\000\0006\150\00147v\0014\000\000\r6\029\204\000\000\000\000\029\214\000\0007\160\000\000\000\000-0\000\000\000\000\000\000\030\142\000\000\000\000\000\000\000\000\00147\226\0014\004\158\000\000\000e?\194@6\000>7\236\0014\000>8\022\00148\242\005>9|\0014\000\000\000\000\000\000\r\128\000\000\000\000\000\000\030\178\000\000\000\000\000\000\000\000\004\242\r\128\000\000\031n\000\000\000\000\000\000\000\000\007\242\r\128\000\000\014\230\000\000\000\000\000\000\014\166\000\000\001\002\000\000\000$\000\000\014\128\000\000\001\216\000\000\000\000\000\000\000\000\000\000\000\000\003,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0014\000\000\015\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bJ\r\128\000\000\000\000\000\000\000\000\000\000\bn\r\128\000\000\000\000\n\220\014\028\000\148\031\148\000\000\r\216\n\240\014\132\001\027\015\006\000\148\020\214\000\220\015\b\000\148\000\000\031\248\000\000\001\144\000\000\r\250\n\244\006r\000\000\000\000\000\000\000\000\000\000\014&\002B\014\022\003H\000B\000\000\000\000\000\000\000\000\000\000\028H\000\000Uh\000\000\011\004\000\000\011\012\000\000\000\000\000\000\000\000\003\"\000\000\000\000\014\208\003H\000\000\016\194\017\194\003H\018z\003H\003H\000\000\003H\001L\t\236\000\000!r\000\000\000\000\000\000\002D\000\000\019D\003H\003H\000\000\020\024\003H\003H\011\028\000\000 p\000\000\000\000\011:\015j\000\000\024:\n\206\000\000\000\000\000\000\000\000\015d\000\000\000\000\000\000\000\000\0014\000\000\000\000\000\000\000\000\000\000\t\"\r\128\000\000\000\000\014\192\011J\015\254\000\148\000\000\021\232\000\000\000\220\000\000\016\\\000\000\000\000\000\000\000\000\000\000\031\238\000\000\0014\000\000\000\000\022\224\000\000\000\220\000\000\026\166\000\000\000\220\000\000\0270\000\220\000\000\005\000\000\000\011p\016\146\007x\000\000\015\000\015\022\011\132\015>\015\242\027\148\000\220\0112\000\000\011\140\015\204\015\210\004P\011\214\015\162\011\142\015\226\007\210\012B\015\194\000\000\000\000\n\244\012v\000\000\007\128\003\174@B\000>!\020\000\000\007\186\001\150\000\000\000\000\015\130\011\180\tN\000\000C\176\000\000P\150\005\186\000\000\0164\016>\000\000\012\132\000\000\005\186\015\152\011\188\n\168\015\174\006B\000\000\000\000\000\000\000\000\011\240\012\144\000\000\011\244\012\218\000\000\004\242D\000\015\166\015\182\012\004\t.\012\232\000\000\012J\t\222\r\002\000\000\015\244\016\004\012\\\016L\015\242\028j\000\220\000\000\012\142\016\202\000\000\011\028\000\000\r\018\000\000\016\234\000\000!.\n \016\180\012\148\016\250\000\000\"x\np\016\204\000\000\000\000\012\012\007\240\rD\000\000$\000\000\220\rP\000\000\012V\000\000\016\136\012\156\011\190\015\174\016\138\016\164\012\180\018(\000\000\016\184\005(\000\000\000\000\000\000\n\218\000\000\000\000\000\000\000\206\012\204\016\138P\240\005\186\000\000\001\020\012\228\017\\\000\000\000\000\000\000\000\000\000\000\000\000Ql\n\150\000\000\012\230\017\200\000\000\000\000\000\000\000\000\000\000\000\000D>\r\132\000\000\rP\002r\000\000\rT\rz\012\182\000\000\003\224I\222\000\000\006\194\000\000Q\132\005\186\005\186\000\000\000\000\011,\000\000\r\222\000\000\004X\011,\011,\000\000\r\138I\242\005\186Q\152\005\186\r\166\000\000\000\000\000\000\000\000\r\224\000\000\000\000\002\220\000\000\011<\017\030\r\140\018T\016\234\000\000\000\000\006\168\011H\0178\000\000\000\000\r\184\018h\016\246\000\000\000\000\024\214\000\000#8\000\000Q\0288^\005\186\000\000Q&$\146\000\000Q\228\000\000\000\000\000\000\000\000\000\000\011,\000\000\000\000\014\018\017<\r\188\018n\016\252\000\000\000\000R\\\0148\017B\000\000\000\000\000\000D~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014B\000\000\017\000\r\190%\174\011X\000\000\017`\014\n\011\024\000\000\0072\018r\018\026\014^\017h\000\000\000\000\000\000\017l\014\030\011P\000\000\b\204\000\000\b\2269\250\006\148\000\000\000\000\000\000\rn\017.\0146\000\000\0174\rn\000\000\018,\014\136\017|\000\000\000\000\000\000\005\186\000\139\0024\006\226\000\000\000\000\000\000\000\000\017>\014T\000\000\007\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\186\017,\014V\018\172\017D\000\000D\208*4\000\153\014\158\017\026\000\b\000\164\014\172\017\224\000\000\000\000\018\176!>\000\000\000\000!\140\000\000\014\160\000\000\005t\000\000\000\000\000\000\000\000\000\000\000\000Rd\005\186\000\000\018\178\"\000\000\000\000\000\"Z\000\000\001P\014\178\018Z\000\000\000\000EPE\134\n:\000\000R\202\005\186\"\168\000\000\000\000\"\210\000\000\000\000\015\018\000\000\t4\000\000\000\000\000\000\000\000\000\000\000\000E\160\000\000\000\000F\bFv\011\n\000\000R\246\005\186#\164\000\000\000\000#\242\000\000\000\000\014\192$f\015(\000\000\014\218\014\228\000{\003h\014\232\011*\014\240\018`#\202\0156\000\000\014\252\015\020\014\156\000\000\005\238J\n\000\000\007l\000\000\015,FzG0\006Z\017 \006\166\000\000\012\206\005N\000\000\006\144\000\000\000\000\006\144\000\000\000\000\006\144\015l\000\000\bR\006\144\018j$\194\015@\000\000\006\144\000\000\000\000S\012\000\000\000\000\000\000\006\144\000\000\000\000\015\252\000\000\017&\011>\016\012\000\000\015.J\142\016\014\000\000\000\000\000\000\000\000\016\022\000\000\000\000\001\136\000\000\006\144SP\000\000\017Z\006\144GT\000\000\016<\017\184\015D\018\236\017z\000\000Gl\016d\017\192\000\000\000\000\000\000G\234\t\138\000\000\000\000\000\000\000\000\000\000\000\000\012\\\016\150\000\000\017x\015\138\019\148\t \000\000\017\214\000\000\000\000\000\000\000\000\016\164J\238\000\000\000\000\000\000\012\\\000\000\000\000\000\000\000\000\016\168K8\000\000\000\000\000\000\000\000\000\000\000\148\000\220\000\000\000\000\000>\000\000Sh\005\186\000\000\b\"\000\000\000\000\000\000\000\000%\006\000\000\000\000\000\000\000\000\000\000\000\000\018\128\000Q\r\216\017.\006\136\015\168\000\000\002|\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017>\t\192\016\024\000\000\bZ\014\254\018\252\018\164\016\192\000\000\000\000\018\152\0038\0062\000\000\000\000\000\000\000\000Sz\005\186\000\000U\144%\240\000\000\000\000\000\000\000\000K\138\016,\000\000\016X\003~\000\000\000\000\003H\004\234\000\000\000\000\000\000\000\000\000\000T\n\005\186\000\000U\200(\026\000\000\000\000\000\000\000\000\000\000\000\000Tj\005\186\000\000U\204(\204\000\000\000\000\000\000\000\000\b.\000\000\000\000\000\000\005\186\000\000\000\000\b\252\018\168\016\222\000\000\000\000\018\156\002\222\bb\000\000\000\000\000\000\000\000\n\022\016\148\018\252\tt\018\174\017\016\000\000\000\000\018\162\004@\n\192\000\000\000\000\000\000\000\000\000\220\000\000\017&\000\000\000\000\000\000%\128\000\000%\168\000\000\000\000\000\000\000\000\000\0009x\000\000\000\000\000\000\002J\000a\000\000\000\000\000\000\000\000\000\000\003x\000a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000q\000\000\000\000\000\000K\170\000\000\005\186\000\000\0112\000\000\000\000\000\000\003\128\000\000\000\000\000\000\011\b\000\000\000\000\000\000\rF\000\000\000\148\000\000\000\183\000\000\000\220\000\000\000W\000\000\000\000\000\000:\006\000>\000\000\000\000\003$\000\000\000\000\000\000\000\000\003,\005F\017\196\t^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\000\017.\000\000\000\000\000\000\000\000\005\148\007@\007<&\200\000\000\000\000\017@G\182\000\000\000\000\000\000\017bH \000\000\000\000\000\000\000\000"), (16, "\007d\004\234\002\165\002\166\001\210\000\250\001\216\bK\000\254\001\018\006\147\000\171\007d\0009\002\165\002\166\001\210\002\246\007e\007y\000=\003\228\002\134\007g\000\254\001\018\007\247\002\247\000A\002\246\007e\007y\007h\007z\000\167\007g\007\255\002a\007\167\002\247\003\017\000s\001\210\002P\007h\007z\bL\002U\b3\000\157\004\176\b\020\003\017\002h\bO\007\139\000\155\002l\002\147\001,\004\237\000\254\000\158\003\245\007i\002\225\002\227\000\250\007}\000\156\000\254\000\255\000o\001\209\001\210\006\129\007i\000^\002P\000\156\007}\b\014\000\250\002\230\002\227\000\254\000\255\005\164\002h\000b\000\254\bP\002l\0009\001,\001\211\001\227\000\156\001\213\001\214\007!\002h\007j\006\202\002m\002l\000\167\001,\000\169\002a\003\019\002\165\002\166\001\210\007j\007!\007k\004\132\002n\000\159\004b\000\159\003\019\002\169\002\148\003\021\000\254\004\177\007k\006\154\006\155\002\012\001\210\007#\001\172\002\169\004/\003\021\000\254\002m\001%\001\228\007~\001\229\002\197\006\171\001,\001H\007#\006\164\005.\007$\002m\002n\007~\0009\007&\007\127\007\171\007\172\007R\b4\0040\001\248\007J\004\255\007$\007\173\007\174\007\127\007n\007&\004\145\007p\001<\007=\007u\001\217\007\175\005.\001\236\002\145\007n\004\174\007d\007p\007w\000\159\007u\003\022\000B\003\028\001\175\001\219\007M\003\215\000\254\003\"\007w\001\248\003\024\003\022\bi\003\028\004e\007x\001<\007g\000<\003\"\007O\001\248\003\024\002\165\002\166\001\210\007h\007x\b\018\002\168\005\n\005\012\005\014\007d\003$\002\165\002\166\001\210\005\017\004\147\007\156\000\131\002\169\000\198\003\021\000\254\003$\005 \004\172\007P\002\246\007e\007y\003[\002\227\004\181\007g\001%\007i\006\204\002\247\007\235\004\144\001,\001/\007h\007z\000\156\001<\001\238\000\159\001?\007d\003\017\002\165\002\166\001\210\001\239\001\235\001\248\001\217\004\194\000\250\0042\005\192\000\254\001\018\001=\001@\002\246\007e\b\025\000f\0009\001,\007g\007j\007i\000;\002\247\004\180\007}\000{\001?\007h\007z\0014\006\129\003\022\006.\007k\000\159\003\017\001<\001P\003\215\003\023\001(\001\248\003\024\001@\002\146\006\029\001,\004\175\000\149\001,\b$\000\161\000\159\006\237\002\168\001=\bj\001Q\007j\007i\006\030\0061\001<\001<\0066\000\130\003\019\004\185\006\239\003\021\000\254\001\018\007k\000\136\007m\004\238\001C\0063\001?\002\169\002g\003\021\000\254\000?\005\017\005\017\000\162\007n\000\250\007Q\007p\000\254\001\018\007u\006\147\001@\000\153\007j\007~\007\224\0064\001,\001\019\007w\001N\003\019\001<\001D\001C\004\175\004\150\007k\000\250\007\127\005&\000\254\001\018\007\158\002\169\007M\003\021\000\254\007x\001o\003!\001=\007n\002\132\000\166\007p\001\022\b%\007u\003\022\004\237\007O\003\215\007~\000\159\005)\001@\003\023\007w\001\248\003\024\003\022\001,\003\028\001<\001?\001?\007\159\007\127\003\"\004\175\001\248\003\024\bW\002\166\001\210\001C\007x\004\188\001\210\007P\007n\001@\001@\007p\b\027\b&\007u\001,\001,\007\128\b-\001,\007\250\003V\001\210\003$\007w\0009\001G\003\022\007d\003\028\002\165\002\166\001\210\001%\001I\003\"\001?\001\248\003\024\001,\001/\001W\000\152\007x\b+\002\246\007e\007y\001C\000\168\000\134\007g\001s\001@\000\189\002\247\006\154\006\155\007\168\001,\007h\007z\003$\001<\b.\002y\007\188\007d\003\017\002\165\002\166\001\210\006\163\bY\001C\001C\006\164\005.\001?\001I\005\024\005\"\001Z\002N\002\246\007e\007y\000\137\b/\000\199\007g\001U\007i\007\169\002\247\001@\007\190\002~\006\029\007h\007z\001,\007\170\0065\007\213\005\025\005%\003\017\001%\004\255\b0\001\209\001\210\006\030\001,\001H\002z\006%\001C\001\142\000\159\bZ\001%\003\021\000\254\b?\001<\001\143\001,\001/\007j\007i\0061\001\211\001\227\007\130\001\213\001\214\003\019\002\134\001%\007\253\007\254\000\176\007k\001=\001,\001H\0063\001I\001?\002\169\000\193\003\021\000\254\000\250\000\160\000\159\000\254\000\255\001C\006\164\005.\000\200\005\r\005\012\005\014\001@\b@\007j\007~\0064\005f\001,\001,\002\147\007\208\003\019\000\254\001\228\003\139\001\229\001\252\007k\003\137\007\127\007\171\007\172\007!\000\204\002\169\007\209\003\021\000\254\001N\007\173\007\174\b\t\007n\000\194\000\149\007p\0010\000\161\007u\001%\007\175\005.\000o\007~\002~\001,\001H\001?\007w\b,\001%\003\022\001\236\003\028\000\202\007#\001,\001/\007\127\003\"\000\159\001\248\003\024\006g\001@\001\219\001C\007x\000\254\004\130\001,\007n\000\209\007$\007p\002\148\0014\007u\007&\001<\007\148\0009\0076\001<\001P\000\250\003$\007w\000\254\000\255\003\022\000\222\003\028\006h\006\177\006i\000\167\007\209\003\"\005\234\001\248\003\024\001=\000\159\005y\007d\007x\002\165\002\166\001\210\001%\002\165\002\166\001\210\000\165\006\029\001,\001/\004\157\bf\bg\000\205\002\246\bi\000\226\003$\006\209\006j\007g\001C\006\030\001\238\002\247\005\235\006\031\003\215\004/\007h\bk\001\239\002d\001\248\001\217\000\210\007d\003\017\002\165\002\166\001\210\bz\002h\001N\007\253\007\254\002l\001<\001,\002\145\005h\br\001I\002\246\bs\004\237\006k\000\241\001?\007g\004\132\007i\001?\002\247\006\164\005.\001\000\006\029\007h\b{\006l\006m\000\247\006n\003\133\001@\003\017\004V\003\137\001@\000\223\001,\006\030\000\159\007\211\001,\006$\000\250\001\191\002s\000\254\001\018\000\254\002m\002P\001<\001%\007\140\006\178\007j\007i\002#\001,\001/\002h\000\159\005g\003\019\002l\0014\001,\002\168\001%\007k\001=\004\146\001<\001P\001,\001/\002\169\000\232\003\021\000\254\002\169\006p\003\021\000\254\006r\001\022\000\159\006w\006\131\006\213\001?\001=\bn\001W\007j\004\027\001C\006\174\000\254\001\018\001C\003\215\003\019\005\148\006\179\001\004\000\159\001@\007k\000\234\007\127\002m\001\198\001,\004\150\002\169\006\175\003\021\000\254\b\016\001\030\0041\001!\007n\003(\002n\007p\007\209\003!\007u\b\127\001I\001F\0013\001Z\002\146\003\215\004,\001?\007w\001N\004\142\003\022\001\205\003\028\002u\003\022\000\159\001T\007\127\003\"\001,\001\248\003\024\003\023\001@\001\248\003\024\007x\001?\000\250\001,\007n\000\254\000\255\007p\003!\007d\007u\002\165\002\166\001\210\001C\002\165\002\166\001\210\001@\003$\007w\000\159\003\217\003\022\001,\003\028\002\246\007e\007\136\003a\002\227\003\"\007g\001\248\003\024\007!\002\247\003\207\001\210\007x\005F\007h\007z\000\156\005\164\001K\007d\000\254\007d\003\017\002\165\002\166\001\210\004I\002\227\007@\000\250\007\189\003$\000\254\000\255\br\001C\br\bs\002\246\bs\000\156\007#\007g\001Y\007g\000\242\007i\004\255\002\247\001W\000\245\007h\005\164\007h\bv\000\254\001C\002x\001]\007$\005\157\003\017\007!\001,\007&\007\169\001I\000\250\007-\001%\000\254\000\255\001%\0014\007\170\001,\001/\0009\001,\001H\001<\001P\001%\007i\007j\007i\004\255\001I\001,\001/\001Z\005\167\003\019\001\248\000\248\007#\002\168\001`\007k\001=\007!\001\153\006\140\005\012\005\014\002\169\0009\003\021\000\254\002\169\006|\003\021\000\254\007$\003\215\000\159\004\247\005.\007&\006\147\000\159\007j\007*\007j\007~\001\174\007\165\000\167\001\248\007\179\002a\003\019\001\005\007#\006\029\007k\002\145\007k\001\159\007\127\002\030\006\160\005\012\005\014\002\169\001\201\003\021\000\254\001N\006\030\007(\007$\007n\006>\001\185\007p\007&\bu\007u\by\007'\001<\006\025\007\242\000\159\004\165\000\250\001?\007w\000\254\000\255\003\022\007\185\003\028\006\129\003\022\007m\001\157\007\127\003\"\001=\001\248\003\024\003\023\001@\001\248\003\024\007x\002\028\007n\001,\007n\007p\005k\007p\007u\007d\007u\002\165\002\166\001\210\002P\000\159\001\225\002\130\007w\003$\007w\000\159\004\209\003\022\002h\003\028\002\246\007e\002l\005~\001,\003\"\007g\001\248\003\024\004\255\002\247\007x\001\244\007x\004\216\007h\007\132\002P\003\215\005\215\002\127\002\134\000\254\003\017\001\243\006\154\006\155\002h\001\202\001W\0014\002l\003$\001,\000\159\001?\001C\001<\001P\004\255\006\156\006\172\007\028\0014\002\"\006\164\005.\007i\0028\002m\001<\001P\001@\002\146\002\138\006\244\001=\002\147\001,\005\134\000\254\007\149\004\237\002n\006\168\005\012\005\014\001I\000\250\001=\001Z\000\254\000\255\001%\005\146\001\210\006\147\0026\002m\001,\001H\bc\002\166\001\210\000\167\007j\000\196\002a\005\140\006\147\001<\007M\002n\003\019\007\237\005\012\005\014\007\251\000\159\007k\004\150\007!\006\136\0014\005D\001N\002\169\007O\003\021\000\254\001<\001P\002P\003\215\003!\002Q\001\226\001C\001N\003\215\006\150\006\248\002h\002\148\001?\007\135\002l\003\133\001,\001=\003\150\003\137\007\252\007\244\007#\002\145\007P\001?\0014\003\133\007\127\001@\003\134\003\137\004\150\001<\001P\001,\001I\006\147\0058\002D\007$\007n\001@\002>\007p\007&\003!\007u\001,\0071\004\150\0014\001=\000\167\006\129\002T\002a\007w\001<\001P\003\022\002m\003\028\002F\003!\001b\001N\005\179\003\"\b\006\001\248\003\024\006\147\001,\000\159\002n\007x\001=\002M\001Q\007t\b\003\001@\006\154\006\155\001?\003\216\001W\001,\007\192\bd\002\134\003\021\000\254\001C\003$\006\154\006\155\006\156\006\172\001W\001N\001@\006\164\005.\002\160\001L\001C\001,\000\159\0056\006\156\006\172\001<\001M\003\133\006\164\005.\003\174\003\137\001?\002\165\002\166\001\210\002\149\001I\001N\002\147\001Z\003\215\000\254\003\133\001=\000\159\004R\003\137\002\246\001@\001I\005\164\004\150\001Z\000\254\001,\002\163\005\028\002\247\001C\000\159\002\165\002\166\001\210\005P\002\146\003!\005\183\006\154\006\155\0018\003\017\001W\001,\001@\000\167\002\246\001<\005\238\001C\001,\003\215\002\177\006\156\006\172\002\192\002\247\000\159\006\164\005.\001f\005/\004v\001N\003\133\001%\001=\006\228\003\137\003\017\003\215\001,\001H\006\154\006\155\002\148\000\167\001W\006z\002a\001I\002\134\001?\001Z\001C\002\165\002\166\001\210\007\240\007\241\005\204\003\215\004\219\006\164\005.\007\177\000\159\001\248\003\215\001@\002\246\000o\001W\0009\000\167\001,\006\134\002a\002\134\001C\002\247\003\019\002\195\001s\002\135\001I\b;\002\147\001Z\002\201\000\254\002\235\000\159\003\017\002\169\000\159\003\021\000\254\002C\000o\005\210\002\165\002\166\001\210\001?\002\165\002\166\001\210\002I\003\019\001I\002\178\bC\001Z\002\147\003\215\002\246\000\254\003\215\006\002\002\246\001@\002\169\003\215\003\021\000\254\002\247\001,\003\025\003\215\002\247\002\240\007\152\002g\001C\b=\005U\003\215\003\133\003\017\b\n\006\252\003\137\003\017\005\131\001<\002}\0054\003T\002\165\002\166\001\210\000\159\002\148\007D\bD\003\025\004\220\000\254\000\159\003\022\000\159\003\028\003\019\002\246\001I\005\198\004\226\003\"\004\241\001\248\003\024\001,\002g\002\247\007\252\002\169\005\006\003\021\000\254\002\148\005\b\005\161\005.\005@\002Z\001C\003\017\003\022\005+\003\028\002\\\001Y\002k\006&\003$\003\"\005t\001\248\003\024\003\215\000\159\0067\004\237\0050\002\165\002\166\001\210\006?\003\019\003\025\002|\005I\003\019\001;\004\202\006v\001I\000\159\004\198\002\246\001<\002\169\003$\003\021\000\254\002\169\000\159\003\021\000\254\002\247\005i\003l\002\165\002\166\001\210\005>\000\159\002\159\000\159\001=\005o\003\022\003\017\003\028\005v\005|\000\159\002\246\001@\003\"\000\159\001\248\003\024\003\215\001,\003\025\003\019\002\247\000\159\003\025\002\165\002\166\001\210\0055\005\145\002\162\006 \007\015\005\160\002\169\003\017\003\021\000\254\000\159\006 \007(\003$\002\176\005z\003\215\006 \000\159\005\219\002,\001\210\004/\003\215\003\022\002g\003\028\001<\003\022\003\215\003\028\005\168\003\"\005\171\001\248\003\024\003\"\000\159\001\248\003\024\003\025\005\178\001\211\002\186\001?\001\213\001\214\000\159\007%\003\019\001C\000\159\000\159\002\165\002\166\001\210\005\222\005\226\005.\003$\002\191\001@\002\169\003$\003\021\000\254\003\215\001,\002\246\005\127\002\194\000\159\003\022\003\215\005C\000\159\005\182\003\019\002\247\005\221\003\"\001f\001\248\003\024\004\218\005\188\003\215\004l\003\209\003\210\002\169\003\017\003\021\000\254\003\215\005\132\003\025\002\165\002\166\001\210\002\200\000\159\005\156\000\159\002\219\002\168\006\020\003$\005\169\000\254\005\194\000\159\002\246\005\206\001?\002\213\005\221\005\225\002\169\003\215\003\021\000\254\002\247\002\216\003\025\003\215\001C\001\236\003\022\005\230\003\028\001@\004\212\002\234\bG\003\017\003\"\001,\001\248\003\024\001\219\005\243\002\134\000\254\002\239\005\172\000\159\002\165\002\166\001\210\003\003\003\215\005\180\005\249\006\004\000\159\003\022\001I\003\028\0042\003\218\003\019\002\246\003$\003\"\005\184\001\248\003\024\003\215\003p\004o\004t\002\247\005\199\002\169\bH\003\021\000\254\002\147\001<\000\159\000\254\004\205\000\159\003\022\003\017\001\136\000\159\002\165\002\166\001\210\003$\003\023\001<\001\248\003\024\001C\003\215\005\216\000\159\002\165\002\166\001\210\002\246\005\220\003\019\001\238\006\015\003\025\006!\003j\000\159\001=\002\247\001\239\002\246\001\248\001\217\002\169\004\191\003\021\000\254\003\215\000\159\000\159\002\247\003\017\004L\006\019\002P\006\r\004k\002f\002\165\002\166\001\210\006(\0069\003\017\002h\003\022\003\215\003\028\002l\002\148\001,\003\215\006-\003\"\002\134\001\248\003\024\003\025\002P\006\"\003\019\002p\000\254\004\172\006C\003\215\006^\006t\002h\003\208\004\181\001?\002l\002\169\001,\003\021\000\254\001<\006\144\005.\003$\0062\000\159\004?\000\159\001?\003\215\004\221\001@\003\022\002\147\004\215\004\149\000\254\001,\002m\004\182\003\"\003\215\001\248\003\024\003\019\001@\000\159\004\168\006y\006\\\003\025\001,\002n\004\178\000\159\000\159\003\019\002\169\006\133\003\021\000\254\004\200\002m\002\165\002\166\001\210\004\225\003$\006d\002\169\006\146\003\021\000\254\006q\007\163\005.\002n\000\159\002\246\000\159\000\159\004\227\003\022\004\240\004\208\006\166\006\182\006\127\002\247\002\168\003\"\003\025\001\248\003\024\004f\005*\001C\007\023\003\215\002\148\000\254\003\017\004\185\003\025\003\021\000\254\001\018\001?\006\152\003\215\001C\002\165\002\166\001\210\002\134\002\134\003\215\003$\000\159\007\181\006\203\003\215\006\189\003\022\001@\003\028\002\246\004\250\000\159\006\193\001,\003\"\006\222\001\248\003\024\003\022\002\247\003\028\0052\007\006\000\159\001I\004[\003\"\004\175\001\248\003\024\004\229\004\233\003\017\002\147\002\147\007B\000\254\000\254\000\159\000\159\007\011\003$\0072\002\165\002\166\001\210\007\016\0059\002\165\002\166\001\210\003\022\007.\003$\003\019\002\165\002\166\001\210\002\246\003\023\006\238\001\248\003\024\002\246\007\022\005H\006\129\002\169\002\247\003\021\000\254\007\b\001C\002\247\004D\000\159\007\030\007G\007\019\004<\004\189\003\017\000\159\0075\007/\000\159\003\017\000\254\007\\\002\165\002\166\001\210\000\159\005S\002\165\002\166\001\210\005u\003\215\002\148\002\148\003\025\003\019\005\016\002\246\000\159\003\215\003\215\005n\002\246\000\159\003\215\000\159\005p\002\247\002\169\000\159\003\021\000\254\002\247\005s\002\134\000\159\007r\0044\003\014\002P\003\017\005\130\002r\003\215\005x\003\017\003\022\000\159\003\028\002h\005\129\007\166\005}\002l\003\"\001,\001\248\003\024\002P\000\159\000\159\002\142\003\025\003\215\003\019\001<\005\128\005J\002h\003\019\002\147\000\159\002l\000\254\001,\005\144\002\168\002\169\005\155\003\021\000\254\003$\002\169\005\154\003\021\000\254\005\159\005\170\003\215\002\169\007A\003\021\000\254\005\181\003\022\003\215\003\028\003\215\007E\007I\002m\005\177\003\"\007N\001\248\003\024\000\159\007\178\002\134\003\215\003\019\003\025\003\171\001\210\002n\003\019\003\025\007\204\b\001\002m\001d\000\159\007Z\002\169\003\215\003\021\000\254\001<\002\169\003$\003\021\000\254\005\193\002n\003\188\001\227\002\148\001\213\001\214\007\206\005\187\005j\007a\003\022\002\147\003\028\001=\000\254\003\022\003\215\003\028\003\"\001?\001\248\003\024\003\022\003\"\003\025\001\248\003\024\003\215\005\189\003\025\003\023\003\215\001\248\003\024\007o\005\213\001@\002\165\002\166\001\210\003\215\007{\001,\007\133\000\159\003$\003\193\003\209\003\210\006\129\003$\005\201\002\246\005\212\000\159\007\184\003\022\003\215\003\234\005\207\001<\003\022\002\247\003\028\003\"\005\211\001\248\003\024\003\027\003\"\007\246\001\248\003\024\005\224\006B\003\017\000\159\002\148\002\165\002\166\001\210\001?\002\165\002\166\001\210\000\250\001\236\005\229\000\254\000\255\005\232\003$\005\239\002\246\005\247\b\005\003$\002\246\001@\001\219\005\254\001C\000\254\002\247\001,\006\t\b\017\002\247\006A\003*\bl\000\250\006:\003)\000\254\000\255\003\017\006;\007!\bw\003\017\006@\006D\006E\006f\006_\006`\006e\002\165\002\166\001\210\001l\005\023\006s\003\213\003\214\b|\006\130\001<\006}\006~\006\128\006\173\002\246\007!\003\019\006\145\001?\006\149\006\151\006\153\007#\001<\002\247\006\165\006\181\006\183\001=\002\169\003|\003\021\000\254\006\184\001C\001@\001\238\003\017\006\190\006\195\007$\001,\006\199\006\217\001\239\007&\001\248\001\217\007#\007C\006\224\007\017\007)\002\165\002\166\001\210\0073\003\019\007c\007]\007^\003\019\007b\003\025\007q\001I\007$\007v\002\246\007\161\002\169\007&\003\021\000\254\002\169\007V\003\021\000\254\002\247\007\182\007\183\007\187\007\245\007\249\003\127\b\004\b\b\b^\000\000\000\000\000\000\003\017\000\000\000\000\000\000\003\022\001?\003\028\000\000\000\000\001C\000\000\000\000\003\"\003\025\001\248\003\024\003\019\003\025\000\000\001?\000\000\000\000\001@\002\165\002\166\001\210\000\000\000\000\001,\002\169\000\000\003\021\000\254\001<\000\000\000\000\001@\000\000\002\246\003$\005\020\000\000\001,\001\209\001\210\003\022\000\000\003\028\002\247\003\022\000\000\003\028\003}\003\"\003\153\001\248\003\024\003\"\000\000\001\248\003\024\003\017\003\128\003\025\000\000\001\211\003\129\000\000\001\213\001\214\003\019\000\000\000\000\002\165\002\166\001\210\000\000\002\165\002\166\001\210\003$\000\000\000\000\002\169\003$\003\021\000\254\001C\002\246\000\000\000\000\000\000\002\246\000\000\000\000\003\022\000\000\003\028\002\247\000\000\000\000\001C\002\247\003\"\003\156\001\248\003\024\000\000\003\166\000\000\000\000\003\017\000\000\000\000\000\000\003\017\000\000\003\025\001I\000\000\001?\000\000\000\000\002\165\002\166\001\210\000\000\002\165\002\166\001\210\003$\003\019\005\022\000\000\000\000\000\000\000\000\001@\002\246\001<\002\134\000\000\002\246\001,\002\169\000\000\003\021\000\254\002\247\003\022\001\218\003\028\002\247\000\000\003\169\000\000\000\000\003\"\003\178\001\248\003\024\003\017\000\000\001\219\000\000\003\017\000\254\000\000\002\165\002\166\001\210\000\000\000\000\007s\000\000\000\000\002\147\000\000\003\025\000\254\000\000\003\019\000\000\002\246\003$\003\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\247\002\169\000\000\003\021\000\254\002\169\003\183\003\021\000\254\001C\003\130\000\000\000\000\003\017\000\000\000\000\000\000\003\022\000\000\003\028\000\000\000\000\001q\000\000\000\000\003\"\000\000\001\248\003\024\001<\000\000\003\149\000\000\001?\000\000\003\025\001\238\000\000\003\019\003\025\005$\000\000\003\019\000\000\001\247\000\000\001\248\001\217\001=\002\148\001@\002\169\003$\003\021\000\254\002\169\001,\003\021\000\254\002\165\002\166\001\210\000\000\000\000\000\000\000\000\000\000\003\022\000\000\003\028\000\000\003\022\000\000\003\028\002\246\003\"\000\000\001\248\003\024\003\"\000\000\001\248\003\024\003\019\002\247\003\025\000\000\000\000\000\000\003\025\003\186\000\000\000\000\000\000\000\000\000\000\002\169\003\017\003\021\000\254\000\000\000\000\003$\000\000\002P\000\000\003$\002\181\000\000\002\165\002\166\001\210\000\000\000\000\002h\001C\001?\003\022\002l\003\028\001,\003\022\000\000\003\028\002\246\003\"\000\000\001\248\003\024\003\"\003\025\001\248\003\024\001@\002\247\002P\000\000\000\000\004\231\001,\003\192\000\000\000\000\000\000\000\000\002h\005(\003\017\000\000\002l\000\000\001,\003$\002\165\002\166\001\210\003$\000\000\000\000\000\000\000\000\000\000\003\022\000\000\003\028\002m\000\000\003\019\002\246\000\000\003\"\000\000\001\248\003\024\000\000\000\000\000\000\000\000\002\247\002n\002\169\000\000\003\021\000\254\003\195\000\000\001\130\000\000\000\000\000\000\000\000\003\017\000\000\001<\000\000\000\000\002m\003$\001C\000\000\000\000\000\000\000\000\002\165\002\166\001\210\000\000\000\000\000\000\000\000\002n\000\000\001=\000\000\003\025\000\000\000\000\003\019\002\246\000\000\000\000\000\000\002\165\002\166\001\210\000\000\000\000\000\000\002\247\001I\002\169\000\000\003\021\000\254\003\221\000\000\000\000\002\246\000\000\000\000\000\000\003\017\001m\000\000\000\000\000\000\003\022\002\247\003\028\001<\001n\000\000\000\000\003\225\003\"\000\000\001\248\003\024\000\000\000\000\003\017\003\019\000\000\000\000\003\025\000\000\000\000\000\000\001=\000\000\000\000\000\000\002P\000\000\002\169\005N\003\021\000\254\000\000\000\000\001?\003$\002h\000\000\000\000\000\000\002l\000\000\001,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\022\001@\003\028\000\000\002\165\002\166\001\210\001,\003\"\000\000\001\248\003\024\003\025\000\000\000\000\003\019\000\000\000\000\000\000\002\246\000\000\001N\000\000\002\165\002\166\001\210\000\000\000\000\002\169\002\247\003\021\000\254\000\000\000\000\003\019\003$\000\000\002m\002\246\003\231\001?\000\000\003\017\000\000\003\022\000\000\003\028\002\169\002\247\003\021\000\254\002n\003\"\000\000\001\248\003\024\000\000\001@\003\236\000\000\001\127\003\017\003\025\001,\000\000\000\000\001C\001<\000\000\000\000\000\000\000\000\000\000\002\165\002\166\001\210\000\000\000\000\000\000\003$\000\000\003\025\000\000\000\000\000\000\000\000\001=\000\000\002\246\000\000\000\000\000\000\000\000\000\000\003\022\000\000\003\028\001I\002\247\000\000\002P\000\000\003\"\005]\001\248\003\024\000\000\000\000\003\238\000\000\002h\003\017\003\019\003\022\002l\003\028\001,\002\165\002\166\001\210\000\000\003\"\001C\001\248\003\024\002\169\000\000\003\021\000\254\003$\000\000\003\019\002\246\000\000\000\000\002\165\002\166\001\210\000\000\000\000\000\000\000\000\002\247\000\000\002\169\000\000\003\021\000\254\003$\000\000\002\246\000\000\003\242\001I\001?\003\017\000\000\000\000\000\000\003\025\002\247\002m\003\171\001\210\000\000\002\165\002\166\001\210\000\000\000\000\003\250\001@\000\000\003\017\000\000\002n\000\000\001,\003\025\000\000\002\246\003\019\000\000\000\000\003\188\001\227\000\000\001\213\001\214\000\000\002\247\003\022\000\000\003\234\002\169\000\000\003\021\000\254\000\000\003\"\004\000\001\248\003\024\003\017\000\000\000\000\000\000\000\000\000\000\000\000\003\022\000\000\003\234\000\000\000\000\000\000\000\000\000\000\003\"\000\000\001\248\003\024\000\000\000\000\000\000\003\019\003$\000\000\003\025\003\193\003\209\003\210\000\000\000\000\000\000\000\000\001C\000\000\002\169\000\000\003\021\000\254\000\000\003\019\000\000\003$\000\000\000\000\000\000\000\000\006N\000\000\000\000\000\000\000\000\000\000\002\169\001<\003\021\000\254\003\022\000\000\003\234\000\000\000\000\000\000\000\000\001I\003\"\001\236\001\248\003\024\003\025\003\019\000\000\000\000\001=\000\000\002\165\002\166\001\210\000\000\001\219\000\000\000\000\000\254\002\169\000\000\003\021\000\254\003\025\000\000\000\000\002\246\000\000\003$\002\165\002\166\001\210\000\000\000\000\000\000\000\000\002\247\003\022\000\000\003\234\000\000\000\000\000\000\000\000\002\246\003\"\004\006\001\248\003\024\003\017\003\213\0053\000\000\003\025\002\247\003\022\000\000\003\234\006P\000\000\004\r\000\000\000\000\003\"\000\000\001\248\003\024\003\017\000\000\000\000\000\000\000\000\003$\002\165\002\166\001\210\001\128\001?\000\000\000\000\000\000\001\238\000\000\001<\001\129\003\022\000\000\003\234\002\246\001\239\003$\001\248\001\217\003\"\006S\001\248\003\024\000\000\002\247\000\000\001,\001/\001=\000\000\004\018\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\019\003$\000\000\000\000\002\165\002\166\001\210\000\000\000\000\000\000\000\000\000\000\000\000\002\169\000\000\003\021\000\254\000\000\003\019\002\246\000\000\000\000\000\000\002\165\002\166\001\210\000\000\000\000\000\000\002\247\000\000\002\169\001N\003\021\000\254\004\023\000\000\000\000\002\246\000\000\006V\000\000\003\017\001\133\000\000\000\000\000\000\003\025\002\247\000\000\001<\001?\000\000\000\000\000\000\006\030\000\000\006[\004\030\006X\000\000\003\017\003\019\000\000\000\000\003\025\000\000\000\000\001@\001=\000\000\001I\000\000\000\000\001,\002\169\000\000\003\021\000\254\003\022\000\000\003\234\000\000\000\000\000\000\000\000\000\000\003\"\000\000\001\248\003\024\000\000\000\000\000\000\000\000\000\000\000\000\003\022\000\000\003\028\000\000\002\165\002\166\001\210\000\000\003\"\000\000\001\248\003\024\003\025\000\000\000\000\003\019\000\000\003$\000\000\002\246\000\000\000\000\000\000\002\165\002\166\001\210\000\000\000\000\002\169\002\247\003\021\000\254\000\000\000\000\003\019\003$\001C\000\000\002\246\004#\001?\000\000\003\017\000\000\003\022\000\000\003\028\002\169\002\247\003\021\000\254\000\000\003\"\000\000\001\248\003\024\000\000\001@\004(\000\000\000\000\003\017\003\025\001,\000\000\000\000\000\000\001I\000\000\000\000\000\000\001\139\000\000\002\165\002\166\001\210\000\000\000\000\001<\003$\000\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\003\022\000\000\003\028\001=\002\247\000\000\002P\000\000\003\"\005a\001\248\003\024\000\000\000\000\0047\000\000\002h\003\017\003\019\003\022\002l\003\234\001,\002\165\002\166\001\210\000\000\003\"\001C\001\248\003\024\002\169\000\000\003\021\000\254\003$\000\000\003\019\002\246\000\000\000\000\002\165\002\166\001\210\000\000\000\000\000\000\000\000\002\247\000\000\002\169\000\000\003\021\000\254\003$\000\000\002\246\000\000\004:\001I\000\000\003\017\000\000\000\000\000\000\003\025\002\247\002m\000\000\000\000\000\000\001?\004@\000\000\000\000\002P\000\000\000\000\005d\003\017\000\000\002n\000\000\000\000\003\025\002h\000\000\003\019\001@\002l\000\000\001,\000\000\000\000\001,\000\000\000\000\003\022\000\000\003\234\002\169\000\000\003\021\000\254\000\000\003\"\000\000\001\248\003\024\000\000\000\000\000\000\001\134\000\000\0014\000\000\003\022\000\000\003\234\001<\001\135\001<\001P\000\000\003\"\002P\001\248\003\024\005r\000\000\000\000\003\019\003$\000\000\003\025\002h\002m\000\000\001=\002l\001=\001,\000\000\000\000\002\169\000\000\003\021\000\254\000\000\003\019\002n\003$\005\002\001C\002\165\002\166\001\210\000\000\000\000\000\000\000\000\000\000\002\169\000\000\003\021\000\254\003\022\005\005\003\234\002\246\000\000\000\000\001\209\001\210\003\"\000\000\001\248\003\024\003\025\002\247\000\000\003}\000\000\000\000\001I\004B\002m\001N\000\000\001N\000\000\003\128\003\017\000\000\001\211\003\129\003\025\001\213\001\214\000\000\002n\003$\002\165\002\166\001\210\000\000\001?\000\000\001?\000\000\003\022\000\000\003\234\000\000\000\000\000\000\000\000\002\246\003\"\000\000\001\248\003\024\000\000\001@\000\000\001@\000\000\002\247\003\022\001,\003\028\001,\002P\004N\000\000\005\191\003\"\000\000\001\248\003\024\003\017\000\000\002h\000\000\000\000\003$\002l\000\000\001,\000\000\000\000\002\165\002\166\001\210\001\182\000\000\002\165\002\166\001\210\000\000\000\000\001<\003\019\003$\000\000\000\000\002\246\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\002\169\002\247\003\021\000\254\001\218\001=\002\247\004]\001W\000\000\000\000\000\000\004`\001C\003\017\001C\000\000\001\219\002m\003\017\000\254\000\000\002\165\002\166\001\210\000\000\000\000\002\165\002\166\001\210\000\000\000\000\002n\000\000\003\025\003\019\000\000\002\246\000\000\000\000\000\000\000\000\002\246\000\000\001I\000\000\001I\002\247\002\169\005\t\003\021\000\254\002\247\004n\000\000\000\000\000\000\003\130\004q\000\000\003\017\000\000\000\000\000\000\000\000\003\017\003\022\000\000\003\028\000\000\000\000\000\000\0014\001?\003\"\000\000\001\248\003\024\003\132\001<\001P\000\000\003\025\001\238\003\019\000\000\000\000\000\000\000\000\003\019\001@\001\247\000\000\001\248\001\217\000\000\001,\002\169\001=\003\021\000\254\003$\002\169\000\000\003\021\000\254\000\000\000\000\001\154\000\000\000\000\000\000\000\000\000\000\003\022\000\000\003\028\000\000\000\000\002\165\002\166\001\210\003\"\000\000\001\248\003\024\000\000\000\000\000\000\000\000\003\019\003\025\000\000\000\000\002\246\003\019\003\025\002\165\002\166\001\210\000\000\000\000\000\000\002\169\002\247\003\021\000\254\001N\002\169\003$\003\021\000\254\002\246\000\000\004{\001C\000\000\003\017\000\000\000\000\000\000\000\000\002\247\003\022\000\000\003\028\001?\000\000\003\022\000\000\003\028\003\"\004\153\001\248\003\024\003\017\003\"\003\025\001\248\003\024\000\000\000\000\003\025\001@\000\000\000\000\001I\000\000\000\000\001,\000\000\000\000\001\140\000\000\000\000\000\000\000\000\000\000\003$\001<\001\141\000\000\000\000\003$\000\000\000\000\000\000\000\000\000\000\003\022\000\000\003\028\000\000\000\000\003\022\000\000\003\028\003\"\001=\001\248\003\024\000\000\003\"\000\000\001\248\003\024\000\000\003\019\000\000\000\000\000\000\002\165\002\166\001\210\000\000\000\000\000\000\000\000\000\000\000\000\002\169\001W\003\021\000\254\003$\003\019\002\246\000\000\001C\003$\002\165\002\166\001\210\000\000\000\000\000\000\002\247\000\000\002\169\000\000\003\021\000\254\000\000\000\000\000\000\002\246\004\161\001N\000\000\003\017\000\000\000\000\000\000\000\000\003\025\002\247\000\000\000\000\001\188\001I\000\000\004\223\001\158\000\000\000\000\001<\001?\000\000\003\017\000\000\000\000\000\000\003\025\000\000\000\000\000\000\001\209\001\210\000\000\000\000\002\165\002\166\001\210\001@\001=\000\000\003\022\000\000\004~\001,\000\000\000\000\000\000\000\000\003\"\002\246\001\248\003\024\001\211\001\227\000\000\001\213\001\214\001\194\003\022\002\247\004\156\000\000\000\000\000\000\001<\004\236\003\"\000\000\001\248\003\024\000\000\000\000\003\017\003\019\000\000\003$\000\000\005W\000\000\000\000\000\000\000\000\000\000\001=\000\000\000\000\002\169\000\000\003\021\000\254\000\000\000\000\003\019\003$\002\165\002\166\001\210\000\000\001\228\000\000\001\229\002\197\001C\000\000\000\000\002\169\001?\003\021\000\254\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\247\003\025\000\000\000\000\001@\000\000\005-\000\000\000\000\000\000\001,\000\000\000\000\003\017\001I\000\000\000\000\000\000\001\236\000\000\003\025\000\000\000\000\003\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\219\001?\003\022\000\254\004\164\002\169\000\000\003\021\000\254\000\000\003\"\004e\001\248\003\024\000\000\000\000\000\000\000\000\001@\000\000\000\000\003\022\000\000\003\028\001,\000\000\002\165\002\166\001\210\003\"\000\000\001\248\003\024\000\000\000\000\000\000\000\000\003$\001C\003\025\000\000\002\246\000\000\000\000\000\000\000\000\000\000\002\165\002\166\001\210\000\000\002\247\003\019\000\000\000\000\000\000\003$\005\138\000\000\000\000\000\000\000\000\002\246\003n\003\017\002\169\001\238\003\021\000\254\001I\001<\003\022\002\247\003\028\001\239\000\000\001\248\001\217\006\198\003\"\000\000\001\248\003\024\001C\005\030\003\017\002\165\002\166\001\210\001=\000\000\001<\000\000\000\000\000\000\000\000\001\209\001\210\000\000\003\025\000\000\002\246\000\000\000\000\000\000\003}\003$\000\000\000\000\000\000\001=\002\247\000\000\000\000\001I\003\128\000\000\006\201\001\211\003\129\000\000\001\213\001\214\000\000\003\017\000\000\000\000\000\000\000\000\000\000\000\000\003\022\000\000\003\028\003\019\000\000\000\000\000\000\000\000\003\"\000\000\001\248\003\024\000\000\002\165\002\166\001\210\002\169\000\000\003\021\000\254\002P\000\000\000\000\005\203\003\019\000\000\001?\000\000\002\246\000\000\002h\000\000\000\000\000\000\002l\003$\001,\002\169\002\247\003\021\000\254\000\000\000\000\001@\006\216\000\000\000\000\001?\000\000\001,\003\025\003\017\000\000\000\000\000\000\000\000\000\000\000\000\002\165\002\166\001\210\000\000\000\000\003\019\001@\000\000\000\000\000\000\000\000\000\000\001,\003\025\001\218\002\246\000\000\000\000\002\169\000\000\003\021\000\254\000\000\002m\003\022\002\247\003\028\001\219\000\000\000\000\000\254\006\219\003\"\000\000\001\248\003\024\000\000\002n\003\017\002\165\002\166\001\210\000\000\000\000\000\000\003\022\000\000\003\028\000\000\000\000\001C\000\000\003\025\003\"\002\246\001\248\003\024\000\000\000\000\003$\002\165\002\166\001\210\003\019\002\247\000\000\000\000\003\130\000\000\000\000\006\232\001C\000\000\000\000\000\000\002\246\002\169\003\017\003\021\000\254\003$\001I\000\000\000\000\003\022\002\247\003\028\000\000\003\131\000\000\000\000\006\235\003\"\001\238\001\248\003\024\000\000\000\000\003\017\000\000\000\000\001\247\001I\001\248\001\217\000\000\000\000\0014\003\019\000\000\003\025\000\000\000\000\000\000\001<\001P\000\000\000\000\000\000\003$\000\000\002\169\006J\003\021\000\254\000\000\000\000\002P\000\000\001<\005\209\000\000\000\000\001=\000\000\000\000\000\000\002h\000\000\000\000\000\000\002l\003\022\001,\003\028\000\000\000\000\003\019\001=\000\000\003\"\000\000\001\248\003\024\000\000\003\025\000\000\000\000\000\000\000\000\002\169\000\000\003\021\000\254\000\000\002\165\002\166\001\210\003\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003$\000\000\000\000\002\246\002\169\001N\003\021\000\254\003\171\001\210\003\022\002m\003\028\002\247\000\000\000\000\000\000\003\025\003\"\007\000\001\248\003\024\000\000\000\000\001?\002n\003\017\002\165\002\166\001\210\003\188\001\227\000\000\001\213\001\214\000\000\000\000\000\000\003\025\001?\000\000\001@\002\246\000\000\000\000\003$\000\000\001,\000\000\003\022\000\000\003\028\002\247\000\000\000\000\000\000\001@\003\"\007\003\001\248\003\024\000\000\001,\000\000\000\000\003\017\000\000\000\000\000\000\000\000\003\022\000\000\003\028\000\000\000\000\003\193\003\209\003\210\003\"\000\000\001\248\003\024\000\000\000\000\003$\002\165\002\166\001\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\019\000\000\000\000\001W\002\246\000\000\000\000\000\000\000\000\003$\001C\000\000\000\000\002\169\002\247\003\021\000\254\000\000\000\000\001\236\007\007\000\000\006Q\000\000\000\000\001C\000\000\003\017\000\000\001<\000\000\000\000\001\219\000\000\000\000\000\254\003\171\001\210\000\000\003\019\000\000\001I\000\000\000\000\001\156\000\000\000\000\003\025\001=\000\000\002P\000\000\002\169\005\218\003\021\000\254\001I\000\000\003\188\001\227\002h\001\213\001\214\000\000\002l\000\000\001,\003\213\007\018\000\000\001\209\001\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\022\000\000\003\028\000\000\000\000\000\000\000\000\003\025\003\"\000\000\001\248\003\024\000\000\001\211\001\227\000\000\001\213\001\214\003\019\001\238\000\000\000\000\000\000\000\000\003\193\003\209\003\210\001\239\000\000\001\248\001\217\002\169\002m\003\021\000\254\003$\000\000\001?\007\155\003\022\000\000\003\028\000\000\000\000\000\000\000\000\002n\003\"\000\000\001\248\003\024\002\165\002\166\001\210\001@\000\000\000\000\000\000\000\000\001\228\001,\001\229\002\197\000\000\001\236\003\025\002\246\000\000\000\000\000\000\000\000\002\165\002\166\001\210\003$\000\000\002\247\001\219\000\000\000\000\000\254\000\000\b\021\000\000\000\000\000\000\002\246\000\000\000\000\003\017\000\000\000\000\000\000\000\000\000\000\000\000\002\247\003\022\001\236\003\028\000\000\000\000\b\023\000\000\000\000\003\"\000\000\001\248\003\024\003\017\000\000\001\219\003\213\0074\000\254\000\000\000\000\000\000\007\198\001C\000\000\000\000\004e\000\000\000\000\001<\000\000\000\000\000\000\000\000\000\000\000\000\003$\002\165\002\166\001\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\238\001=\000\000\000\000\000\000\002\246\000\000\001I\001\239\000\000\001\248\001\217\002\165\002\166\001\210\002\247\003\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\246\003\017\002\169\000\000\003\021\000\254\000\000\001\238\000\000\003\019\002\247\000\000\001\209\001\210\000\000\001\239\002P\001\248\001\217\006u\000\000\000\000\002\169\003\017\003\021\000\254\002h\000\000\000\000\000\000\002l\000\000\001,\000\000\001\211\001\227\003\025\001\213\001\214\000\000\000\000\000\000\001?\007d\002)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\025\000\000\br\001@\000\000\bs\000\000\000\000\000\000\001,\007g\000\000\003\022\000\000\003\028\003\019\000\000\000\000\000\000\007h\003\"\002m\001\248\003\024\001\228\000\000\001\229\002\025\002\169\000\000\003\021\000\254\003\022\000\000\003\028\002n\000\000\003\019\000\000\000\000\003\"\000\000\001\248\003\024\000\000\000\000\000\000\003$\000\000\000\000\002\169\007i\003\021\000\254\000\000\000\000\000\000\000\000\000\000\000\000\001\209\001\210\003\025\001\236\000\000\001\209\001\210\003$\001C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\219\000\000\000\000\000\254\000\000\000\000\001\211\001\227\003\025\001\213\001\214\001\211\001\227\007j\001\213\001\214\002%\000\000\003\022\000\000\005X\002\022\000\000\001I\000\000\000\000\003\"\007k\001\248\003\024\000\000\000\000\000\000\000\000\000\000\000\000\0014\000\000\0014\001\144\003\022\001\144\005=\001<\001P\001<\001P\000\000\003\"\bt\001\248\003\024\001\228\003$\001\229\002\025\000\000\001\228\000\000\001\229\002\025\001\145\001=\001\145\001=\000\000\001\238\000\000\007m\001\169\000\000\001\167\000\000\000\000\001\239\003$\001\248\001\217\000\000\000\000\000\000\007n\000\000\000\000\007p\000\000\000\000\007u\000\000\000\000\000\000\001\236\000\000\007\221\000\000\000\000\001\236\007w\0014\000\000\001<\001\144\000\000\000\000\001\219\001<\001P\000\254\000\000\001\219\000\000\001N\000\254\001N\000\000\000\000\007x\000\000\000\000\001=\000\000\000\000\000\000\001\145\001=\000\000\000\000\000\000\000\000\000\000\001?\001\146\001?\001\150\000\000\001\150\000\000\000\000\0014\000\000\000\000\001\144\000\000\000\000\000\000\001<\001P\001@\000\000\001@\000\000\000\000\000\000\001,\000\000\001,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\145\001=\000\000\000\000\000\000\001\209\001\210\001\238\001\165\000\000\001N\000\000\001\238\000\000\000\000\001\239\000\000\001\248\001\217\007\232\001\239\000\000\001\248\001\217\001?\000\000\001<\001\211\001\227\001?\001\213\001\214\001\150\002\165\002\166\001\210\000\000\002\027\000\000\001\209\001\210\001@\001W\000\000\001W\001=\001@\001,\002\246\001C\001N\001C\001,\001\160\000\000\001\160\000\000\000\000\002\247\000\000\000\000\001\211\001\227\000\000\001\213\001\214\000\000\000\000\000\000\001?\000\000\003\017\001\150\001\228\000\000\001\229\002\025\000\000\000\000\000\000\001I\000\000\001I\001Z\000\000\001Z\001@\000\000\000\000\000\000\000\000\000\000\001,\000\000\000\000\000\000\001\209\001\210\000\000\000\000\000\000\001\209\001\210\000\000\001W\000\000\001C\001\228\000\000\001\229\002\197\001C\001\236\001?\000\000\001\160\000\000\000\000\001\211\001\227\000\000\001\213\001\214\001\211\001\227\001\219\001\213\001\214\000\254\000\000\001@\000\000\000\000\000\000\000\000\000\000\001,\001I\000\000\000\000\000\000\003\019\001I\000\000\001W\001Z\001\236\000\000\002\165\002\166\001\210\001C\000\000\000\000\002\169\001\160\003\021\000\254\000\000\001\219\000\000\000\000\000\254\002\246\001\228\000\000\001\229\002\206\000\000\001\228\004a\001\229\002\206\002\247\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\000\000\000\001Z\003\017\000\000\003\025\001\209\001\210\001\238\000\000\000\000\000\000\001C\000\000\000\000\000\000\001\239\000\000\001\248\001\217\001\236\000\000\000\000\000\000\000\000\001\236\000\000\000\000\001\211\001\227\000\000\001\213\001\214\001\219\000\000\000\000\000\254\003\022\001\219\004\197\000\000\000\254\001\238\001I\000\000\003\"\000\000\001\248\003\024\000\000\001\239\000\000\001\248\001\217\000\000\000\000\002\165\002\166\001\210\000\000\002\165\002\166\001\210\000\000\000\000\002\215\000\000\000\000\000\000\000\000\002\212\002\246\003$\003\019\001\228\002\246\001\229\003\143\000\000\000\000\000\000\002\247\000\000\000\000\000\000\002\247\002\169\000\000\003\021\000\254\000\000\000\000\000\000\000\000\003\017\000\000\000\000\000\000\003\017\001\238\000\000\000\000\000\000\000o\001\238\000\000\000\000\001\239\000\000\001\248\001\217\000\000\001\239\001\236\001\248\001\217\000\000\002\165\002\166\001\210\003\025\000\000\000\000\000\000\000\000\000\000\001\219\000\000\000\000\000\254\000\000\000\000\002\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\247\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\022\000\000\0043\003\017\000\000\000\000\000\000\000\000\003\"\000\000\001\248\003\024\003\019\000\000\000\000\000\000\003\019\000\000\000\000\002\165\002\166\001\210\000\000\000\000\000\000\002\169\000\000\003\021\000\254\002\169\000\000\003\021\000\254\000\000\002\246\003$\000\000\000\000\000\000\000\000\001\238\000\000\000\000\000\000\002\247\002\165\002\166\001\210\001\239\000\000\001\248\001\217\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\025\002\246\000\000\000\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\002\247\000\000\000\000\003\019\000\000\002\165\002\166\001\210\000\000\000\000\000\000\000\000\000\000\003\017\000\000\000\000\002\169\000\000\003\021\000\254\002\246\003\022\000\000\003\219\000\000\003\022\000\000\003\030\000\000\003\"\002\247\001\248\003\024\003\"\000\000\001\248\003\024\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\000\000\000\000\000\000\000\000\000\000\003\025\000\000\000\000\002\165\002\166\001\210\003$\003\019\000\000\000\000\003$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\246\000\000\002\169\000\000\003\021\000\254\000\000\000\000\000\000\000\000\002\247\000\000\000\000\000\000\003\022\003\019\003 \000\000\000\000\000\000\000\000\000\000\003\"\003\017\001\248\003\024\000\000\000\000\002\169\000\000\003\021\000\254\000\000\000\000\000\000\000\000\003\025\000\000\000\000\002\165\002\166\001\210\000\000\000\000\000\000\003\019\000\000\000\000\000\000\003$\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\002\169\000\000\003\021\000\254\003\025\000\000\002\247\000\000\000\000\000\000\003\022\000\000\003%\000\000\000\000\000\000\000\000\000\000\003\"\003\017\001\248\003\024\000\000\000\000\000\000\000\000\000\000\002\165\002\166\001\210\000\000\000\000\000\000\000\000\003\025\003\019\003\022\000\000\003,\002\165\002\166\001\210\002\246\000\000\003\"\003$\001\248\003\024\002\169\000\000\003\021\000\254\002\247\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\167\003\017\003\022\000\000\003.\000\000\000\000\003$\000\000\000\000\003\"\000\000\001\248\003\024\000\000\000\000\000\000\000\000\003\025\002\165\002\166\001\210\000\000\000\000\000\000\003\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\003$\002\169\000\000\003\021\000\254\000\000\000\000\002\247\000\000\000\000\000\000\000\000\000\000\003\022\000\000\0030\000\000\000\000\000\000\000\000\003\017\003\"\000\000\001\248\003\024\000\000\002\165\002\166\001\210\000\000\002\165\002\166\001\210\000\000\003\019\003\025\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\002\246\002\168\002\169\003$\003\021\000\254\002\247\000\000\000\000\000\000\002\247\000\000\000\000\000\000\002\169\000\000\003\021\000\254\000\000\003\017\000\000\000\000\003\022\003\017\0032\000\000\000\000\000\000\000\000\000\000\003\"\000\000\001\248\003\024\000\000\000\000\003\025\002\165\002\166\001\210\000\000\000\000\000\000\000\000\000\000\003\019\000\000\000\000\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\000\000\003$\002\169\000\000\003\021\000\254\002\247\000\000\000\000\000\000\000\000\000\000\003\022\000\000\0034\000\000\000\000\000\000\000\000\003\017\003\"\000\000\001\248\003\024\003\022\000\000\000\000\000\000\000\000\002\165\002\166\001\210\003\023\003\019\001\248\003\024\003\025\003\019\000\000\001\209\001\210\000\000\000\000\000\000\002\246\000\000\002\169\003$\003\021\000\254\002\169\000\000\003\021\000\254\002\247\000\000\000\000\000\000\000\000\000\000\000\000\001\211\001\227\000\000\001\213\001\214\000\000\003\017\003\022\000\000\0036\000\000\000\000\002\165\002\166\001\210\003\"\000\000\001\248\003\024\003\025\000\000\000\000\000\000\003\025\000\000\000\000\000\000\002\246\003\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\247\000\000\000\000\000\000\002\169\003$\003\021\000\254\000\000\001\228\000\000\001\229\002\206\003\017\003\022\000\000\0038\000\000\003\022\000\000\003:\000\000\003\"\000\000\001\248\003\024\003\"\000\000\001\248\003\024\000\000\002\165\002\166\001\210\000\000\002\165\002\166\001\210\003\025\003\019\000\000\000\000\000\000\000\000\000\000\000\000\002\246\000\000\001\236\003$\002\246\000\000\002\169\003$\003\021\000\254\002\247\000\000\000\000\000\000\002\247\001\219\000\000\000\000\000\254\000\000\000\000\000\000\000\000\003\017\003\022\000\000\003<\003\017\000\000\000\000\000\000\000\000\003\"\000\000\001\248\003\024\000\000\003\019\000\000\000\000\003\025\002\165\002\166\001\210\000\000\000\000\000\000\003\141\000\000\000\000\002\169\000\000\003\021\000\254\000\000\000\000\002\246\000\000\000\000\003$\000\000\000\000\000\000\000\000\000\000\000\000\002\247\000\000\000\000\000\000\000\000\000\000\003\022\000\000\003>\000\000\000\000\000\000\000\000\003\017\003\"\001\238\001\248\003\024\003\025\000\000\000\000\000\000\000\000\001\239\000\000\001\248\001\217\003\019\000\000\000\000\000\000\003\019\000\000\000\000\002\165\002\166\001\210\000\000\000\000\000\000\002\169\003$\003\021\000\254\002\169\000\000\003\021\000\254\000\000\002\246\003\022\000\000\003@\000\000\000\000\002\165\002\166\001\210\003\"\002\247\001\248\003\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\246\000\000\003\017\000\000\003\025\002\165\002\166\001\210\003\025\000\000\002\247\000\000\000\000\003\019\000\000\003$\000\000\000\000\000\000\000\000\002\246\000\000\000\000\003\017\000\000\000\000\002\169\000\000\003\021\000\254\002\247\000\000\001\209\001\210\000\000\000\000\003\022\000\000\003B\000\000\003\022\000\000\003D\003\017\003\"\000\000\001\248\003\024\003\"\000\000\001\248\003\024\000\000\000\000\001\211\001\212\000\000\001\213\001\214\000\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003$\003\019\000\000\000\000\003$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\169\000\000\003\021\000\254\000\000\000\000\000\000\003\022\003\019\003F\000\000\002\165\002\166\001\210\000\000\003\"\000\000\001\248\003\024\000\000\000\000\002\169\000\000\003\021\000\254\000\000\002\246\000\000\003\019\000\000\000\000\002\165\002\166\001\210\003\025\000\000\002\247\000\000\000\000\000\000\000\000\002\169\003$\003\021\000\254\000\000\002\246\000\000\000\000\003\017\000\000\000\000\000\000\000\000\001\218\003\025\002\247\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\022\001\219\003H\003\017\000\254\000\000\000\000\000\000\003\"\003\025\001\248\003\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\022\000\000\003J\000\000\002\165\002\166\001\210\000\000\003\"\000\000\001\248\003\024\000\000\000\000\003$\000\000\000\000\000\000\000\000\002\246\003\022\000\000\003L\000\000\000\000\000\000\000\000\000\000\003\"\002\247\001\248\003\024\003\019\000\000\000\000\003$\000\000\001\209\001\210\000\000\000\000\000\000\003\017\000\000\000\000\002\169\001\238\003\021\000\254\001\209\001\210\000\000\003\019\000\000\001\247\003$\001\248\001\217\003\154\001\211\001\227\000\000\001\213\001\214\000\000\002\169\000\000\003\021\000\254\001\209\001\210\001\211\003\129\000\000\001\213\001\214\000\000\000\000\003}\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\000\000\000\001\211\003\129\000\000\001\213\001\214\000\000\000\000\000\000\003\025\000\000\000\000\000\000\000\000\000\000\001\228\000\000\001\229\003t\000\000\000\000\003\022\003\019\003N\000\000\000\000\000\000\000\000\000\000\003\"\000\000\001\248\003\024\000\000\000\000\002\169\000\000\003\021\000\254\001\209\001\210\003\022\000\000\003P\000o\000\000\000\000\000\000\003\154\003\"\000\000\001\248\003\024\000\000\001\236\000\000\003$\000\000\002\165\002\166\001\210\001\211\003\129\000\000\001\213\001\214\001\218\001\219\000\000\003\025\000\254\000\000\000\000\002\246\000\000\000\000\003$\000\000\000\000\001\219\000\000\000\000\000\254\002\247\000\000\000\000\001\218\000\000\000\000\000\000\000\000\003\157\003\158\000\000\000\000\000\000\003\017\000\000\000\000\001\219\000\000\003\022\000\254\003R\000\000\000\000\000\000\000\000\000\000\003\"\000\000\001\248\003\024\000\000\000\000\000\000\000\000\000\000\000\000\003\159\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\238\000\000\000\000\003$\000\000\000\000\003\130\000\000\001\239\000\000\001\248\001\217\001\238\001\218\000\000\000\000\002\165\002\166\001\210\000\000\001\247\000\000\001\248\001\217\000\000\000\000\001\219\003\136\000\000\000\254\000\000\002\246\001\238\003\019\000\000\002\165\002\166\001\210\003\157\003\160\001\247\002\247\001\248\001\217\000\000\000\000\002\169\000\000\003\021\000\254\002\246\000\000\000\000\000\000\003\017\000\000\000\000\002\165\002\166\001\210\002\247\002\165\002\166\001\210\000\000\000\000\003\159\000\000\000\000\000\000\000\000\000\000\002\246\003\017\000\000\000\000\002\246\000\000\000\000\000\000\003\025\000\000\002\247\000\000\000\000\000\000\002\247\000\000\000\000\000\000\000\000\000\000\001\238\000\000\000\000\003\017\000\000\000\000\000\000\003\017\001\247\000\000\001\248\001\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\022\000\000\003\254\000\000\000\000\000\000\000\000\000\000\003\"\000\000\001\248\003\024\003\019\001\183\000\000\000\000\000\000\000\000\000\000\000\000\001<\001\184\000\000\000\000\000\000\002\169\000\000\003\021\000\254\000\000\000\000\003\019\000\000\000\000\000\000\003$\000\000\000\000\000\000\001=\000\000\000\000\000\000\000\000\002\169\000\000\003\021\000\254\000\000\002\165\002\166\001\210\000\000\003\019\000\000\000\000\000\000\003\019\000\000\003\025\000\000\000\000\000\000\000\000\002\246\000\000\002\169\000\000\003\021\000\254\002\169\000\000\003\021\000\254\002\247\000\000\000\000\000\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\017\001N\000\000\000\000\003\022\000\000\004\004\000\000\000\000\000\000\000\000\000\000\003\"\003\025\001\248\003\024\000\000\003\025\000\000\000\000\001?\000\000\000\000\003\022\000\000\004\n\000\000\000\000\000\000\000\000\000\000\003\"\000\000\001\248\003\024\000\000\000\000\001@\000\000\003$\002\165\002\166\001\210\001,\000\000\003\022\000\000\004\016\000\000\003\022\000\000\004\021\000\000\003\"\000\000\001\248\003\024\003\"\003$\001\248\003\024\000\000\002\165\002\166\001\210\002\241\002\165\002\166\001\210\000\000\003\019\000\000\001\209\001\210\000\000\000\000\000\000\002\246\000\000\000\000\003$\002\246\000\000\002\169\003$\003\021\000\254\002\247\002\165\002\166\001\210\002\247\000\000\000\000\001\211\001\227\000\000\001\213\001\214\000\000\003\017\000\000\001C\002\246\003\017\000\000\000\000\002\165\002\166\001\210\000\000\000\000\000\000\002\247\000\000\000\000\000\000\003\025\000\000\000\000\000\000\000\000\002\246\000\000\000\000\000\000\003\017\000\000\000\000\000\000\000\000\000\000\002\247\001I\000\000\000\000\000\000\000\000\000\000\0014\001\228\000\000\001\229\002\197\000\000\003\017\001<\001P\002\168\003\022\000\000\004\026\000\000\000\000\000\000\000\000\000\000\003\"\000\000\001\248\003\024\002\169\000\000\003\021\000\254\001=\002\165\002\166\001\210\000\000\003\019\000\000\000\000\000\000\003\019\000\000\000\000\000\000\000\000\001\236\000\000\002\246\000\000\002\169\003$\003\021\000\254\002\169\000\000\003\021\000\254\002\247\001\219\000\000\000\000\000\254\003\019\000\000\000\000\000\000\000\000\000\000\000\000\004d\003\017\000\000\000\000\000\000\000\000\002\169\000\000\003\021\000\254\000\000\001N\003\019\000\000\003\025\000\000\000\000\000\000\003\025\000\000\000\000\000\000\000\000\000\000\003\022\002\169\000\000\003\021\000\254\000\000\001?\000\000\003\023\000\000\001\248\003\024\000\000\000\000\000\000\000\000\003\025\000\000\000\000\000\000\000\000\000\000\003\022\001@\004!\000\000\003\022\000\000\004&\001,\003\"\001\238\001\248\003\024\003\"\003\025\001\248\003\024\000\000\001\239\000\000\001\248\001\217\000\000\000\000\000\000\000\000\003\019\003\022\000\000\004+\002\165\002\166\001\210\000\000\000\000\003\"\003$\001\248\003\024\002\169\003$\003\021\000\254\000\000\000\000\002\246\003\022\000\000\004.\000\000\000\000\000\000\002,\001\210\003\"\002\247\001\248\003\024\000\000\000\000\001W\000\000\003$\000\000\000\000\000\000\000\000\001C\003\017\000\000\001\209\001\210\000\000\003\025\001\211\002\186\000\000\001\213\001\214\003\167\000\000\003$\000\000\000\000\002\165\002\166\001\210\000\000\000\000\002\165\002\166\001\210\001\211\003\129\000\000\001\213\001\214\000\000\001I\002\246\000\000\002Y\000\000\000\000\002\246\003\022\000\000\004h\000\000\002\247\002\165\002\166\001\210\003\"\002\247\001\248\003\024\000\000\000\000\004l\003\209\003\210\003\017\000\000\000\000\002\246\000\000\003\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\247\000\000\000\000\003\019\000\000\003$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\000\000\002\169\000\000\003\021\000\254\000\000\000\000\0014\000\000\001\236\001\161\000\000\000\000\000\000\001<\001P\000\000\000\000\000\000\000\000\000\000\000\000\001\219\000\000\000\000\000\254\000\000\001\218\000\000\000\000\000\000\000\000\001\163\001=\000\000\003\025\000\000\000\000\000\000\006\023\001\219\000\000\003\019\000\254\000\000\000\000\000\000\003\019\000\000\000\000\000\000\000\000\003\170\004s\000\000\002\169\000\000\003\021\000\254\000\000\002\169\000\000\003\021\000\254\000\000\000\000\000\000\003\022\003\019\004j\002\165\002\166\001\210\000\000\000\000\003\"\000\000\001\248\003\024\000\000\003\159\002\169\001N\003\021\000\254\002\246\000\000\000\000\001\238\003\025\000\000\000\000\000\000\000\000\003\025\002\247\001\239\000\000\001\248\001\217\000\000\001?\003$\000\000\001\150\000\000\001\238\000\000\003\017\000\000\000\000\000\000\000\000\000\000\001\247\003\025\001\248\001\217\001@\000\000\000\000\003\022\000\000\004\128\001,\000\000\003\022\000\000\004\136\003\"\000\000\001\248\003\024\000\000\003\"\006g\001\248\003\024\000\000\002\165\002\166\001\210\000\000\000\000\000\000\000\000\000\000\003\022\000\000\004\139\000\000\000\000\000\000\000\000\002\246\003\"\003$\001\248\003\024\000\000\000\000\003$\000\000\000\000\002\247\006h\b\029\006i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W\003\017\003\019\000\000\000\000\000\000\003$\001C\000\000\000\000\000\000\006M\000\000\000\000\000\000\002\169\000\000\003\021\000\254\000\000\000\000\000\000\000\000\006j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\001\210\000\000\000\000\0014\001I\000\000\001\161\001Z\000\000\000\000\001<\001P\000\000\000\000\000\000\003\025\000\000\000\000\000\000\000\000\000\000\001\211\001\227\000\000\001\213\001\214\006k\000\000\001\163\001=\006g\000\000\000\000\000\000\000\000\000\000\000\000\003\019\000\000\000\000\006l\006m\000\000\006n\000\000\000\000\000\000\003\022\000\000\004\141\002\169\000\000\003\021\000\254\000\000\003\"\000\000\001\248\003\024\000\000\006h\b\011\006i\000\000\001\209\001\210\000\000\001\228\006\178\001\229\bS\000\000\bU\000\000\000\000\000\000\000\000\000\000\001N\000\000\000\000\000\000\003$\000\000\003\025\000\000\001\211\001\227\000\000\001\213\001\214\000\000\000\000\000\000\006j\006p\b\031\001?\006r\000\000\001\150\006w\006\131\000\000\000\000\000\000\001\236\000\000\000\000\000\000\000\000\006\174\000\000\000\000\001@\000\000\003\022\000\000\004\143\001\219\001,\000\000\000\254\000\000\003\"\000\000\001\248\003\024\000\000\000\000\006\175\006k\001\228\000\000\001\229\007\143\0014\000\000\000\000\001\144\000\000\000\000\000\000\001<\001P\006l\006m\000\000\006n\000\000\000\000\003$\000\000\000\000\000\000\001\209\001\210\000\000\000\000\000\000\000\000\001\149\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\236\001W\006\178\000\000\000\000\000\000\001\211\001\227\001C\001\213\001\214\000\000\001\160\001\219\001\238\000\000\000\254\000\000\000\000\000\000\000\000\000\000\001\239\000\000\001\248\001\217\000\000\000\000\000\000\006p\000\000\000\000\006r\000\000\000\000\006w\006\131\000\000\000\000\001I\001N\000\000\001Z\001\209\001\210\006\174\000\000\000\000\001\209\001\210\000\000\000\000\001\228\000\000\001\229\002\029\000\000\000\000\000\000\001?\000\000\000\000\001\150\000\000\006\175\001\211\001\227\000\000\001\213\001\214\001\211\001\227\000\000\001\213\001\214\000\000\001@\000\000\000\000\001\238\000\000\000\000\001,\001\209\001\210\000\000\000\000\001\239\000\000\001\248\001\217\001\236\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\219\001\211\001\227\000\254\001\213\001\214\000\000\001\228\000\000\001\229\002\017\000\000\001\228\000\000\001\229\002\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0014\000\000\000\000\000\000\001W\000\000\000\000\001<\001P\001\209\001\210\001C\000\000\000\000\000\000\001\160\000\000\000\000\000\000\000\000\001\236\001\228\000\000\001\229\001\231\001\236\001=\000\000\000\000\000\000\000\000\001\211\001\227\001\219\001\213\001\214\000\254\000\000\001\219\000\000\001\238\000\254\001I\000\000\000\000\001Z\000\000\000\000\001\239\000\000\001\248\001\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\236\000\000\000\000\001\209\001\210\000\000\000\000\000\000\000\000\000\000\001\209\001\210\000\000\001\219\000\000\001N\000\254\001\228\000\000\001\229\001\234\000\000\000\000\000\000\000\000\001\211\001\227\000\000\001\213\001\214\000\000\000\000\001\211\001\227\001?\001\213\001\214\001\209\001\210\001\238\000\000\000\000\000\000\000\000\001\238\000\000\000\000\001\239\000\000\001\248\001\217\001@\001\239\000\000\001\248\001\217\001\236\001,\000\000\001\211\001\227\000\000\001\213\001\214\000\000\000\000\000\000\000\000\000\000\001\219\000\000\001\228\000\254\001\229\001\237\000\000\000\000\000\000\001\228\001\238\001\229\002\r\000\000\000\000\000\000\000\000\000\000\001\239\000\000\001\248\001\217\000\000\000\000\000\000\000\000\000\000\001\209\001\210\000\000\000\000\000\000\000\000\001\209\001\210\000\000\001\228\000\000\001\229\002\001\001W\001\236\000\000\000\000\000\000\000\000\000\000\001C\001\236\001\211\001\227\001\197\001\213\001\214\001\219\001\211\001\227\000\254\001\213\001\214\000\000\001\219\000\000\000\000\000\254\000\000\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\239\001\236\001\248\001\217\001I\000\000\000\000\001Z\000\000\001\209\001\210\000\000\000\000\000\000\001\219\001\209\001\210\000\254\003\184\000\000\000\000\001\228\000\000\001\229\002\t\000\000\000\000\001\228\003\187\001\229\002\236\001\211\003\129\000\000\001\213\001\214\000\000\001\211\001\227\000\000\001\213\001\214\000\000\000\000\000\000\000\000\001\238\000\000\000\000\000\000\000\000\000\000\000\000\001\238\001\239\000\000\001\248\001\217\000\000\000\000\001\236\001\239\000\000\001\248\001\217\000\000\001\236\000\000\000\000\000\000\000\000\000\000\000\000\001\219\000\000\000\000\000\254\000\000\000\000\001\219\001\238\000\000\000\254\001\228\000\000\001\229\003f\000\000\001\239\000\000\001\248\001\217\000\000\000\000\000\000\001\209\001\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\218\001\211\001\227\000\000\001\213\001\214\001\236\000\000\000\000\000\000\000\000\000\000\000\000\001\219\000\000\000\000\000\254\000\000\000\000\001\219\000\000\000\000\000\254\001\238\000\000\000\000\000\000\000\000\000\000\001\238\000\000\001\239\000\000\001\248\001\217\001\209\001\210\001\239\000\000\001\248\001\217\001\209\001\210\000\000\000\000\000\000\000\000\001\228\000\000\001\229\003\198\000\000\000\000\003\130\000\000\000\000\000\000\001\211\001\227\000\000\001\213\001\214\000\000\001\211\001\227\000\000\001\213\001\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\001\210\000\000\000\000\001\238\000\000\000\000\000\000\000\000\000\000\001\238\001\236\001\247\000\000\001\248\001\217\000\000\000\000\001\239\000\000\001\248\001\217\001\211\001\227\001\219\001\213\001\214\000\254\001\228\000\000\001\229\003\201\000\000\000\000\001\228\000\000\001\229\003\204\001\209\001\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\211\001\227\000\000\001\213\001\214\000\000\000\000\001\236\001\228\000\000\001\229\003\212\000\000\001\236\000\000\000\000\000\000\000\000\000\000\000\000\001\219\000\000\000\000\000\254\000\000\000\000\001\219\000\000\000\000\000\254\001\238\000\000\000\000\000\000\000\000\000\000\001\209\001\210\001\239\000\000\001\248\001\217\001\209\001\210\0014\000\000\001\228\001\236\001\229\004\137\000\000\001<\001P\000\000\000\000\000\000\000\000\000\000\001\211\001\227\001\219\001\213\001\214\000\254\001\211\001\227\000\000\001\213\001\214\000\000\001=\000\000\001Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\192\0014\000\000\001\236\001\238\000\000\000\000\000\000\001<\001P\001\238\000\000\001\239\000\000\001\248\001\217\001\219\000\000\001\239\000\254\001\248\001\217\001\228\000\000\001\229\004\134\000\000\001=\001\228\001Q\001\229\005\136\000\000\000\000\000\000\000\000\000\000\001N\000\000\007\226\000\000\000\000\000\000\000\000\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\239\000\000\001\248\001\217\001o\000\000\000\000\000\000\000\000\001\236\000\000\000\000\000\000\000\000\000\000\001\236\000\000\000\000\000\000\000\000\000\000\001@\001\219\000\000\001N\000\254\000\000\001,\001\219\000\000\001\238\000\254\000\000\000\000\000\000\000\000\000\000\0014\001\239\000\000\001\248\001\217\000\000\001o\001<\001P\0014\000\000\000\000\000\000\000\000\000\000\000\000\001<\001P\000\000\000\000\000\000\000\000\000\000\001@\000\000\000\000\001=\000\000\001Q\001,\000\000\000\000\000\000\000\000\000\000\001=\000\000\001Q\007\215\000\000\000\000\000\000\001W\000\000\000\000\000\000\000\000\001\176\0014\001C\000\000\001\238\000\000\001s\000\000\001<\001P\001\238\000\000\001\239\000\000\001\248\001\217\000\000\000\000\001\239\000\000\001\248\001\217\000\000\0014\000\000\000\000\000\000\001=\001N\001Q\001<\001P\000\000\001I\001W\000\000\001Z\001N\000\000\001^\000\000\001C\000\000\000\000\000\000\001s\000\000\001o\000\000\001=\000\000\001Q\000\000\000\000\000\000\000\000\001o\000\000\000\000\001\209\001\210\001y\000\000\000\000\001@\000\000\001\209\001\210\000\000\000\000\001,\000\000\001I\001@\000\000\001Z\001N\000\000\005<\001,\000\000\001\211\003\129\000\000\001\213\001\214\000\000\000\000\001\211\003\129\000\000\001\213\001\214\000\000\000\000\001o\000\000\000\000\001N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001@\000\000\000\000\000\000\000\000\001o\001,\000\000\000\000\000\000\001W\000\000\001\209\001\210\000\000\000\000\000\000\001C\000\000\001W\000\000\001s\001@\000\000\000\000\000\000\001C\000\000\001,\000\000\001s\000\000\000\000\000\000\001\211\003\129\000\000\001\213\001\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\000\000\000\001Z\000\000\000\000\001\218\000\000\000\000\001I\001W\000\000\001Z\001\218\000\000\001\209\001\210\001C\000\000\001\219\000\000\001s\000\254\000\000\000\000\000\000\001\219\000\000\000\000\000\254\000\000\000\000\001W\000\000\000\000\000\000\000\000\001\211\003\129\001C\001\213\001\214\000\000\001s\000\000\000\000\000\000\000\000\001I\000\000\000\000\001Z\000\000\000\000\000\000\000\000\001\209\001\210\000\000\003\130\000\000\000\000\000\000\000\000\000\000\000\000\004O\000\000\000\000\000\000\001I\001\218\000\000\001Z\000\000\000\000\000\000\000\000\001\211\003\129\000\000\001\213\001\214\000\000\001\219\001\238\004U\000\254\000\000\000\000\000\000\000\000\001\238\001\247\000\000\001\248\001\217\000\000\000\000\000\000\001\247\000\000\001\248\001\217\000\000\000\000\001\209\001\210\000\000\000\000\000\000\001\209\001\210\0014\000\000\000\000\000\000\000\000\000\000\000\000\001<\001P\001\218\000\000\004O\000\000\000\000\000\000\001\211\003\129\000\000\001\213\001\214\001\211\003\129\001\219\001\213\001\214\000\254\001=\006g\000\000\000\000\000\000\004Q\000\000\000\000\000\000\000\000\000\000\001\238\005\148\000\000\000\000\000\000\000\000\000\000\000\000\001\247\000\000\001\248\001\217\000\000\001\218\000\000\000\000\000\000\005\151\000\000\000\000\006h\000\000\006i\000\000\000\000\004O\001\219\000\000\000\000\000\254\000\000\000\000\000\000\000\000\0014\000\000\000\000\000\000\001N\000\000\000\000\001<\001P\000\000\000\000\004P\000\000\000\000\000\000\000\000\000\000\001\238\000\000\006g\006j\000\000\000\000\001?\000\000\001\247\001=\001\248\001\217\001\218\000\000\000\000\004O\000\000\001\218\002\165\002\166\001\210\005\148\000\000\001@\000\000\001\219\000\000\000\000\000\254\001,\001\219\000\000\006h\000\254\006i\004T\000\000\006\012\000\000\000\000\006k\001\238\000\000\002\243\000\000\000\000\001\209\001\210\000\000\001\247\000\000\001\248\001\217\000\000\006l\006m\000\000\006n\001N\000\000\000\000\000\000\000\000\000\000\000\000\004O\006j\000\000\001\211\003\129\004O\001\213\001\214\000\000\000\000\000\000\000\000\001?\000\000\000\000\000\000\001W\006\176\000\000\000\000\004X\000\000\000\000\001C\000\000\004Z\001\238\005\157\000\000\001@\000\000\001\238\000\000\000\000\001\247\001,\001\248\001\217\006k\001\247\000\000\001\248\001\217\000\000\006p\001\209\001\210\006r\000\000\000\000\006w\006\131\006l\006m\001I\006n\000\000\001Z\000\000\000\000\006\174\002\168\000\000\000\000\006\236\000\000\000\000\001\211\003\129\000\000\001\213\001\214\000\000\000\000\002\169\000\000\003\021\000\254\000\000\006\175\006o\000\000\0014\000\000\000\000\000\000\000\000\001W\001\218\001<\001P\000\000\000\000\000\000\001C\0014\000\000\000\000\005\157\000\000\000\000\001\219\001<\001P\000\254\000\000\000\000\006p\001=\000\000\006r\000\000\000\000\006w\006\131\000\000\000\000\000\000\000\000\000\000\005\148\001=\000\000\006\174\000\000\001I\000\000\000\000\001Z\000\000\000\000\000\000\000\000\005\148\000\000\000\000\006\233\001\209\001\210\000\000\003\022\007W\006\175\000\000\000\000\000\000\000\000\000\000\003\023\006\247\001\248\003\024\001\218\000\000\000\000\000\000\007\004\001N\000\000\001\211\003\129\000\000\001\213\001\214\000\000\001\219\000\000\001\238\000\254\000\000\001N\000\000\000\000\000\000\000\000\001\247\001?\001\248\001\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\007Y\001@\001\209\001\210\000\000\000\000\000\000\001,\000\000\000\000\0014\000\000\000\000\003\130\001@\000\000\000\000\001<\001P\000\000\001,\000\000\000\000\000\000\001\211\003\129\000\000\001\213\001\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001=\000\000\000\000\001\238\000\000\000\000\002\165\002\166\001\210\000\000\000\000\001\247\005\148\001\248\001\217\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\001W\000\000\000\000\000\000\000\000\007\001\001\219\001C\003\t\000\254\000\000\005\157\000\000\001W\000\000\000\000\000\000\000\000\000\000\000\000\001C\000\000\000\000\000\000\005\157\000\000\001N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\001\210\000\000\000\000\001I\000\000\000\000\001Z\000\000\000\000\000\000\001?\003\130\000\000\000\000\000\000\001\218\001I\001\209\001\210\001Z\000\000\001\211\003\129\000\000\001\213\001\214\000\000\001@\001\219\001\209\001\210\000\254\000\000\001,\000\000\000\000\000\000\001\238\000\000\001\211\003\129\000\000\001\213\001\214\000\000\001\247\000\000\001\248\001\217\000\000\000\000\001\211\003\129\000\000\001\213\001\214\002\168\000\000\000\000\000\000\000\000\000\000\000\000\007d\000\000\000\000\000\000\000\000\007\031\002\169\000\000\003\021\000\254\000\000\000\000\0014\000\000\000\000\br\000\000\000\000\bs\001<\001P\000\000\001W\007g\000\000\000\000\007d\000\000\000\000\001C\000\000\001\238\007h\005\157\000\000\000\000\000\000\000\000\001=\001\247\000\000\001\248\001\217\001\218\007e\000\000\000\000\000\000\000\000\007g\0022\000\000\000\000\007d\000\000\007,\001\219\000\000\007h\000\254\001I\001\218\000\000\001Z\007i\000\000\000\000\000\000\br\000\000\000\000\bs\003\022\001\218\001\219\000\000\007g\000\254\001\209\001\210\003\023\000\000\001\248\003\024\000\000\007h\001\219\001N\000\000\000\254\007i\000\000\000\000\000\000\000\000\000\000\007\031\000\000\000\000\000\000\001\211\003\129\007j\001\213\001\214\000\000\001?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007W\000\000\007k\007i\000\000\000\000\000\000\000\000\001\238\001@\000\000\000\000\007W\000\000\007j\001,\001\247\000\000\001\248\001\217\000\000\000\000\000\000\000\000\bx\000\000\001\238\000\000\007k\000\000\000\000\000\000\007+\000\000\001\247\000\000\001\248\001\217\001\238\000\000\000\000\007j\000\000\007m\000\000\000\000\001\247\000\000\001\248\001\217\000\000\007X\000\000\000\000\007l\007k\007n\0014\000\000\007p\000\000\000\000\007u\007`\001<\001P\000\000\001W\000\000\007m\000\000\001\218\007w\0014\001C\000\000\000\000\b}\0025\000\000\001<\001P\007n\001=\001\219\007p\000\000\000\254\007u\000\000\000\000\007x\000\000\000\000\000\000\002\208\007m\000\000\007w\001=\000\000\000\000\000\000\000\000\000\000\001I\000\000\000\000\001Z\007n\000\000\003v\007p\000\000\000\000\007u\000\000\007x\000\000\0014\000\000\0014\000\000\000\000\004Y\007w\001<\001P\001<\001P\000\000\000\000\001N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007x\001=\000\000\001=\001N\000\000\001\238\001?\000\000\000\000\000\000\000\000\000\000\003\145\001\247\003\162\001\248\001\217\000\000\000\000\000\000\0014\000\000\001?\001@\000\000\000\000\000\000\001<\001P\001,\0014\000\000\000\000\000\000\000\000\000\000\000\000\001<\001P\001@\0014\000\000\000\000\000\000\000\000\001,\001=\001<\001P\001N\000\000\001N\0014\000\000\000\000\000\000\001=\000\000\003\179\001<\001P\000\000\006\023\000\000\000\000\000\000\001=\000\000\001?\000\000\001?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001=\000\000\000\000\001W\000\000\000\000\007\026\001@\000\000\001@\001C\000\000\000\000\001,\002\211\001,\000\000\001N\000\000\001W\000\000\000\000\000\000\000\000\000\000\000\000\001C\001N\000\000\000\000\002\004\000\000\000\000\000\000\000\000\000\000\001?\001N\000\000\000\000\0014\001I\000\000\000\000\001Z\000\000\001?\001<\001P\001N\000\000\000\000\000\000\001@\000\000\000\000\001?\001I\000\000\001,\001Z\000\000\000\000\001@\000\000\001W\001=\001W\001?\001,\000\000\000\000\001C\001@\001C\007d\002\004\000\000\003\000\001,\000\000\000\000\000\000\000\000\000\000\001@\000\000\000\000\000\000\000\000\000\000\001,\000\000\007e\000\000\000\000\000\000\000\000\007g\000\000\000\000\000\000\000\000\001I\000\000\001I\001Z\007h\001Z\000\000\000\000\001W\007d\000\000\000\000\001N\000\000\000\000\001C\000\000\000\000\001W\003\000\000\000\000\000\000\000\000\000\000\000\001C\000\000\007e\001W\006\028\000\000\001?\007g\000\000\000\000\001C\007i\000\000\000\000\006)\001W\007h\006,\000\000\000\000\000\000\001I\001C\001@\001Z\000\000\006\028\000\000\000\000\001,\000\000\001I\000\000\000\000\001Z\000\000\000\000\000\000\0014\000\000\000\000\001I\000\000\000\000\001Z\001<\001P\000\000\007i\007j\000\000\000\000\0014\001I\0014\000\000\001Z\000\000\000\000\001<\001P\001<\001P\007k\001=\000\000\000\000\0014\000\000\000\000\000\000\000\000\000\000\000\000\001<\001P\005\002\000\000\001=\000\000\001=\001W\000\000\000\000\000\000\000\000\007j\000\000\001C\007|\000\000\007\203\006)\001=\000\000\007H\000\000\000\000\000\000\0014\007k\000\000\000\000\000\000\007m\000\000\001<\001P\000\000\000\000\000\000\000\000\000\000\001N\000\000\000\000\000\000\007n\000\000\001I\007p\000\000\001Z\007u\b7\001=\007\134\001N\000\000\001N\000\000\000\000\001?\007w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007m\001N\000\000\000\000\000\000\001?\000\000\001?\001@\000\000\000\000\007x\000\000\007n\001,\000\000\007p\000\000\000\000\007u\001?\000\000\001@\000\000\001@\000\000\000\000\000\000\001,\007w\001,\000\000\000\000\001N\0014\000\000\000\000\001@\000\000\001\209\001\210\001<\001P\001,\000\000\000\000\000\000\000\000\007x\000\000\0014\000\000\001?\000\000\000\000\000\000\000\000\001<\001P\000\000\001=\001\211\001\246\000\000\001\213\001\214\001W\000\000\000\000\001@\000\000\000\000\000\000\001C\000\000\001,\001=\000\000\000\000\000\000\001W\000\000\001W\000\000\000\000\000\000\000\000\001C\000\000\001C\000\000\001X\000\000\b8\000\000\001W\000\000\000\000\000\000\000\000\000\000\000\000\001C\000\000\001I\0014\001h\005\t\000\000\001N\000\000\000\000\001<\001P\000\000\000\000\000\000\000\000\001I\000\000\001I\001Z\000\000\001Z\000\000\001N\000\000\001W\001?\000\000\000\000\001=\000\000\001I\001C\000\000\001Z\000\000\001v\000\000\000\000\000\000\000\000\000\000\001?\001@\001\218\000\000\0014\000\000\000\000\001,\000\000\000\000\000\000\001<\001P\000\000\000\000\001\219\000\000\001@\000\254\000\000\000\000\001I\000\000\001,\001Z\000\000\000\000\000\000\000\000\000\000\001=\000\000\0014\000\000\000\000\000\000\001N\0014\000\000\001<\001P\000\000\000\000\000\000\001<\001P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001=\001W\000\000\0014\000\000\001=\000\000\000\000\001C\000\000\001<\001P\001{\000\000\001@\000\000\000\000\001W\0014\000\000\001,\001N\000\000\001\238\001C\001<\001P\000\000\001\178\001=\000\000\001\247\000\000\001\248\001\217\000\000\000\000\000\000\000\000\001I\001?\000\000\001Z\000\000\001=\000\000\000\000\000\000\000\000\001N\000\000\000\000\000\000\000\000\001N\001I\000\000\001@\001Z\000\000\000\000\000\000\000\000\001,\000\000\000\000\000\000\000\000\001?\000\000\000\000\000\000\001W\001?\0014\000\000\000\000\000\000\001N\001C\000\000\001<\001P\0024\000\000\001@\000\000\000\000\000\000\000\000\001@\001,\000\000\001N\000\000\000\000\001,\001?\0014\000\000\001=\000\000\000\000\000\000\000\000\001<\001P\000\000\000\000\000\000\001I\000\000\001?\001Z\001@\001W\001\209\001\210\000\000\000\000\001,\000\000\001C\000\000\001=\000\000\002^\000\000\000\000\001@\000\000\000\000\000\000\000\000\000\000\001,\000\000\000\000\001\211\003z\000\000\001\213\001\214\001W\000\000\000\000\000\000\000\000\001W\001N\001C\000\000\000\000\001I\002`\001C\001Z\000\000\000\000\002\188\000\000\000\000\0014\000\000\000\000\000\000\000\000\000\000\001?\001<\001P\000\000\001W\001N\000\000\000\000\000\000\000\000\000\000\001C\000\000\001I\000\000\002\210\001Z\001@\001I\001W\001=\001Z\000\000\001,\001?\000\000\001C\000\000\000\000\000\000\002\253\000\000\001\189\000\000\000\000\000\000\000\000\000\000\000\000\001<\001\190\001@\001I\000\000\0014\001Z\000\000\001,\000\000\000\000\000\000\001<\001P\000\000\0014\001\218\000\000\001I\001=\000\000\001Z\001<\001P\000\000\000\000\000\000\0014\000\000\001\219\001N\001=\000\254\000\000\001<\001P\001W\000\000\000\000\000\000\000\000\001=\000\000\001C\000\000\000\000\000\000\003\002\000\000\001?\000\000\000\000\000\000\001=\000\000\0014\000\000\000\000\000\000\000\000\001W\000\000\001<\001P\000\000\000\000\001@\001C\001N\000\000\000\000\003r\001,\000\000\001I\000\000\000\000\001Z\000\000\000\000\001N\001=\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001N\000\000\000\000\000\000\000\000\001\238\000\000\000\000\001I\001?\000\000\001Z\001N\001\247\001@\001\248\001\217\000\000\000\000\001?\001,\000\000\000\000\000\000\000\000\000\000\001@\000\000\000\000\000\000\000\000\001?\001,\000\000\001W\000\000\001@\000\000\000\000\0014\001N\001C\001,\000\000\0014\003x\001<\001P\001@\000\000\000\000\001<\001P\000\000\001,\000\000\000\000\000\000\000\000\001?\000\000\000\000\000\000\000\000\000\000\001=\000\000\000\000\000\000\000\000\001=\000\000\001I\000\000\000\000\001Z\001@\000\000\000\000\001C\000\000\000\000\001,\000\000\001W\000\000\000\000\000\000\000\000\0014\000\000\001C\000\000\000\000\001W\003\147\001<\001P\000\000\000\000\000\000\001C\000\000\000\000\000\000\003\164\001W\000\000\000\000\000\000\001I\006N\000\000\001C\001N\001=\006N\003\176\001<\001N\000\000\000\000\001I\001<\000\000\001Z\000\000\000\000\000\000\000\000\000\000\000\000\001I\001?\001W\001Z\000\000\001=\001?\000\000\000\000\001C\001=\000\000\001I\003\181\000\000\001Z\000\000\000\000\001@\0014\000\000\000\000\000\000\001@\001,\000\000\001<\001P\000\000\001,\000\000\0014\001N\000\000\000\000\000\000\000\000\000\000\001<\001P\001I\0014\000\000\001Z\000\000\001=\000\000\000\000\001<\001P\000\000\001?\000\000\000\000\006P\000\000\000\000\001=\000\000\006P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001=\001@\000\000\000\000\000\000\000\000\001?\001,\000\000\001W\000\000\001?\006N\000\000\001W\000\000\001C\000\000\000\000\001<\003\190\001C\000\000\006S\000\000\005\150\000\000\001N\006S\001,\001/\000\000\000\000\000\000\001,\001/\000\000\000\000\001=\001N\000\000\000\000\000\000\000\000\000\000\000\000\001?\001I\000\000\001N\001Z\000\000\001I\000\000\000\000\001Z\000\000\000\000\001?\001W\000\000\000\000\000\000\001@\000\000\000\000\001C\000\000\001?\001,\005\245\000\000\006N\000\000\000\000\001@\0014\000\000\000\000\001<\000\000\001,\000\000\001<\001P\001@\000\000\006P\006V\000\000\000\000\001,\000\000\006V\000\000\000\000\000\000\001I\001=\000\000\001Z\000\000\001=\006\030\000\000\006Z\001?\006X\006\030\000\000\006Y\000\000\006X\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\000\001W\000\000\006S\001I\000\000\000\000\0014\001C\001,\001/\000\000\006\001\001W\001<\001P\000\000\000\000\000\000\000\000\001C\000\000\000\000\001W\006\027\000\000\000\000\006P\000\000\0014\001C\001N\000\000\001=\006+\000\000\001<\001P\000\000\001I\006N\000\000\001Z\000\000\000\000\000\000\001?\001<\000\000\000\000\001?\001I\000\000\000\000\001Z\001=\000\000\000\000\000\000\000\000\000\000\001I\000\000\006S\001Z\000\000\001=\001@\006V\001,\001/\000\000\000\000\001,\006N\000\000\000\000\000\000\000\000\000\000\000\000\001<\001N\006\030\000\000\006W\0014\006X\000\000\000\000\000\000\000\000\000\000\001<\001P\0014\000\000\000\000\000\000\001I\001=\001?\001<\001P\001N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001=\000\000\000\000\006P\000\000\000\000\001@\000\000\000\000\001=\000\000\001?\001,\001W\000\000\000\000\006V\000\000\000\000\000\000\001C\000\000\001?\000\000\006\212\000\000\000\000\000\000\001@\000\000\000\000\006\030\000\000\006c\001,\006X\000\000\006P\000\000\006S\000\000\000\000\000\000\000\000\000\000\001,\001/\001I\000\000\001N\000\000\001I\000\000\000\000\001Z\0014\001?\000\000\001N\000\000\000\000\000\000\001<\001P\001W\000\000\000\000\000\000\001?\000\000\000\000\001C\000\000\006S\000\000\006\230\000\000\001?\000\000\001,\001/\001=\000\000\000\000\000\000\001@\001W\000\000\000\000\000\000\000\000\001,\000\000\001C\001@\000\000\000\000\006\254\000\000\000\000\001,\000\000\001I\0014\006V\001Z\000\000\000\000\0014\000\000\001<\001P\000\000\000\000\000\000\001<\001P\000\000\000\000\006\030\000\000\007:\000\000\006X\001I\000\000\000\000\001Z\000\000\001=\001N\000\000\000\000\000\000\001=\001I\000\000\000\000\006V\000\000\002\165\002\166\001\210\001W\000\000\002\165\002\166\001\210\000\000\001?\001C\000\000\001W\006\030\007\146\007T\000\000\006X\000\000\001C\000\000\000\000\000\000\007\194\000\000\003\020\001@\000\000\000\000\001I\003#\000\000\001,\002\165\002\166\001\210\000\000\000\000\001N\000\000\000\000\001I\000\000\001N\001Z\000\000\000\000\000\000\000\000\000\000\001I\000\000\000\000\001Z\000\000\000\000\000\000\001?\003\247\000\000\000\000\000\000\001?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001@\000\000\000\000\000\000\000\000\001@\001,\000\000\000\000\000\000\001W\001,\000\000\000\000\000\000\000\000\0014\001C\000\000\000\000\001\195\007\217\000\000\001<\001P\000\000\000\000\001<\001\196\000\000\000\000\000\000\000\000\000\000\002\168\000\000\007\199\000\000\000\000\002\168\000\000\000\000\001=\001<\007\200\000\000\001=\002\169\001I\003\021\000\254\001Z\002\169\000\000\003\021\000\254\000\000\000\000\001W\000\000\000\000\000\000\001=\001W\007\222\001C\007\233\002\168\000\000\007\228\001C\001<\007\223\001<\007\234\000\000\000\000\000\000\000\000\000\000\002\169\000\000\003\021\000\254\000\000\000\000\000\000\000\000\000\000\000\000\001=\001N\001=\000\000\000\000\001N\001I\000\000\000\000\001Z\000\000\001I\000\000\000\000\002[\000\000\000\000\000\000\000\000\000\000\001?\001N\000\000\003\022\001?\000\000\000\000\000\000\003\022\000\000\000\000\003\023\000\000\001\248\003\024\000\000\003\023\001@\001\248\003\024\001?\001@\000\000\001,\000\000\000\000\000\000\001,\000\000\001N\000\000\001N\000\000\000\000\000\000\000\000\003\022\001@\000\000\000\000\000\000\000\000\000\000\001,\003\023\000\000\001\248\003\024\001?\000\000\001?\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001@\000\000\001@\000\000\000\000\000\000\001,\000\000\001,\000\000\001W\000\000\000\000\000\000\000\000\000\000\000\000\001C\000\000\000\000\000\000\001C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\000\000\000\005\004\001I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001C\000\000\001C\001I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\000\001I")) and semantic_action = [| @@ -1529,9 +1600,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4136 "parsing/parser.mly" +# 4277 "parsing/parser.mly" ( "+" ) -# 1535 "parsing/parser.ml" +# 1606 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1554,9 +1625,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4137 "parsing/parser.mly" +# 4278 "parsing/parser.mly" ( "+." ) -# 1560 "parsing/parser.ml" +# 1631 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1579,9 +1650,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 3643 "parsing/parser.mly" +# 3752 "parsing/parser.mly" ( _1 ) -# 1585 "parsing/parser.ml" +# 1656 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1626,24 +1697,24 @@ module Tables = struct let _endpos = _endpos_tyvar_ in let _v : (Parsetree.core_type) = let _1 = let _1 = -# 3646 "parsing/parser.mly" +# 3755 "parsing/parser.mly" ( Ptyp_alias(ty, tyvar) ) -# 1632 "parsing/parser.ml" +# 1703 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_tyvar_, _startpos_ty_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 1641 "parsing/parser.ml" +# 1712 "parsing/parser.ml" in -# 3648 "parsing/parser.mly" +# 3757 "parsing/parser.mly" ( _1 ) -# 1647 "parsing/parser.ml" +# 1718 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1689,30 +1760,30 @@ module Tables = struct let _v : (let_binding) = let attrs2 = let _1 = _1_inlined2 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 1695 "parsing/parser.ml" +# 1766 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 1704 "parsing/parser.ml" +# 1775 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2848 "parsing/parser.mly" +# 2922 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in mklb ~loc:_sloc false body attrs ) -# 1716 "parsing/parser.ml" +# 1787 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1735,9 +1806,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 4009 "parsing/parser.mly" +# 4150 "parsing/parser.mly" ( _1 ) -# 1741 "parsing/parser.ml" +# 1812 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1760,9 +1831,123 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 4010 "parsing/parser.mly" +# 4151 "parsing/parser.mly" ( Lident _1 ) -# 1766 "parsing/parser.ml" +# 1837 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 909 "parsing/parser.mly" + (string) +# 1858 "parsing/parser.ml" + ) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3849 "parsing/parser.mly" + ( Ptyp_constr(mkrhs (Lident _1) _sloc, []) ) +# 1871 "parsing/parser.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 1880 "parsing/parser.ml" + + in + +# 3851 "parsing/parser.mly" + ( _1 ) +# 1886 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Parsetree.core_type) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.core_type) = +# 3853 "parsing/parser.mly" + ( _1 ) +# 1911 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (string) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (string Asttypes.loc) = let _1 = + let _1 = +# 4346 "parsing/parser.mly" + ( _1 ) +# 1937 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1125 "parsing/parser.mly" + ( mkloc _1 (make_loc _sloc) ) +# 1945 "parsing/parser.ml" + + in + +# 4348 "parsing/parser.mly" + ( _1 ) +# 1951 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1792,16 +1977,183 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.core_type) = Obj.magic _2 in + let _3 : (string Asttypes.loc) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (string) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (string Asttypes.loc) = let _1 = + let _1 = +# 4347 "parsing/parser.mly" + ( _1 ^ "." ^ _3.txt ) +# 1991 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1125 "parsing/parser.mly" + ( mkloc _1 (make_loc _sloc) ) +# 2000 "parsing/parser.ml" + + in + +# 4348 "parsing/parser.mly" + ( _1 ) +# 2006 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Parsetree.payload) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.payload) = +# 4403 "parsing/parser.mly" + ( Builtin_attributes.mark_payload_attrs_used _1; + _1 + ) +# 2033 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.payload) = Obj.magic _3 in + let _2 : (string Asttypes.loc) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : (Parsetree.attribute) = let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4352 "parsing/parser.mly" + ( mk_attr ~loc:(make_loc _sloc) _2 _3 ) +# 2082 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Parsetree.class_expr) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.class_expr) = +# 2098 "parsing/parser.mly" + ( _1 ) +# 2107 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : (Parsetree.class_expr) = Obj.magic _3 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.core_type) = -# 3739 "parsing/parser.mly" - ( _2 ) -# 1805 "parsing/parser.ml" + let _v : (Parsetree.class_expr) = let _2 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 2148 "parsing/parser.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2100 "parsing/parser.mly" + ( wrap_class_attrs ~loc:_sloc _3 _2 ) +# 2157 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1814,14 +2166,56 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : (Parsetree.class_expr) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (let_bindings) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Parsetree.class_expr) = let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2102 "parsing/parser.mly" + ( class_of_let_bindings ~loc:_sloc _1 _3 ) +# 2199 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined2; @@ -1849,51 +2243,146 @@ module Tables = struct }; }; } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let _1_inlined3 : (Parsetree.module_type) = Obj.magic _1_inlined3 in + let _7 : (Parsetree.class_expr) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__7_ in + let _v : (Parsetree.class_expr) = let _5 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 2264 "parsing/parser.ml" + + in + let _endpos__5_ = _endpos__1_inlined2_ in + let _4 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 2273 "parsing/parser.ml" + + in + let _3 = +# 4269 "parsing/parser.mly" + ( Fresh ) +# 2279 "parsing/parser.ml" + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2104 "parsing/parser.mly" + ( let loc = (_startpos__2_, _endpos__5_) in + let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in + mkclass ~loc:_sloc ~attrs:_4 (Pcl_open(od, _7)) ) +# 2289 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _7 : (Parsetree.class_expr) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Parsetree.core_type) = let _4 = + let _endpos = _endpos__7_ in + let _v : (Parsetree.class_expr) = let _5 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3799 "parsing/parser.mly" - ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in - let descr = Ptyp_package (lid, cstrs) in - mktyp ~loc:_sloc ~attrs descr ) -# 1872 "parsing/parser.ml" +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 2361 "parsing/parser.ml" in - let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 1882 "parsing/parser.ml" - - in + let _endpos__5_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in -# 4241 "parsing/parser.mly" - ( _1, _2 ) -# 1888 "parsing/parser.ml" +# 4369 "parsing/parser.mly" + ( _1 ) +# 2370 "parsing/parser.ml" in - let _endpos = _endpos__5_ in + let _3 = +# 4270 "parsing/parser.mly" + ( Override ) +# 2376 "parsing/parser.ml" + in + let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3741 "parsing/parser.mly" - ( wrap_typ_attrs ~loc:_sloc (reloc_typ ~loc:_sloc _4) _3 ) -# 1897 "parsing/parser.ml" +# 2104 "parsing/parser.mly" + ( let loc = (_startpos__2_, _endpos__5_) in + let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in + mkclass ~loc:_sloc ~attrs:_4 (Pcl_open(od, _7)) ) +# 2386 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1917,31 +2406,15 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : (Asttypes.label) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _2 : (Parsetree.attribute) = Obj.magic _2 in + let _1 : (Parsetree.class_expr) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = -# 3744 "parsing/parser.mly" - ( Ptyp_var _2 ) -# 1930 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 1939 "parsing/parser.ml" - - in - -# 3776 "parsing/parser.mly" - ( _1 ) -# 1945 "parsing/parser.ml" + let _v : (Parsetree.class_expr) = +# 2108 "parsing/parser.mly" + ( Cl.attr _1 _2 ) +# 2418 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1953,35 +2426,57 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _1 : unit = Obj.magic _1 in + let xs : ((Asttypes.arg_label * Parsetree.expression) list) = Obj.magic xs in + let _1 : (Parsetree.class_expr) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = -# 3746 "parsing/parser.mly" - ( Ptyp_any ) -# 1971 "parsing/parser.ml" - in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.class_expr) = let _1 = + let _1 = + let _2 = + let xs = +# 253 "" + ( List.rev xs ) +# 2453 "parsing/parser.ml" + in + +# 1197 "parsing/parser.mly" + ( xs ) +# 2458 "parsing/parser.ml" + + in + +# 2111 "parsing/parser.mly" + ( Pcl_apply(_1, _2) ) +# 2464 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos_xs_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 1979 "parsing/parser.ml" +# 1148 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 2474 "parsing/parser.ml" in -# 3776 "parsing/parser.mly" - ( _1 ) -# 1985 "parsing/parser.ml" +# 2114 "parsing/parser.mly" + ( _1 ) +# 2480 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1999,46 +2494,29 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in + let _1 : (Parsetree.extension) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let tid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 2016 "parsing/parser.ml" - - in - let tys = -# 3791 "parsing/parser.mly" - ( [] ) -# 2022 "parsing/parser.ml" - in - -# 3749 "parsing/parser.mly" - ( Ptyp_constr(tid, tys) ) -# 2027 "parsing/parser.ml" - - in + let _v : (Parsetree.class_expr) = let _1 = + let _1 = +# 2113 "parsing/parser.mly" + ( Pcl_extension _1 ) +# 2506 "parsing/parser.ml" + in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2036 "parsing/parser.ml" +# 1148 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 2514 "parsing/parser.ml" in -# 3776 "parsing/parser.mly" - ( _1 ) -# 2042 "parsing/parser.ml" +# 2114 "parsing/parser.mly" + ( _1 ) +# 2520 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2051,59 +2529,73 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = self; + MenhirLib.EngineTypes.startp = _startpos_self_; + MenhirLib.EngineTypes.endp = _endpos_self_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in - let ty : (Parsetree.core_type) = Obj.magic ty in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let self : (string Asttypes.loc option) = Obj.magic self in + let _4 : (Parsetree.class_expr) = Obj.magic _4 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let tid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 2080 "parsing/parser.ml" - - in - let tys = -# 3793 "parsing/parser.mly" - ( [ty] ) -# 2086 "parsing/parser.ml" - in - -# 3749 "parsing/parser.mly" - ( Ptyp_constr(tid, tys) ) -# 2091 "parsing/parser.ml" - - in - let _startpos__1_ = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined2_ in + let _v : (Parsetree.class_field) = let _6 = + let _1 = _1_inlined2 in -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2101 "parsing/parser.ml" +# 4365 "parsing/parser.mly" + ( _1 ) +# 2575 "parsing/parser.ml" + + in + let _endpos__6_ = _endpos__1_inlined2_ in + let _3 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 2584 "parsing/parser.ml" in + let _2 = +# 4269 "parsing/parser.mly" + ( Fresh ) +# 2590 "parsing/parser.ml" + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3776 "parsing/parser.mly" - ( _1 ) -# 2107 "parsing/parser.ml" +# 2163 "parsing/parser.mly" + ( let docs = symbol_docs _sloc in + mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs ) +# 2599 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2116,88 +2608,80 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = self; + MenhirLib.EngineTypes.startp = _startpos_self_; + MenhirLib.EngineTypes.endp = _endpos_self_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; }; } = _menhir_stack in - let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in - let _3 : unit = Obj.magic _3 in - let xs : (Parsetree.core_type list) = Obj.magic xs in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let self : (string Asttypes.loc option) = Obj.magic self in + let _4 : (Parsetree.class_expr) = Obj.magic _4 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let tid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 2160 "parsing/parser.ml" - - in - let tys = - let tys = - let xs = -# 253 "" - ( List.rev xs ) -# 2168 "parsing/parser.ml" - in - -# 1186 "parsing/parser.mly" - ( xs ) -# 2173 "parsing/parser.ml" - - in - -# 3795 "parsing/parser.mly" - ( tys ) -# 2179 "parsing/parser.ml" - - in - -# 3749 "parsing/parser.mly" - ( Ptyp_constr(tid, tys) ) -# 2185 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos__1_inlined3_ in + let _v : (Parsetree.class_field) = let _6 = + let _1 = _1_inlined3 in -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2195 "parsing/parser.ml" +# 4365 "parsing/parser.mly" + ( _1 ) +# 2661 "parsing/parser.ml" + + in + let _endpos__6_ = _endpos__1_inlined3_ in + let _3 = + let _1 = _1_inlined2 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 2670 "parsing/parser.ml" in + let _2 = +# 4270 "parsing/parser.mly" + ( Override ) +# 2676 "parsing/parser.ml" + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3776 "parsing/parser.mly" - ( _1 ) -# 2201 "parsing/parser.ml" +# 2163 "parsing/parser.mly" + ( let docs = symbol_docs _sloc in + mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs ) +# 2685 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2210,9 +2694,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -2227,32 +2711,32 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.object_field list * Asttypes.closed_flag) = Obj.magic _2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _2 : ((Asttypes.label Asttypes.loc * Asttypes.mutable_flag * + Parsetree.class_field_kind) * + Parsetree.attributes) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = -# 3751 "parsing/parser.mly" - ( let (f, c) = _2 in Ptyp_object (f, c) ) -# 2241 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos__1_inlined1_ in + let _v : (Parsetree.class_field) = let _3 = + let _1 = _1_inlined1 in -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2250 "parsing/parser.ml" +# 4365 "parsing/parser.mly" + ( _1 ) +# 2728 "parsing/parser.ml" in + let _endpos__3_ = _endpos__1_inlined1_ in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3776 "parsing/parser.mly" - ( _1 ) -# 2256 "parsing/parser.ml" +# 2166 "parsing/parser.mly" + ( let v, attrs = _2 in + let docs = symbol_docs _sloc in + mkcf ~loc:_sloc (Pcf_val v) ~attrs:(attrs@_3) ~docs ) +# 2740 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2265,42 +2749,49 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : unit = Obj.magic _2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _2 : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * + Parsetree.class_field_kind) * + Parsetree.attributes) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = -# 3753 "parsing/parser.mly" - ( Ptyp_object ([], Closed) ) -# 2289 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos__1_inlined1_ in + let _v : (Parsetree.class_field) = let _3 = + let _1 = _1_inlined1 in -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2298 "parsing/parser.ml" +# 4365 "parsing/parser.mly" + ( _1 ) +# 2783 "parsing/parser.ml" in + let _endpos__3_ = _endpos__1_inlined1_ in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3776 "parsing/parser.mly" - ( _1 ) -# 2304 "parsing/parser.ml" +# 2170 "parsing/parser.mly" + ( let meth, attrs = _2 in + let docs = symbol_docs _sloc in + mkcf ~loc:_sloc (Pcf_method meth) ~attrs:(attrs@_3) ~docs ) +# 2795 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2313,59 +2804,61 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in - let _2 : unit = Obj.magic _2 in + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _3 : (Parsetree.core_type * Parsetree.core_type) = Obj.magic _3 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__2_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 2342 "parsing/parser.ml" - - in - let tys = -# 3791 "parsing/parser.mly" - ( [] ) -# 2348 "parsing/parser.ml" - in - -# 3757 "parsing/parser.mly" - ( Ptyp_class(cid, tys) ) -# 2353 "parsing/parser.ml" - - in - let _startpos__1_ = _startpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined2_ in + let _v : (Parsetree.class_field) = let _4 = + let _1 = _1_inlined2 in -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2363 "parsing/parser.ml" +# 4365 "parsing/parser.mly" + ( _1 ) +# 2843 "parsing/parser.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 2852 "parsing/parser.ml" in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3776 "parsing/parser.mly" - ( _1 ) -# 2369 "parsing/parser.ml" +# 2174 "parsing/parser.mly" + ( let docs = symbol_docs _sloc in + mkcf ~loc:_sloc (Pcf_constraint _3) ~attrs:(_2@_4) ~docs ) +# 2862 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2378,66 +2871,61 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in - let _2 : unit = Obj.magic _2 in - let ty : (Parsetree.core_type) = Obj.magic ty in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _3 : (Parsetree.expression) = Obj.magic _3 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 2414 "parsing/parser.ml" - - in - let tys = -# 3793 "parsing/parser.mly" - ( [ty] ) -# 2420 "parsing/parser.ml" - in - -# 3757 "parsing/parser.mly" - ( Ptyp_class(cid, tys) ) -# 2425 "parsing/parser.ml" - - in - let _startpos__1_ = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined2_ in + let _v : (Parsetree.class_field) = let _4 = + let _1 = _1_inlined2 in -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2435 "parsing/parser.ml" +# 4365 "parsing/parser.mly" + ( _1 ) +# 2910 "parsing/parser.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 2919 "parsing/parser.ml" in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3776 "parsing/parser.mly" - ( _1 ) -# 2441 "parsing/parser.ml" +# 2177 "parsing/parser.mly" + ( let docs = symbol_docs _sloc in + mkcf ~loc:_sloc (Pcf_initializer _3) ~attrs:(_2@_4) ~docs ) +# 2929 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2454,91 +2942,35 @@ module Tables = struct MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in - let _3 : unit = Obj.magic _3 in - let xs : (Parsetree.core_type list) = Obj.magic xs in - let _1 : unit = Obj.magic _1 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : (Parsetree.extension) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let cid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 2501 "parsing/parser.ml" - - in - let tys = - let tys = - let xs = -# 253 "" - ( List.rev xs ) -# 2509 "parsing/parser.ml" - in - -# 1186 "parsing/parser.mly" - ( xs ) -# 2514 "parsing/parser.ml" - - in - -# 3795 "parsing/parser.mly" - ( tys ) -# 2520 "parsing/parser.ml" - - in - -# 3757 "parsing/parser.mly" - ( Ptyp_class(cid, tys) ) -# 2526 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _v : (Parsetree.class_field) = let _2 = + let _1 = _1_inlined1 in -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2536 "parsing/parser.ml" +# 4365 "parsing/parser.mly" + ( _1 ) +# 2963 "parsing/parser.ml" in + let _endpos__2_ = _endpos__1_inlined1_ in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3776 "parsing/parser.mly" - ( _1 ) -# 2542 "parsing/parser.ml" +# 2180 "parsing/parser.mly" + ( let docs = symbol_docs _sloc in + mkcf ~loc:_sloc (Pcf_extension _1) ~attrs:_2 ~docs ) +# 2974 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2550,50 +2982,67 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.row_field) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _1 : (Parsetree.attribute) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.core_type) = let _1 = + let _endpos = _endpos__1_ in + let _v : (Parsetree.class_field) = let _1 = let _1 = -# 3760 "parsing/parser.mly" - ( Ptyp_variant([_2], Closed, None) ) -# 2582 "parsing/parser.ml" +# 2183 "parsing/parser.mly" + ( Pcf_attribute _1 ) +# 3000 "parsing/parser.ml" in - let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2591 "parsing/parser.ml" +# 1146 "parsing/parser.mly" + ( mkcf ~loc:_sloc _1 ) +# 3008 "parsing/parser.ml" in -# 3776 "parsing/parser.mly" - ( _1 ) -# 2597 "parsing/parser.ml" +# 2184 "parsing/parser.mly" + ( _1 ) +# 3014 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : (Parsetree.class_expr) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Parsetree.class_expr) = +# 2078 "parsing/parser.mly" + ( _2 ) +# 3046 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2611,9 +3060,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -2629,54 +3078,33 @@ module Tables = struct }; }; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let xs : (Parsetree.row_field list) = Obj.magic xs in - let _2 : unit = Obj.magic _2 in + let _4 : (Parsetree.class_expr) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.class_type) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let _3 = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 2647 "parsing/parser.ml" - in - -# 1158 "parsing/parser.mly" - ( xs ) -# 2652 "parsing/parser.ml" - - in - -# 3805 "parsing/parser.mly" - ( _1 ) -# 2658 "parsing/parser.ml" - - in - -# 3762 "parsing/parser.mly" - ( Ptyp_variant(_3, Closed, None) ) -# 2664 "parsing/parser.ml" - - in + let _v : (Parsetree.class_expr) = let _1 = + let _1 = +# 2081 "parsing/parser.mly" + ( Pcl_constraint(_4, _2) ) +# 3093 "parsing/parser.ml" + in let _endpos__1_ = _endpos__4_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2674 "parsing/parser.ml" +# 1148 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 3102 "parsing/parser.ml" in -# 3776 "parsing/parser.mly" - ( _1 ) -# 2680 "parsing/parser.ml" +# 2084 "parsing/parser.mly" + ( _1 ) +# 3108 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2689,84 +3117,42 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let xs : (Parsetree.row_field list) = Obj.magic xs in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.row_field) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _2 : (Parsetree.class_expr) = Obj.magic _2 in + let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let _4 = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 2737 "parsing/parser.ml" - in - -# 1158 "parsing/parser.mly" - ( xs ) -# 2742 "parsing/parser.ml" - - in - -# 3805 "parsing/parser.mly" - ( _1 ) -# 2748 "parsing/parser.ml" - - in - -# 3764 "parsing/parser.mly" - ( Ptyp_variant(_2 :: _4, Closed, None) ) -# 2754 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__2_ in + let _v : (Parsetree.class_expr) = let _1 = + let _1 = +# 2083 "parsing/parser.mly" + ( let (l,o,p) = _1 in Pcl_fun(l, o, p, _2) ) +# 3141 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2764 "parsing/parser.ml" +# 1148 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 3150 "parsing/parser.ml" in -# 3776 "parsing/parser.mly" - ( _1 ) -# 2770 "parsing/parser.ml" +# 2084 "parsing/parser.mly" + ( _1 ) +# 3156 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2779,77 +3165,49 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let xs : (Parsetree.row_field list) = Obj.magic xs in - let _2 : (unit option) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let e : (Parsetree.class_expr) = Obj.magic e in + let _2 : unit = Obj.magic _2 in + let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let _3 = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 2820 "parsing/parser.ml" - in - -# 1158 "parsing/parser.mly" - ( xs ) -# 2825 "parsing/parser.ml" - - in - -# 3805 "parsing/parser.mly" - ( _1 ) -# 2831 "parsing/parser.ml" - - in - -# 3766 "parsing/parser.mly" - ( Ptyp_variant(_3, Open, None) ) -# 2837 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos_e_ in + let _v : (Parsetree.class_expr) = let _1 = + let _1 = +# 2139 "parsing/parser.mly" + ( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) ) +# 3196 "parsing/parser.ml" + in + let _endpos__1_ = _endpos_e_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2847 "parsing/parser.ml" +# 1148 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 3205 "parsing/parser.ml" in -# 3776 "parsing/parser.mly" - ( _1 ) -# 2853 "parsing/parser.ml" +# 2140 "parsing/parser.mly" + ( _1 ) +# 3211 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2862,9 +3220,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -2873,31 +3231,31 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : unit = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let e : (Parsetree.class_expr) = Obj.magic e in + let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.core_type) = let _1 = + let _endpos = _endpos_e_ in + let _v : (Parsetree.class_expr) = let _1 = let _1 = -# 3768 "parsing/parser.mly" - ( Ptyp_variant([], Open, None) ) -# 2886 "parsing/parser.ml" +# 2139 "parsing/parser.mly" + ( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) ) +# 3244 "parsing/parser.ml" in - let _endpos__1_ = _endpos__2_ in + let _endpos__1_ = _endpos_e_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2895 "parsing/parser.ml" +# 1148 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 3253 "parsing/parser.ml" in -# 3776 "parsing/parser.mly" - ( _1 ) -# 2901 "parsing/parser.ml" +# 2140 "parsing/parser.mly" + ( _1 ) +# 3259 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2909,78 +3267,20 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let xs : (Parsetree.row_field list) = Obj.magic xs in - let _2 : (unit option) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let _3 = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 2951 "parsing/parser.ml" - in - -# 1158 "parsing/parser.mly" - ( xs ) -# 2956 "parsing/parser.ml" - - in - -# 3805 "parsing/parser.mly" - ( _1 ) -# 2962 "parsing/parser.ml" - - in - -# 3770 "parsing/parser.mly" - ( Ptyp_variant(_3, Closed, Some []) ) -# 2968 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2978 "parsing/parser.ml" - - in - -# 3776 "parsing/parser.mly" - ( _1 ) -# 2984 "parsing/parser.ml" + let _endpos = _endpos__1_ in + let _v : (Longident.t) = +# 4140 "parsing/parser.mly" + ( _1 ) +# 3284 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2993,111 +3293,36 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs_inlined1; - MenhirLib.EngineTypes.startp = _startpos_xs_inlined1_; - MenhirLib.EngineTypes.endp = _endpos_xs_inlined1_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _6 : unit = Obj.magic _6 in - let xs_inlined1 : (Asttypes.label list) = Obj.magic xs_inlined1 in - let _4 : unit = Obj.magic _4 in - let xs : (Parsetree.row_field list) = Obj.magic xs in - let _2 : (unit option) = Obj.magic _2 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.pattern) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__6_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let _5 = - let xs = xs_inlined1 in - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 3049 "parsing/parser.ml" - in - -# 1126 "parsing/parser.mly" - ( xs ) -# 3054 "parsing/parser.ml" - - in - -# 3833 "parsing/parser.mly" - ( _1 ) -# 3060 "parsing/parser.ml" - - in - let _3 = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 3068 "parsing/parser.ml" - in - -# 1158 "parsing/parser.mly" - ( xs ) -# 3073 "parsing/parser.ml" - - in - -# 3805 "parsing/parser.mly" - ( _1 ) -# 3079 "parsing/parser.ml" - - in - -# 3772 "parsing/parser.mly" - ( Ptyp_variant(_3, Closed, Some _5) ) -# 3085 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__6_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 3095 "parsing/parser.ml" - - in + let _endpos = _endpos__3_ in + let _v : (Parsetree.pattern) = let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3776 "parsing/parser.mly" - ( _1 ) -# 3101 "parsing/parser.ml" +# 2148 "parsing/parser.mly" + ( reloc_pat ~loc:_sloc _2 ) +# 3326 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3109,35 +3334,64 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; } = _menhir_stack in - let _1 : (Parsetree.extension) = Obj.magic _1 in + let _5 : unit = Obj.magic _5 in + let _4 : (Parsetree.core_type) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.pattern) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = + let _endpos = _endpos__5_ in + let _v : (Parsetree.pattern) = let _1 = let _1 = -# 3774 "parsing/parser.mly" - ( Ptyp_extension _1 ) -# 3127 "parsing/parser.ml" +# 2150 "parsing/parser.mly" + ( Ppat_constraint(_2, _4) ) +# 3380 "parsing/parser.ml" in + let _endpos__1_ = _endpos__5_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 3135 "parsing/parser.ml" +# 1130 "parsing/parser.mly" + ( mkpat ~loc:_sloc _1 ) +# 3389 "parsing/parser.ml" in -# 3776 "parsing/parser.mly" - ( _1 ) -# 3141 "parsing/parser.ml" +# 2151 "parsing/parser.mly" + ( _1 ) +# 3395 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3148,36 +3402,17 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (string) = Obj.magic _1 in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (string Asttypes.loc) = let _1 = - let _1 = -# 4205 "parsing/parser.mly" - ( _1 ) -# 3167 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1054 "parsing/parser.mly" - ( mkloc _1 (make_loc _sloc) ) -# 3175 "parsing/parser.ml" - - in + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.pattern) = let _endpos = _endpos__0_ in + let _symbolstartpos = _endpos in + let _sloc = (_symbolstartpos, _endpos) in -# 4207 "parsing/parser.mly" - ( _1 ) -# 3181 "parsing/parser.ml" +# 2153 "parsing/parser.mly" + ( ghpat ~loc:_sloc Ppat_any ) +# 3416 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3207,32 +3442,16 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : (string Asttypes.loc) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (string) = Obj.magic _1 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.core_type) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (string Asttypes.loc) = let _1 = - let _1 = -# 4206 "parsing/parser.mly" - ( _1 ^ "." ^ _3.txt ) -# 3221 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1054 "parsing/parser.mly" - ( mkloc _1 (make_loc _sloc) ) -# 3230 "parsing/parser.ml" - - in - -# 4207 "parsing/parser.mly" - ( _1 ) -# 3236 "parsing/parser.ml" + let _v : (Parsetree.core_type) = +# 2278 "parsing/parser.mly" + ( _2 ) +# 3455 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3243,23 +3462,30 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Parsetree.payload) = Obj.magic _1 in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.payload) = -# 4262 "parsing/parser.mly" - ( Builtin_attributes.mark_payload_attrs_used _1; - _1 - ) -# 3263 "parsing/parser.ml" + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.core_type) = let _1 = + let _1 = +# 2279 "parsing/parser.mly" + ( Ptyp_any ) +# 3474 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__0_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _endpos in + let _sloc = (_symbolstartpos, _endpos) in + +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 3483 "parsing/parser.ml" + + in + +# 2280 "parsing/parser.mly" + ( _1 ) +# 3489 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3272,9 +3498,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _3; @@ -3282,9 +3508,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -3295,45 +3521,38 @@ module Tables = struct }; }; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.payload) = Obj.magic _3 in - let _2 : (string Asttypes.loc) = Obj.magic _2 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _3 : (Parsetree.class_type) = Obj.magic _3 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined2_ in + let _v : (Parsetree.class_type_field) = let _4 = + let _1 = _1_inlined2 in + +# 4365 "parsing/parser.mly" + ( _1 ) +# 3537 "parsing/parser.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 3546 "parsing/parser.ml" + + in let _endpos = _endpos__4_ in - let _v : (Parsetree.attribute) = let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4211 "parsing/parser.mly" - ( mk_attr ~loc:(make_loc _sloc) _2 _3 ) -# 3312 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Parsetree.class_expr) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.class_expr) = -# 2027 "parsing/parser.mly" - ( _1 ) -# 3337 "parsing/parser.ml" +# 2288 "parsing/parser.mly" + ( let docs = symbol_docs _sloc in + mkctf ~loc:_sloc (Pctf_inherit _3) ~attrs:(_2@_4) ~docs ) +# 3556 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3346,86 +3565,112 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = flags; + MenhirLib.EngineTypes.startp = _startpos_flags_; + MenhirLib.EngineTypes.endp = _endpos_flags_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; }; } = _menhir_stack in - let _3 : (Parsetree.class_expr) = Obj.magic _3 in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let ty : (Parsetree.core_type) = Obj.magic ty in + let _3 : unit = Obj.magic _3 in + let _1_inlined2 : ( +# 909 "parsing/parser.mly" + (string) +# 3616 "parsing/parser.ml" + ) = Obj.magic _1_inlined2 in + let flags : (Asttypes.mutable_flag * Asttypes.virtual_flag) = Obj.magic flags in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.class_expr) = let _2 = + let _endpos = _endpos__1_inlined3_ in + let _v : (Parsetree.class_type_field) = let _4 = + let _1 = _1_inlined3 in + +# 4365 "parsing/parser.mly" + ( _1 ) +# 3629 "parsing/parser.ml" + + in + let _endpos__4_ = _endpos__1_inlined3_ in + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let label = + let _1 = +# 4007 "parsing/parser.mly" + ( _1 ) +# 3639 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 3647 "parsing/parser.ml" + + in + +# 2313 "parsing/parser.mly" + ( + let mut, virt = flags in + label, mut, virt, ty + ) +# 3656 "parsing/parser.ml" + + in + let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 3378 "parsing/parser.ml" +# 3664 "parsing/parser.ml" in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2029 "parsing/parser.mly" - ( wrap_class_attrs ~loc:_sloc _3 _2 ) -# 3387 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : (Parsetree.class_expr) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (let_bindings) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.class_expr) = let _endpos = _endpos__3_ in + let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2031 "parsing/parser.mly" - ( class_of_let_bindings ~loc:_sloc _1 _3 ) -# 3429 "parsing/parser.ml" +# 2291 "parsing/parser.mly" + ( let docs = symbol_docs _sloc in + mkctf ~loc:_sloc (Pctf_val _3) ~attrs:(_2@_4) ~docs ) +# 3674 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3438,84 +3683,111 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.semv = _1_inlined4; + MenhirLib.EngineTypes.startp = _startpos__1_inlined4_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; }; }; }; } = _menhir_stack in - let _7 : (Parsetree.class_expr) = Obj.magic _7 in - let _6 : unit = Obj.magic _6 in - let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in + let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in + let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in + let _5 : unit = Obj.magic _5 in + let _1_inlined2 : ( +# 909 "parsing/parser.mly" + (string) +# 3734 "parsing/parser.ml" + ) = Obj.magic _1_inlined2 in + let _3 : (Asttypes.private_flag * Asttypes.virtual_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__7_ in - let _v : (Parsetree.class_expr) = let _5 = + let _endpos = _endpos__1_inlined4_ in + let _v : (Parsetree.class_type_field) = let _7 = + let _1 = _1_inlined4 in + +# 4365 "parsing/parser.mly" + ( _1 ) +# 3747 "parsing/parser.ml" + + in + let _endpos__7_ = _endpos__1_inlined4_ in + let _6 = + let _1 = _1_inlined3 in + +# 3718 "parsing/parser.mly" + ( _1 ) +# 3756 "parsing/parser.ml" + + in + let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = +# 4007 "parsing/parser.mly" + ( _1 ) +# 3764 "parsing/parser.ml" + in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 3494 "parsing/parser.ml" +# 3772 "parsing/parser.ml" in - let _endpos__5_ = _endpos__1_inlined2_ in - let _4 = + let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 3503 "parsing/parser.ml" +# 3780 "parsing/parser.ml" in - let _3 = -# 4128 "parsing/parser.mly" - ( Fresh ) -# 3509 "parsing/parser.ml" - in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2033 "parsing/parser.mly" - ( let loc = (_startpos__2_, _endpos__5_) in - let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in - mkclass ~loc:_sloc ~attrs:_4 (Pcl_open(od, _7)) ) -# 3519 "parsing/parser.ml" +# 2295 "parsing/parser.mly" + ( let (p, v) = _3 in + let docs = symbol_docs _sloc in + mkctf ~loc:_sloc (Pctf_method (_4, p, v, _6)) ~attrs:(_2@_7) ~docs ) +# 3791 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3528,91 +3800,61 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let _7 : (Parsetree.class_expr) = Obj.magic _7 in - let _6 : unit = Obj.magic _6 in - let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in + let _3 : (Parsetree.core_type * Parsetree.core_type) = Obj.magic _3 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__7_ in - let _v : (Parsetree.class_expr) = let _5 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos__1_inlined2_ in + let _v : (Parsetree.class_type_field) = let _4 = + let _1 = _1_inlined2 in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 3591 "parsing/parser.ml" +# 4365 "parsing/parser.mly" + ( _1 ) +# 3839 "parsing/parser.ml" in - let _endpos__5_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in + let _endpos__4_ = _endpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 3600 "parsing/parser.ml" +# 3848 "parsing/parser.ml" in - let _3 = -# 4129 "parsing/parser.mly" - ( Override ) -# 3606 "parsing/parser.ml" - in - let _endpos = _endpos__7_ in + let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2033 "parsing/parser.mly" - ( let loc = (_startpos__2_, _endpos__5_) in - let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in - mkclass ~loc:_sloc ~attrs:_4 (Pcl_open(od, _7)) ) -# 3616 "parsing/parser.ml" +# 2299 "parsing/parser.mly" + ( let docs = symbol_docs _sloc in + mkctf ~loc:_sloc (Pctf_constraint _3) ~attrs:(_2@_4) ~docs ) +# 3858 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3625,9 +3867,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -3636,15 +3878,132 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : (Parsetree.attribute) = Obj.magic _2 in - let _1 : (Parsetree.class_expr) = Obj.magic _1 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : (Parsetree.extension) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined1_ in + let _v : (Parsetree.class_type_field) = let _2 = + let _1 = _1_inlined1 in + +# 4365 "parsing/parser.mly" + ( _1 ) +# 3892 "parsing/parser.ml" + + in + let _endpos__2_ = _endpos__1_inlined1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.class_expr) = -# 2037 "parsing/parser.mly" - ( Cl.attr _1 _2 ) -# 3648 "parsing/parser.ml" + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2302 "parsing/parser.mly" + ( let docs = symbol_docs _sloc in + mkctf ~loc:_sloc (Pctf_extension _1) ~attrs:_2 ~docs ) +# 3903 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Parsetree.attribute) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.class_type_field) = let _1 = + let _1 = +# 2305 "parsing/parser.mly" + ( Pctf_attribute _1 ) +# 3929 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1144 "parsing/parser.mly" + ( mkctf ~loc:_sloc _1 ) +# 3937 "parsing/parser.ml" + + in + +# 2306 "parsing/parser.mly" + ( _1 ) +# 3943 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Longident.t) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.class_type) = let _1 = + let _1 = + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 3974 "parsing/parser.ml" + + in + let tys = + let tys = +# 2264 "parsing/parser.mly" + ( [] ) +# 3981 "parsing/parser.ml" + in + +# 2270 "parsing/parser.mly" + ( tys ) +# 3986 "parsing/parser.ml" + + in + +# 2247 "parsing/parser.mly" + ( Pcty_constr (cid, tys) ) +# 3992 "parsing/parser.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1142 "parsing/parser.mly" + ( mkcty ~loc:_sloc _1 ) +# 4001 "parsing/parser.ml" + + in + +# 2250 "parsing/parser.mly" + ( _1 ) +# 4007 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3657,56 +4016,95 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let xs : ((Asttypes.arg_label * Parsetree.expression) list) = Obj.magic xs in - let _1 : (Parsetree.class_expr) = Obj.magic _1 in + let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in + let _3 : unit = Obj.magic _3 in + let xs : (Parsetree.core_type list) = Obj.magic xs in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.class_expr) = let _1 = + let _endpos = _endpos__1_inlined1_ in + let _v : (Parsetree.class_type) = let _1 = let _1 = - let _2 = - let xs = + let cid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 4060 "parsing/parser.ml" + + in + let tys = + let tys = + let params = + let xs = # 253 "" ( List.rev xs ) -# 3683 "parsing/parser.ml" - in - -# 1126 "parsing/parser.mly" +# 4069 "parsing/parser.ml" + in + +# 1229 "parsing/parser.mly" ( xs ) -# 3688 "parsing/parser.ml" +# 4074 "parsing/parser.ml" + + in + +# 2266 "parsing/parser.mly" + ( params ) +# 4080 "parsing/parser.ml" + + in + +# 2270 "parsing/parser.mly" + ( tys ) +# 4086 "parsing/parser.ml" in -# 2040 "parsing/parser.mly" - ( Pcl_apply(_1, _2) ) -# 3694 "parsing/parser.ml" +# 2247 "parsing/parser.mly" + ( Pcty_constr (cid, tys) ) +# 4092 "parsing/parser.ml" in - let _endpos__1_ = _endpos_xs_ in + let _endpos__1_ = _endpos__1_inlined1_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1077 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 3704 "parsing/parser.ml" +# 1142 "parsing/parser.mly" + ( mkcty ~loc:_sloc _1 ) +# 4102 "parsing/parser.ml" in -# 2043 "parsing/parser.mly" +# 2250 "parsing/parser.mly" ( _1 ) -# 3710 "parsing/parser.ml" +# 4108 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3728,25 +4126,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.class_expr) = let _1 = + let _v : (Parsetree.class_type) = let _1 = let _1 = -# 2042 "parsing/parser.mly" - ( Pcl_extension _1 ) -# 3736 "parsing/parser.ml" +# 2249 "parsing/parser.mly" + ( Pcty_extension _1 ) +# 4134 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1077 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 3744 "parsing/parser.ml" +# 1142 "parsing/parser.mly" + ( mkcty ~loc:_sloc _1 ) +# 4142 "parsing/parser.ml" in -# 2043 "parsing/parser.mly" +# 2250 "parsing/parser.mly" ( _1 ) -# 3750 "parsing/parser.ml" +# 4148 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3759,19 +4157,19 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = self; - MenhirLib.EngineTypes.startp = _startpos_self_; - MenhirLib.EngineTypes.endp = _endpos_self_; + MenhirLib.EngineTypes.semv = xss; + MenhirLib.EngineTypes.startp = _startpos_xss_; + MenhirLib.EngineTypes.endp = _endpos_xss_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined1; @@ -3788,44 +4186,59 @@ module Tables = struct }; }; } = _menhir_stack in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let self : (string Asttypes.loc option) = Obj.magic self in - let _4 : (Parsetree.class_expr) = Obj.magic _4 in + let _4 : unit = Obj.magic _4 in + let xss : (Parsetree.class_type_field list list) = Obj.magic xss in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.class_field) = let _6 = + let _endpos = _endpos__4_ in + let _v : (Parsetree.class_type) = let _3 = let _1 = _1_inlined2 in - -# 4224 "parsing/parser.mly" + let _2 = + let _1 = + let _1 = +# 260 "" + ( List.flatten xss ) +# 4205 "parsing/parser.ml" + in + +# 2284 "parsing/parser.mly" ( _1 ) -# 3805 "parsing/parser.ml" +# 4210 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + +# 1090 "parsing/parser.mly" + ( extra_csig _startpos _endpos _1 ) +# 4219 "parsing/parser.ml" + + in + +# 2274 "parsing/parser.mly" + ( Csig.mk _1 _2 ) +# 4225 "parsing/parser.ml" in - let _endpos__6_ = _endpos__1_inlined2_ in - let _3 = + let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 3814 "parsing/parser.ml" +# 4233 "parsing/parser.ml" in - let _2 = -# 4128 "parsing/parser.mly" - ( Fresh ) -# 3820 "parsing/parser.ml" - in - let _endpos = _endpos__6_ in + let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2092 "parsing/parser.mly" - ( let docs = symbol_docs _sloc in - mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs ) -# 3829 "parsing/parser.ml" +# 2252 "parsing/parser.mly" + ( mkcty ~loc:_sloc ~attrs:_2 (Pcty_signature _3) ) +# 4242 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3838,80 +4251,87 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = self; - MenhirLib.EngineTypes.startp = _startpos_self_; - MenhirLib.EngineTypes.endp = _endpos_self_; + MenhirLib.EngineTypes.semv = xss; + MenhirLib.EngineTypes.startp = _startpos_xss_; + MenhirLib.EngineTypes.endp = _endpos_xss_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let self : (string Asttypes.loc option) = Obj.magic self in - let _4 : (Parsetree.class_expr) = Obj.magic _4 in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _4 : unit = Obj.magic _4 in + let xss : (Parsetree.class_type_field list list) = Obj.magic xss in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.class_field) = let _6 = - let _1 = _1_inlined3 in - -# 4224 "parsing/parser.mly" + let _endpos = _endpos__4_ in + let _v : (Parsetree.class_type) = let _3 = + let _1 = _1_inlined2 in + let _2 = + let _1 = + let _1 = +# 260 "" + ( List.flatten xss ) +# 4299 "parsing/parser.ml" + in + +# 2284 "parsing/parser.mly" ( _1 ) -# 3891 "parsing/parser.ml" +# 4304 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + +# 1090 "parsing/parser.mly" + ( extra_csig _startpos _endpos _1 ) +# 4313 "parsing/parser.ml" + + in + +# 2274 "parsing/parser.mly" + ( Csig.mk _1 _2 ) +# 4319 "parsing/parser.ml" in - let _endpos__6_ = _endpos__1_inlined3_ in - let _3 = - let _1 = _1_inlined2 in + let _2 = + let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 3900 "parsing/parser.ml" +# 4327 "parsing/parser.ml" in - let _2 = -# 4129 "parsing/parser.mly" - ( Override ) -# 3906 "parsing/parser.ml" - in - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _loc__4_ = (_startpos__4_, _endpos__4_) in + let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2092 "parsing/parser.mly" - ( let docs = symbol_docs _sloc in - mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs ) -# 3915 "parsing/parser.ml" +# 2254 "parsing/parser.mly" + ( unclosed "object" _loc__1_ "end" _loc__4_ ) +# 4335 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3924,49 +4344,26 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _2 : ((Asttypes.label Asttypes.loc * Asttypes.mutable_flag * - Parsetree.class_field_kind) * - Parsetree.attributes) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _2 : (Parsetree.attribute) = Obj.magic _2 in + let _1 : (Parsetree.class_type) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.class_field) = let _3 = - let _1 = _1_inlined1 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 3958 "parsing/parser.ml" - - in - let _endpos__3_ = _endpos__1_inlined1_ in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2095 "parsing/parser.mly" - ( let v, attrs = _2 in - let docs = symbol_docs _sloc in - mkcf ~loc:_sloc (Pcf_val v) ~attrs:(attrs@_3) ~docs ) -# 3970 "parsing/parser.ml" + let _endpos = _endpos__2_ in + let _v : (Parsetree.class_type) = +# 2256 "parsing/parser.mly" + ( Cty.attr _1 _2 ) +# 4367 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3979,49 +4376,84 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; }; } = _menhir_stack in + let _7 : (Parsetree.class_type) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _2 : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * - Parsetree.class_field_kind) * - Parsetree.attributes) = Obj.magic _2 in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.class_field) = let _3 = + let _endpos = _endpos__7_ in + let _v : (Parsetree.class_type) = let _5 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 4432 "parsing/parser.ml" + + in + let _endpos__5_ = _endpos__1_inlined2_ in + let _4 = let _1 = _1_inlined1 in -# 4224 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 4013 "parsing/parser.ml" +# 4441 "parsing/parser.ml" in - let _endpos__3_ = _endpos__1_inlined1_ in - let _endpos = _endpos__3_ in + let _3 = +# 4269 "parsing/parser.mly" + ( Fresh ) +# 4447 "parsing/parser.ml" + in + let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2099 "parsing/parser.mly" - ( let meth, attrs = _2 in - let docs = symbol_docs _sloc in - mkcf ~loc:_sloc (Pcf_method meth) ~attrs:(attrs@_3) ~docs ) -# 4025 "parsing/parser.ml" +# 2258 "parsing/parser.mly" + ( let loc = (_startpos__2_, _endpos__5_) in + let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in + mkcty ~loc:_sloc ~attrs:_4 (Pcty_open(od, _7)) ) +# 4457 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4034,61 +4466,91 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; }; }; } = _menhir_stack in + let _7 : (Parsetree.class_type) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _3 : (Parsetree.core_type * Parsetree.core_type) = Obj.magic _3 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.class_field) = let _4 = - let _1 = _1_inlined2 in + let _endpos = _endpos__7_ in + let _v : (Parsetree.class_type) = let _5 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4224 "parsing/parser.mly" - ( _1 ) -# 4073 "parsing/parser.ml" +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 4529 "parsing/parser.ml" in - let _endpos__4_ = _endpos__1_inlined2_ in - let _2 = - let _1 = _1_inlined1 in + let _endpos__5_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 4082 "parsing/parser.ml" +# 4538 "parsing/parser.ml" in - let _endpos = _endpos__4_ in + let _3 = +# 4270 "parsing/parser.mly" + ( Override ) +# 4544 "parsing/parser.ml" + in + let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2103 "parsing/parser.mly" - ( let docs = symbol_docs _sloc in - mkcf ~loc:_sloc (Pcf_constraint _3) ~attrs:(_2@_4) ~docs ) -# 4092 "parsing/parser.ml" +# 2258 "parsing/parser.mly" + ( let loc = (_startpos__2_, _endpos__5_) in + let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in + mkcty ~loc:_sloc ~attrs:_4 (Pcty_open(od, _7)) ) +# 4554 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4101,61 +4563,33 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _3 : (Parsetree.expression) = Obj.magic _3 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.class_expr) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.class_field) = let _4 = - let _1 = _1_inlined2 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 4140 "parsing/parser.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _2 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 4149 "parsing/parser.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2106 "parsing/parser.mly" - ( let docs = symbol_docs _sloc in - mkcf ~loc:_sloc (Pcf_initializer _3) ~attrs:(_2@_4) ~docs ) -# 4159 "parsing/parser.ml" + let _endpos = _endpos__3_ in + let _v : (Parsetree.class_expr) = +# 2118 "parsing/parser.mly" + ( _2 ) +# 4593 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4168,39 +4602,35 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : (Parsetree.extension) = Obj.magic _1 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.class_expr) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.class_field) = let _2 = - let _1 = _1_inlined1 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 4193 "parsing/parser.ml" - - in - let _endpos__2_ = _endpos__1_inlined1_ in - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos__3_ in + let _v : (Parsetree.class_expr) = let _loc__3_ = (_startpos__3_, _endpos__3_) in + let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2109 "parsing/parser.mly" - ( let docs = symbol_docs _sloc in - mkcf ~loc:_sloc (Pcf_extension _1) ~attrs:_2 ~docs ) -# 4204 "parsing/parser.ml" +# 2120 "parsing/parser.mly" + ( unclosed "(" _loc__1_ ")" _loc__3_ ) +# 4634 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4218,61 +4648,53 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.attribute) = Obj.magic _1 in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.class_field) = let _1 = - let _1 = -# 2112 "parsing/parser.mly" - ( Pcf_attribute _1 ) -# 4230 "parsing/parser.ml" - in + let _v : (Parsetree.class_expr) = let _1 = + let _1 = + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 4665 "parsing/parser.ml" + + in + let tys = + let tys = +# 2264 "parsing/parser.mly" + ( [] ) +# 4672 "parsing/parser.ml" + in + +# 2270 "parsing/parser.mly" + ( tys ) +# 4677 "parsing/parser.ml" + + in + +# 2123 "parsing/parser.mly" + ( Pcl_constr(cid, tys) ) +# 4683 "parsing/parser.ml" + + in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1075 "parsing/parser.mly" - ( mkcf ~loc:_sloc _1 ) -# 4238 "parsing/parser.ml" +# 1148 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 4692 "parsing/parser.ml" in -# 2113 "parsing/parser.mly" +# 2130 "parsing/parser.mly" ( _1 ) -# 4244 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _2 : (Parsetree.class_expr) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.class_expr) = -# 2007 "parsing/parser.mly" - ( _2 ) -# 4276 "parsing/parser.ml" +# 4698 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4285,9 +4707,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _3; @@ -4295,9 +4717,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -4308,33 +4730,72 @@ module Tables = struct }; }; } = _menhir_stack in - let _4 : (Parsetree.class_expr) = Obj.magic _4 in + let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.class_type) = Obj.magic _2 in + let xs : (Parsetree.core_type list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in + let _endpos = _endpos__1_inlined1_ in let _v : (Parsetree.class_expr) = let _1 = - let _1 = -# 2010 "parsing/parser.mly" - ( Pcl_constraint(_4, _2) ) -# 4323 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__4_ in + let _1 = + let cid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 4751 "parsing/parser.ml" + + in + let tys = + let tys = + let params = + let xs = +# 253 "" + ( List.rev xs ) +# 4760 "parsing/parser.ml" + in + +# 1229 "parsing/parser.mly" + ( xs ) +# 4765 "parsing/parser.ml" + + in + +# 2266 "parsing/parser.mly" + ( params ) +# 4771 "parsing/parser.ml" + + in + +# 2270 "parsing/parser.mly" + ( tys ) +# 4777 "parsing/parser.ml" + + in + +# 2123 "parsing/parser.mly" + ( Pcl_constr(cid, tys) ) +# 4783 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1077 "parsing/parser.mly" +# 1148 "parsing/parser.mly" ( mkclass ~loc:_sloc _1 ) -# 4332 "parsing/parser.ml" +# 4793 "parsing/parser.ml" in -# 2013 "parsing/parser.mly" +# 2130 "parsing/parser.mly" ( _1 ) -# 4338 "parsing/parser.ml" +# 4799 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4347,42 +4808,105 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xss; + MenhirLib.EngineTypes.startp = _startpos_xss_; + MenhirLib.EngineTypes.endp = _endpos_xss_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let _2 : (Parsetree.class_expr) = Obj.magic _2 in - let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _1 in + let _4 : unit = Obj.magic _4 in + let xss : (Parsetree.class_field list list) = Obj.magic xss in + let _1_inlined2 : (Parsetree.pattern) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in + let _endpos = _endpos__4_ in let _v : (Parsetree.class_expr) = let _1 = - let _1 = -# 2012 "parsing/parser.mly" - ( let (l,o,p) = _1 in Pcl_fun(l, o, p, _2) ) -# 4371 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__2_ in + let _1 = + let _3 = + let _1 = _1_inlined2 in + let _2 = + let _1 = + let _1 = +# 260 "" + ( List.flatten xss ) +# 4858 "parsing/parser.ml" + in + +# 2157 "parsing/parser.mly" + ( _1 ) +# 4863 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + +# 1089 "parsing/parser.mly" + ( extra_cstr _startpos _endpos _1 ) +# 4872 "parsing/parser.ml" + + in + +# 2144 "parsing/parser.mly" + ( Cstr.mk _1 _2 ) +# 4878 "parsing/parser.ml" + + in + let _2 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 4886 "parsing/parser.ml" + + in + let _loc__4_ = (_startpos__4_, _endpos__4_) in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + +# 2125 "parsing/parser.mly" + ( unclosed "object" _loc__1_ "end" _loc__4_ ) +# 4894 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__4_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1077 "parsing/parser.mly" +# 1148 "parsing/parser.mly" ( mkclass ~loc:_sloc _1 ) -# 4380 "parsing/parser.ml" +# 4904 "parsing/parser.ml" in -# 2013 "parsing/parser.mly" +# 2130 "parsing/parser.mly" ( _1 ) -# 4386 "parsing/parser.ml" +# 4910 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4395,164 +4919,63 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let e : (Parsetree.class_expr) = Obj.magic e in - let _2 : unit = Obj.magic _2 in - let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos_e_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = -# 2068 "parsing/parser.mly" - ( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) ) -# 4426 "parsing/parser.ml" - in - let _endpos__1_ = _endpos_e_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1077 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 4435 "parsing/parser.ml" - - in - -# 2069 "parsing/parser.mly" - ( _1 ) -# 4441 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let e : (Parsetree.class_expr) = Obj.magic e in - let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _1 in + let _5 : unit = Obj.magic _5 in + let _4 : (Parsetree.class_type) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.class_expr) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_e_ in + let _endpos = _endpos__5_ in let _v : (Parsetree.class_expr) = let _1 = let _1 = -# 2068 "parsing/parser.mly" - ( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) ) -# 4474 "parsing/parser.ml" +# 2127 "parsing/parser.mly" + ( Pcl_constraint(_2, _4) ) +# 4964 "parsing/parser.ml" in - let _endpos__1_ = _endpos_e_ in + let _endpos__1_ = _endpos__5_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1077 "parsing/parser.mly" +# 1148 "parsing/parser.mly" ( mkclass ~loc:_sloc _1 ) -# 4483 "parsing/parser.ml" +# 4973 "parsing/parser.ml" in -# 2069 "parsing/parser.mly" - ( _1 ) -# 4489 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Longident.t) = -# 3999 "parsing/parser.mly" - ( _1 ) -# 4514 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.pattern) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2077 "parsing/parser.mly" - ( reloc_pat ~loc:_sloc _2 ) -# 4556 "parsing/parser.ml" +# 2130 "parsing/parser.mly" + ( _1 ) +# 4979 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4595,54 +5018,37 @@ module Tables = struct }; } = _menhir_stack in let _5 : unit = Obj.magic _5 in - let _4 : (Parsetree.core_type) = Obj.magic _4 in + let _4 : (Parsetree.class_type) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.pattern) = Obj.magic _2 in + let _2 : (Parsetree.class_expr) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.pattern) = let _1 = - let _1 = -# 2079 "parsing/parser.mly" - ( Ppat_constraint(_2, _4) ) -# 4610 "parsing/parser.ml" - in + let _v : (Parsetree.class_expr) = let _1 = + let _1 = + let _loc__5_ = (_startpos__5_, _endpos__5_) in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + +# 2129 "parsing/parser.mly" + ( unclosed "(" _loc__1_ ")" _loc__5_ ) +# 5036 "parsing/parser.ml" + + in let _endpos__1_ = _endpos__5_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" - ( mkpat ~loc:_sloc _1 ) -# 4619 "parsing/parser.ml" +# 1148 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 5046 "parsing/parser.ml" in -# 2080 "parsing/parser.mly" +# 2130 "parsing/parser.mly" ( _1 ) -# 4625 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Parsetree.pattern) = let _endpos = _endpos__0_ in - let _symbolstartpos = _endpos in - let _sloc = (_symbolstartpos, _endpos) in - -# 2082 "parsing/parser.mly" - ( ghpat ~loc:_sloc Ppat_any ) -# 4646 "parsing/parser.ml" +# 5052 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4655,33 +5061,88 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = xss; + MenhirLib.EngineTypes.startp = _startpos_xss_; + MenhirLib.EngineTypes.endp = _endpos_xss_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.core_type) = Obj.magic _2 in + let _4 : unit = Obj.magic _4 in + let xss : (Parsetree.class_field list list) = Obj.magic xss in + let _1_inlined2 : (Parsetree.pattern) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.core_type) = -# 2207 "parsing/parser.mly" - ( _2 ) -# 4685 "parsing/parser.ml" + let _endpos = _endpos__4_ in + let _v : (Parsetree.class_expr) = let _3 = + let _1 = _1_inlined2 in + let _2 = + let _1 = + let _1 = +# 260 "" + ( List.flatten xss ) +# 5109 "parsing/parser.ml" + in + +# 2157 "parsing/parser.mly" + ( _1 ) +# 5114 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + +# 1089 "parsing/parser.mly" + ( extra_cstr _startpos _endpos _1 ) +# 5123 "parsing/parser.ml" + + in + +# 2144 "parsing/parser.mly" + ( Cstr.mk _1 _2 ) +# 5129 "parsing/parser.ml" + + in + let _2 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 5137 "parsing/parser.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2132 "parsing/parser.mly" + ( mkclass ~loc:_sloc ~attrs:_2 (Pcl_structure _3) ) +# 5146 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4692,30 +5153,21 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Parsetree.class_type) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Parsetree.core_type) = let _1 = - let _1 = -# 2208 "parsing/parser.mly" - ( Ptyp_any ) -# 4704 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__0_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _endpos in - let _sloc = (_symbolstartpos, _endpos) in - -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 4713 "parsing/parser.ml" - - in - -# 2209 "parsing/parser.mly" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.class_type) = +# 2235 "parsing/parser.mly" ( _1 ) -# 4719 "parsing/parser.ml" +# 5171 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4728,9 +5180,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = codomain; + MenhirLib.EngineTypes.startp = _startpos_codomain_; + MenhirLib.EngineTypes.endp = _endpos_codomain_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _3; @@ -4738,51 +5190,53 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = domain; + MenhirLib.EngineTypes.startp = _startpos_domain_; + MenhirLib.EngineTypes.endp = _endpos_domain_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = label; + MenhirLib.EngineTypes.startp = _startpos_label_; + MenhirLib.EngineTypes.endp = _endpos_label_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _3 : (Parsetree.class_type) = Obj.magic _3 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let codomain : (Parsetree.class_type) = Obj.magic codomain in + let _3 : unit = Obj.magic _3 in + let domain : (Parsetree.core_type) = Obj.magic domain in + let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.class_type_field) = let _4 = - let _1 = _1_inlined2 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 4767 "parsing/parser.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _2 = - let _1 = _1_inlined1 in + let _startpos = _startpos_label_ in + let _endpos = _endpos_codomain_ in + let _v : (Parsetree.class_type) = let _1 = + let _1 = + let label = +# 3801 "parsing/parser.mly" + ( Optional label ) +# 5219 "parsing/parser.ml" + in + +# 2241 "parsing/parser.mly" + ( Pcty_arrow(label, domain, codomain) ) +# 5224 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4228 "parsing/parser.mly" - ( _1 ) -# 4776 "parsing/parser.ml" +# 1142 "parsing/parser.mly" + ( mkcty ~loc:_sloc _1 ) +# 5234 "parsing/parser.ml" in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2217 "parsing/parser.mly" - ( let docs = symbol_docs _sloc in - mkctf ~loc:_sloc (Pctf_inherit _3) ~attrs:(_2@_4) ~docs ) -# 4786 "parsing/parser.ml" +# 2242 "parsing/parser.mly" + ( _1 ) +# 5240 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4795,112 +5249,136 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = codomain; + MenhirLib.EngineTypes.startp = _startpos_codomain_; + MenhirLib.EngineTypes.endp = _endpos_codomain_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = domain; + MenhirLib.EngineTypes.startp = _startpos_domain_; + MenhirLib.EngineTypes.endp = _endpos_domain_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = flags; - MenhirLib.EngineTypes.startp = _startpos_flags_; - MenhirLib.EngineTypes.endp = _endpos_flags_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = label; + MenhirLib.EngineTypes.startp = _startpos_label_; + MenhirLib.EngineTypes.endp = _endpos_label_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let ty : (Parsetree.core_type) = Obj.magic ty in + let codomain : (Parsetree.class_type) = Obj.magic codomain in let _3 : unit = Obj.magic _3 in - let _1_inlined2 : ( -# 838 "parsing/parser.mly" + let domain : (Parsetree.core_type) = Obj.magic domain in + let _2 : unit = Obj.magic _2 in + let label : ( +# 909 "parsing/parser.mly" (string) -# 4846 "parsing/parser.ml" - ) = Obj.magic _1_inlined2 in - let flags : (Asttypes.mutable_flag * Asttypes.virtual_flag) = Obj.magic flags in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in +# 5289 "parsing/parser.ml" + ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.class_type_field) = let _4 = - let _1 = _1_inlined3 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 4859 "parsing/parser.ml" - - in - let _endpos__4_ = _endpos__1_inlined3_ in - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let label = - let _1 = -# 3873 "parsing/parser.mly" - ( _1 ) -# 4869 "parsing/parser.ml" + let _startpos = _startpos_label_ in + let _endpos = _endpos_codomain_ in + let _v : (Parsetree.class_type) = let _1 = + let _1 = + let label = +# 3803 "parsing/parser.mly" + ( Labelled label ) +# 5299 "parsing/parser.ml" in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 4877 "parsing/parser.ml" +# 2241 "parsing/parser.mly" + ( Pcty_arrow(label, domain, codomain) ) +# 5304 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2242 "parsing/parser.mly" - ( - let mut, virt = flags in - label, mut, virt, ty - ) -# 4886 "parsing/parser.ml" +# 1142 "parsing/parser.mly" + ( mkcty ~loc:_sloc _1 ) +# 5314 "parsing/parser.ml" in - let _2 = - let _1 = _1_inlined1 in + +# 2242 "parsing/parser.mly" + ( _1 ) +# 5320 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = codomain; + MenhirLib.EngineTypes.startp = _startpos_codomain_; + MenhirLib.EngineTypes.endp = _endpos_codomain_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = domain; + MenhirLib.EngineTypes.startp = _startpos_domain_; + MenhirLib.EngineTypes.endp = _endpos_domain_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let codomain : (Parsetree.class_type) = Obj.magic codomain in + let _3 : unit = Obj.magic _3 in + let domain : (Parsetree.core_type) = Obj.magic domain in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_domain_ in + let _endpos = _endpos_codomain_ in + let _v : (Parsetree.class_type) = let _1 = + let _1 = + let label = +# 3805 "parsing/parser.mly" + ( Nolabel ) +# 5361 "parsing/parser.ml" + in + +# 2241 "parsing/parser.mly" + ( Pcty_arrow(label, domain, codomain) ) +# 5366 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_domain_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4228 "parsing/parser.mly" - ( _1 ) -# 4894 "parsing/parser.ml" +# 1142 "parsing/parser.mly" + ( mkcty ~loc:_sloc _1 ) +# 5376 "parsing/parser.ml" in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2220 "parsing/parser.mly" - ( let docs = symbol_docs _sloc in - mkctf ~loc:_sloc (Pctf_val _3) ~attrs:(_2@_4) ~docs ) -# 4904 "parsing/parser.ml" +# 2242 "parsing/parser.mly" + ( _1 ) +# 5382 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4913,9 +5391,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined4; - MenhirLib.EngineTypes.startp = _startpos__1_inlined4_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; + MenhirLib.EngineTypes.semv = bs; + MenhirLib.EngineTypes.startp = _startpos_bs_; + MenhirLib.EngineTypes.endp = _endpos_bs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined3; @@ -4923,30 +5401,54 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = csig; + MenhirLib.EngineTypes.startp = _startpos_csig_; + MenhirLib.EngineTypes.endp = _endpos_csig_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _8; + MenhirLib.EngineTypes.startp = _startpos__8_; + MenhirLib.EngineTypes.endp = _endpos__8_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = params; + MenhirLib.EngineTypes.startp = _startpos_params_; + MenhirLib.EngineTypes.endp = _endpos_params_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = virt; + MenhirLib.EngineTypes.startp = _startpos_virt_; + MenhirLib.EngineTypes.endp = _endpos_virt_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ext; + MenhirLib.EngineTypes.startp = _startpos_ext_; + MenhirLib.EngineTypes.endp = _endpos_ext_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; }; }; @@ -4954,70 +5456,104 @@ module Tables = struct }; }; } = _menhir_stack in - let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in - let _5 : unit = Obj.magic _5 in + let bs : (Parsetree.class_type_declaration list) = Obj.magic bs in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let csig : (Parsetree.class_type) = Obj.magic csig in + let _8 : unit = Obj.magic _8 in let _1_inlined2 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 4964 "parsing/parser.ml" +# 5467 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in - let _3 : (Asttypes.private_flag * Asttypes.virtual_flag) = Obj.magic _3 in + let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in + let virt : (Asttypes.virtual_flag) = Obj.magic virt in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let ext : (string Asttypes.loc option) = Obj.magic ext in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.class_type_field) = let _7 = - let _1 = _1_inlined4 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 4977 "parsing/parser.ml" - - in - let _endpos__7_ = _endpos__1_inlined4_ in - let _6 = - let _1 = _1_inlined3 in - -# 3609 "parsing/parser.mly" + let _endpos = _endpos_bs_ in + let _v : (string Asttypes.loc option * Parsetree.class_type_declaration list) = let _1 = + let a = + let attrs2 = + let _1 = _1_inlined3 in + +# 4365 "parsing/parser.mly" ( _1 ) -# 4986 "parsing/parser.ml" - - in - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = -# 3873 "parsing/parser.mly" - ( _1 ) -# 4994 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" +# 5485 "parsing/parser.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 5002 "parsing/parser.ml" - - in - let _2 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" +# 5497 "parsing/parser.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" ( _1 ) -# 5010 "parsing/parser.ml" +# 5505 "parsing/parser.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2380 "parsing/parser.mly" + ( + let attrs = attrs1 @ attrs2 in + let loc = make_loc _sloc in + let docs = symbol_docs _sloc in + ext, + Ci.mk id csig ~virt ~params ~attrs ~loc ~docs + ) +# 5520 "parsing/parser.ml" + + in + +# 1326 "parsing/parser.mly" + ( let (x, b) = a in x, b :: bs ) +# 5526 "parsing/parser.ml" in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2224 "parsing/parser.mly" - ( let (p, v) = _3 in - let docs = symbol_docs _sloc in - mkctf ~loc:_sloc (Pctf_method (_4, p, v, _6)) ~attrs:(_2@_7) ~docs ) -# 5021 "parsing/parser.ml" +# 2368 "parsing/parser.mly" + ( _1 ) +# 5532 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Longident.t) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Longident.t) = +# 4137 "parsing/parser.mly" + ( _1 ) +# 5557 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5030,61 +5566,38 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _3 : (Parsetree.core_type * Parsetree.core_type) = Obj.magic _3 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let xs : (Jane_syntax.Comprehensions.clause_binding list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.class_type_field) = let _4 = - let _1 = _1_inlined2 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 5069 "parsing/parser.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _2 = - let _1 = _1_inlined1 in + let _endpos = _endpos_xs_ in + let _v : (Jane_syntax.Comprehensions.clause) = let _2 = + let xs = +# 253 "" + ( List.rev xs ) +# 5590 "parsing/parser.ml" + in -# 4228 "parsing/parser.mly" - ( _1 ) -# 5078 "parsing/parser.ml" +# 1229 "parsing/parser.mly" + ( xs ) +# 5595 "parsing/parser.ml" in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2228 "parsing/parser.mly" - ( let docs = symbol_docs _sloc in - mkctf ~loc:_sloc (Pctf_constraint _3) ~attrs:(_2@_4) ~docs ) -# 5088 "parsing/parser.ml" +# 2675 "parsing/parser.mly" + ( Jane_syntax.Comprehensions.For _2 ) +# 5601 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5097,9 +5610,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -5108,28 +5621,15 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : (Parsetree.extension) = Obj.magic _1 in + let _2 : (Parsetree.expression) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.class_type_field) = let _2 = - let _1 = _1_inlined1 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 5122 "parsing/parser.ml" - - in - let _endpos__2_ = _endpos__1_inlined1_ in let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2231 "parsing/parser.mly" - ( let docs = symbol_docs _sloc in - mkctf ~loc:_sloc (Pctf_extension _1) ~attrs:_2 ~docs ) -# 5133 "parsing/parser.ml" + let _v : (Jane_syntax.Comprehensions.clause) = +# 2677 "parsing/parser.mly" + ( Jane_syntax.Comprehensions.When _2 ) +# 5633 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5141,35 +5641,39 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : (Parsetree.attribute) = Obj.magic _1 in + let _3 : (Jane_syntax.Comprehensions.iterator) = Obj.magic _3 in + let _2 : (Parsetree.pattern) = Obj.magic _2 in + let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.class_type_field) = let _1 = - let _1 = -# 2234 "parsing/parser.mly" - ( Pctf_attribute _1 ) -# 5159 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1073 "parsing/parser.mly" - ( mkctf ~loc:_sloc _1 ) -# 5167 "parsing/parser.ml" - - in + let _endpos = _endpos__3_ in + let _v : (Jane_syntax.Comprehensions.clause_binding) = let _1 = +# 4369 "parsing/parser.mly" + ( _1 ) +# 5672 "parsing/parser.ml" + in -# 2235 "parsing/parser.mly" - ( _1 ) -# 5173 "parsing/parser.ml" +# 2658 "parsing/parser.mly" + ( Jane_syntax.Comprehensions.{ pattern = _2 ; iterator = _3 ; attributes = _1 } ) +# 5677 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5181,59 +5685,65 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in + let _5 : (Parsetree.expression) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.pattern) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.class_type) = let _1 = - let _1 = - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 5204 "parsing/parser.ml" - - in - let tys = - let tys = -# 2193 "parsing/parser.mly" - ( [] ) -# 5211 "parsing/parser.ml" - in - -# 2199 "parsing/parser.mly" - ( tys ) -# 5216 "parsing/parser.ml" - - in - -# 2176 "parsing/parser.mly" - ( Pcty_constr (cid, tys) ) -# 5222 "parsing/parser.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1071 "parsing/parser.mly" - ( mkcty ~loc:_sloc _1 ) -# 5231 "parsing/parser.ml" - - in + let _endpos = _endpos__5_ in + let _v : (Jane_syntax.Comprehensions.clause_binding) = let _1 = +# 4369 "parsing/parser.mly" + ( _1 ) +# 5730 "parsing/parser.ml" + in + let _endpos = _endpos__5_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _loc__2_ = (_startpos__2_, _endpos__2_) in + let _sloc = (_symbolstartpos, _endpos) in -# 2179 "parsing/parser.mly" - ( _1 ) -# 5237 "parsing/parser.ml" +# 2665 "parsing/parser.mly" + ( Jane_syntax.Comprehensions. + { pattern = _3 + ; iterator = In (mkexp_stack ~loc:_sloc ~kwd_loc:(_loc__2_) _5) + ; attributes = _1 + } + ) +# 5747 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5246,9 +5756,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _3; @@ -5256,9 +5766,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -5269,72 +5779,49 @@ module Tables = struct }; }; } = _menhir_stack in - let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in - let _3 : unit = Obj.magic _3 in - let xs : (Parsetree.core_type list) = Obj.magic xs in + let _4 : (Parsetree.expression) = Obj.magic _4 in + let _3 : (Asttypes.direction_flag) = Obj.magic _3 in + let _2 : (Parsetree.expression) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.class_type) = let _1 = - let _1 = - let cid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 5290 "parsing/parser.ml" - - in - let tys = - let tys = - let params = - let xs = -# 253 "" - ( List.rev xs ) -# 5299 "parsing/parser.ml" - in - -# 1158 "parsing/parser.mly" - ( xs ) -# 5304 "parsing/parser.ml" - - in - -# 2195 "parsing/parser.mly" - ( params ) -# 5310 "parsing/parser.ml" - - in - -# 2199 "parsing/parser.mly" - ( tys ) -# 5316 "parsing/parser.ml" - - in - -# 2176 "parsing/parser.mly" - ( Pcty_constr (cid, tys) ) -# 5322 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1071 "parsing/parser.mly" - ( mkcty ~loc:_sloc _1 ) -# 5332 "parsing/parser.ml" - - in - -# 2179 "parsing/parser.mly" - ( _1 ) -# 5338 "parsing/parser.ml" + let _endpos = _endpos__4_ in + let _v : (Jane_syntax.Comprehensions.iterator) = +# 2651 "parsing/parser.mly" + ( Jane_syntax.Comprehensions.Range { start = _2 ; stop = _4 ; direction = _3 } ) +# 5793 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : (Parsetree.expression) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Jane_syntax.Comprehensions.iterator) = +# 2653 "parsing/parser.mly" + ( Jane_syntax.Comprehensions.In _2 ) +# 5825 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5352,29 +5839,18 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.extension) = Obj.magic _1 in + let _1 : ( +# 894 "parsing/parser.mly" + (string * char option) +# 5846 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.class_type) = let _1 = - let _1 = -# 2178 "parsing/parser.mly" - ( Pcty_extension _1 ) -# 5364 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1071 "parsing/parser.mly" - ( mkcty ~loc:_sloc _1 ) -# 5372 "parsing/parser.ml" - - in - -# 2179 "parsing/parser.mly" - ( _1 ) -# 5378 "parsing/parser.ml" + let _v : (Parsetree.constant) = +# 4013 "parsing/parser.mly" + ( let (n, m) = _1 in Pconst_integer (n, m) ) +# 5854 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5386,89 +5862,24 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xss; - MenhirLib.EngineTypes.startp = _startpos_xss_; - MenhirLib.EngineTypes.endp = _endpos_xss_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let xss : (Parsetree.class_type_field list list) = Obj.magic xss in - let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let _1 : ( +# 851 "parsing/parser.mly" + (char) +# 5875 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Parsetree.class_type) = let _3 = - let _1 = _1_inlined2 in - let _2 = - let _1 = - let _1 = -# 260 "" - ( List.flatten xss ) -# 5435 "parsing/parser.ml" - in - -# 2213 "parsing/parser.mly" - ( _1 ) -# 5440 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - -# 1019 "parsing/parser.mly" - ( extra_csig _startpos _endpos _1 ) -# 5449 "parsing/parser.ml" - - in - -# 2203 "parsing/parser.mly" - ( Csig.mk _1 _2 ) -# 5455 "parsing/parser.ml" - - in - let _2 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 5463 "parsing/parser.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2181 "parsing/parser.mly" - ( mkcty ~loc:_sloc ~attrs:_2 (Pcty_signature _3) ) -# 5472 "parsing/parser.ml" + let _endpos = _endpos__1_ in + let _v : (Parsetree.constant) = +# 4014 "parsing/parser.mly" + ( Pconst_char _1 ) +# 5883 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5480,88 +5891,53 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xss; - MenhirLib.EngineTypes.startp = _startpos_xss_; - MenhirLib.EngineTypes.endp = _endpos_xss_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let xss : (Parsetree.class_type_field list list) = Obj.magic xss in - let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let _1 : ( +# 949 "parsing/parser.mly" + (string * Location.t * string option) +# 5904 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Parsetree.class_type) = let _3 = - let _1 = _1_inlined2 in - let _2 = - let _1 = - let _1 = -# 260 "" - ( List.flatten xss ) -# 5529 "parsing/parser.ml" - in - -# 2213 "parsing/parser.mly" - ( _1 ) -# 5534 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - -# 1019 "parsing/parser.mly" - ( extra_csig _startpos _endpos _1 ) -# 5543 "parsing/parser.ml" - - in - -# 2203 "parsing/parser.mly" - ( Csig.mk _1 _2 ) -# 5549 "parsing/parser.ml" - - in - let _2 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 5557 "parsing/parser.ml" - - in - let _loc__4_ = (_startpos__4_, _endpos__4_) in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - -# 2183 "parsing/parser.mly" - ( unclosed "object" _loc__1_ "end" _loc__4_ ) -# 5565 "parsing/parser.ml" + let _endpos = _endpos__1_ in + let _v : (Parsetree.constant) = +# 4015 "parsing/parser.mly" + ( let (s, strloc, d) = _1 in Pconst_string (s, strloc, d) ) +# 5912 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 872 "parsing/parser.mly" + (string * char option) +# 5933 "parsing/parser.ml" + ) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.constant) = +# 4016 "parsing/parser.mly" + ( let (f, m) = _1 in Pconst_float (f, m) ) +# 5941 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5585,15 +5961,15 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : (Parsetree.attribute) = Obj.magic _2 in - let _1 : (Parsetree.class_type) = Obj.magic _1 in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.class_type) = -# 2185 "parsing/parser.mly" - ( Cty.attr _1 _2 ) -# 5597 "parsing/parser.ml" + let _v : (Asttypes.label) = +# 4087 "parsing/parser.mly" + ( "[]" ) +# 5973 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5606,84 +5982,26 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _7 : (Parsetree.class_type) = Obj.magic _7 in - let _6 : unit = Obj.magic _6 in - let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__7_ in - let _v : (Parsetree.class_type) = let _5 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 5662 "parsing/parser.ml" - - in - let _endpos__5_ = _endpos__1_inlined2_ in - let _4 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 5671 "parsing/parser.ml" - - in - let _3 = -# 4128 "parsing/parser.mly" - ( Fresh ) -# 5677 "parsing/parser.ml" - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2187 "parsing/parser.mly" - ( let loc = (_startpos__2_, _endpos__5_) in - let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in - mkcty ~loc:_sloc ~attrs:_4 (Pcty_open(od, _7)) ) -# 5687 "parsing/parser.ml" + let _endpos = _endpos__2_ in + let _v : (Asttypes.label) = +# 4088 "parsing/parser.mly" + ( "()" ) +# 6005 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5695,92 +6013,20 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _7 : (Parsetree.class_type) = Obj.magic _7 in - let _6 : unit = Obj.magic _6 in - let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__7_ in - let _v : (Parsetree.class_type) = let _5 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 5759 "parsing/parser.ml" - - in - let _endpos__5_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 5768 "parsing/parser.ml" - - in - let _3 = -# 4129 "parsing/parser.mly" - ( Override ) -# 5774 "parsing/parser.ml" - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2187 "parsing/parser.mly" - ( let loc = (_startpos__2_, _endpos__5_) in - let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in - mkcty ~loc:_sloc ~attrs:_4 (Pcty_open(od, _7)) ) -# 5784 "parsing/parser.ml" + let _endpos = _endpos__1_ in + let _v : (Asttypes.label) = +# 4089 "parsing/parser.mly" + ( "false" ) +# 6030 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5792,34 +6038,49 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.class_expr) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.class_expr) = -# 2047 "parsing/parser.mly" - ( _2 ) -# 5823 "parsing/parser.ml" + let _endpos = _endpos__1_ in + let _v : (Asttypes.label) = +# 4090 "parsing/parser.mly" + ( "true" ) +# 6055 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 962 "parsing/parser.mly" + (string) +# 6076 "parsing/parser.ml" + ) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Asttypes.label) = +# 4093 "parsing/parser.mly" + ( _1 ) +# 6084 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5850,17 +6111,45 @@ module Tables = struct }; } = _menhir_stack in let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.class_expr) = Obj.magic _2 in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.class_expr) = let _loc__3_ = (_startpos__3_, _endpos__3_) in - let _loc__1_ = (_startpos__1_, _endpos__1_) in + let _v : (Asttypes.label) = let _1 = +# 4084 "parsing/parser.mly" + ( "::" ) +# 6123 "parsing/parser.ml" + in -# 2049 "parsing/parser.mly" - ( unclosed "(" _loc__1_ ")" _loc__3_ ) -# 5864 "parsing/parser.ml" +# 4094 "parsing/parser.mly" + ( _1 ) +# 6128 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Asttypes.label) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Asttypes.label) = +# 4095 "parsing/parser.mly" + ( _1 ) +# 6153 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5882,49 +6171,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 5895 "parsing/parser.ml" - - in - let tys = - let tys = -# 2193 "parsing/parser.mly" - ( [] ) -# 5902 "parsing/parser.ml" - in - -# 2199 "parsing/parser.mly" - ( tys ) -# 5907 "parsing/parser.ml" - - in - -# 2052 "parsing/parser.mly" - ( Pcl_constr(cid, tys) ) -# 5913 "parsing/parser.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1077 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 5922 "parsing/parser.ml" - - in - -# 2059 "parsing/parser.mly" - ( _1 ) -# 5928 "parsing/parser.ml" + let _v : (Longident.t) = +# 4098 "parsing/parser.mly" + ( _1 ) +# 6178 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5937,95 +6187,52 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; }; } = _menhir_stack in - let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in - let xs : (Parsetree.core_type list) = Obj.magic xs in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = - let cid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 5981 "parsing/parser.ml" - - in - let tys = - let tys = - let params = - let xs = -# 253 "" - ( List.rev xs ) -# 5990 "parsing/parser.ml" - in - -# 1158 "parsing/parser.mly" - ( xs ) -# 5995 "parsing/parser.ml" - - in - -# 2195 "parsing/parser.mly" - ( params ) -# 6001 "parsing/parser.ml" - - in - -# 2199 "parsing/parser.mly" - ( tys ) -# 6007 "parsing/parser.ml" - - in - -# 2052 "parsing/parser.mly" - ( Pcl_constr(cid, tys) ) -# 6013 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1077 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 6023 "parsing/parser.ml" - - in + let _2_inlined1 : unit = Obj.magic _2_inlined1 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _1 : (Longident.t) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Longident.t) = let _3 = +# 4084 "parsing/parser.mly" + ( "::" ) +# 6231 "parsing/parser.ml" + in -# 2059 "parsing/parser.mly" - ( _1 ) -# 6029 "parsing/parser.ml" +# 4099 "parsing/parser.mly" + ( Ldot(_1,_3) ) +# 6236 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6038,105 +6245,38 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xss; - MenhirLib.EngineTypes.startp = _startpos_xss_; - MenhirLib.EngineTypes.endp = _endpos_xss_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let xss : (Parsetree.class_field list list) = Obj.magic xss in - let _1_inlined2 : (Parsetree.pattern) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _3 : unit = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = - let _3 = - let _1 = _1_inlined2 in - let _2 = - let _1 = - let _1 = -# 260 "" - ( List.flatten xss ) -# 6088 "parsing/parser.ml" - in - -# 2086 "parsing/parser.mly" - ( _1 ) -# 6093 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - -# 1018 "parsing/parser.mly" - ( extra_cstr _startpos _endpos _1 ) -# 6102 "parsing/parser.ml" - - in - -# 2073 "parsing/parser.mly" - ( Cstr.mk _1 _2 ) -# 6108 "parsing/parser.ml" - - in - let _2 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 6116 "parsing/parser.ml" - - in - let _loc__4_ = (_startpos__4_, _endpos__4_) in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - -# 2054 "parsing/parser.mly" - ( unclosed "object" _loc__1_ "end" _loc__4_ ) -# 6124 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1077 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 6134 "parsing/parser.ml" - - in + let _endpos = _endpos__3_ in + let _v : (Longident.t) = let _1 = +# 4084 "parsing/parser.mly" + ( "::" ) +# 6275 "parsing/parser.ml" + in -# 2059 "parsing/parser.mly" - ( _1 ) -# 6140 "parsing/parser.ml" +# 4100 "parsing/parser.mly" + ( Lident _1 ) +# 6280 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6148,64 +6288,20 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let _4 : (Parsetree.class_type) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.class_expr) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _1 : (Asttypes.label) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = -# 2056 "parsing/parser.mly" - ( Pcl_constraint(_2, _4) ) -# 6194 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1077 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 6203 "parsing/parser.ml" - - in - -# 2059 "parsing/parser.mly" - ( _1 ) -# 6209 "parsing/parser.ml" + let _endpos = _endpos__1_ in + let _v : (Longident.t) = +# 4101 "parsing/parser.mly" + ( Lident _1 ) +# 6305 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6218,67 +6314,33 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let _4 : (Parsetree.class_type) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.class_expr) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _3 : (Parsetree.core_type) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (Parsetree.core_type) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = - let _loc__5_ = (_startpos__5_, _endpos__5_) in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - -# 2058 "parsing/parser.mly" - ( unclosed "(" _loc__1_ ")" _loc__5_ ) -# 6266 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1077 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 6276 "parsing/parser.ml" - - in - -# 2059 "parsing/parser.mly" - ( _1 ) -# 6282 "parsing/parser.ml" + let _endpos = _endpos__3_ in + let _v : (Parsetree.core_type * Parsetree.core_type) = +# 2324 "parsing/parser.mly" + ( _1, _3 ) +# 6344 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6290,89 +6352,57 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xss; - MenhirLib.EngineTypes.startp = _startpos_xss_; - MenhirLib.EngineTypes.endp = _endpos_xss_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = cty; + MenhirLib.EngineTypes.startp = _startpos_cty_; + MenhirLib.EngineTypes.endp = _endpos_cty_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let xss : (Parsetree.class_field list list) = Obj.magic xss in - let _1_inlined2 : (Parsetree.pattern) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let cty : (Parsetree.core_type) = Obj.magic cty in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Parsetree.class_expr) = let _3 = - let _1 = _1_inlined2 in - let _2 = - let _1 = - let _1 = -# 260 "" - ( List.flatten xss ) -# 6339 "parsing/parser.ml" - in + let _startpos = _startpos_cty_ in + let _endpos = _endpos_cty_ in + let _v : (Parsetree.constructor_arguments) = let tys = + let xs = + let xs = + let x = + let gbl = +# 4225 "parsing/parser.mly" + ( Nothing ) +# 6373 "parsing/parser.ml" + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in + let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in + +# 3564 "parsing/parser.mly" + ( + mkcty_global_maybe gbl cty (make_loc _loc_gbl_) +) +# 6382 "parsing/parser.ml" + + in -# 2086 "parsing/parser.mly" - ( _1 ) -# 6344 "parsing/parser.ml" +# 1213 "parsing/parser.mly" + ( [ x ] ) +# 6388 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in -# 1018 "parsing/parser.mly" - ( extra_cstr _startpos _endpos _1 ) -# 6353 "parsing/parser.ml" +# 253 "" + ( List.rev xs ) +# 6394 "parsing/parser.ml" in -# 2073 "parsing/parser.mly" - ( Cstr.mk _1 _2 ) -# 6359 "parsing/parser.ml" - - in - let _2 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 6367 "parsing/parser.ml" +# 1233 "parsing/parser.mly" + ( xs ) +# 6400 "parsing/parser.ml" in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2061 "parsing/parser.mly" - ( mkclass ~loc:_sloc ~attrs:_2 (Pcl_structure _3) ) -# 6376 "parsing/parser.ml" +# 3572 "parsing/parser.mly" + ( Pcstr_tuple tys ) +# 6406 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6384,20 +6414,64 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = cty; + MenhirLib.EngineTypes.startp = _startpos_cty_; + MenhirLib.EngineTypes.endp = _endpos_cty_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _1 : (Parsetree.class_type) = Obj.magic _1 in + let cty : (Parsetree.core_type) = Obj.magic cty in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.class_type) = -# 2164 "parsing/parser.mly" - ( _1 ) -# 6401 "parsing/parser.ml" + let _endpos = _endpos_cty_ in + let _v : (Parsetree.constructor_arguments) = let tys = + let xs = + let xs = + let x = + let gbl = +# 4226 "parsing/parser.mly" + ( Global ) +# 6442 "parsing/parser.ml" + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in + let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in + +# 3564 "parsing/parser.mly" + ( + mkcty_global_maybe gbl cty (make_loc _loc_gbl_) +) +# 6451 "parsing/parser.ml" + + in + +# 1213 "parsing/parser.mly" + ( [ x ] ) +# 6457 "parsing/parser.ml" + + in + +# 253 "" + ( List.rev xs ) +# 6463 "parsing/parser.ml" + + in + +# 1233 "parsing/parser.mly" + ( xs ) +# 6469 "parsing/parser.ml" + + in + +# 3572 "parsing/parser.mly" + ( Pcstr_tuple tys ) +# 6475 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6410,63 +6484,63 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = codomain; - MenhirLib.EngineTypes.startp = _startpos_codomain_; - MenhirLib.EngineTypes.endp = _endpos_codomain_; + MenhirLib.EngineTypes.semv = cty; + MenhirLib.EngineTypes.startp = _startpos_cty_; + MenhirLib.EngineTypes.endp = _endpos_cty_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = domain; - MenhirLib.EngineTypes.startp = _startpos_domain_; - MenhirLib.EngineTypes.endp = _endpos_domain_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = label; - MenhirLib.EngineTypes.startp = _startpos_label_; - MenhirLib.EngineTypes.endp = _endpos_label_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let codomain : (Parsetree.class_type) = Obj.magic codomain in - let _3 : unit = Obj.magic _3 in - let domain : (Parsetree.core_type) = Obj.magic domain in - let label : (string) = Obj.magic label in + let cty : (Parsetree.core_type) = Obj.magic cty in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_label_ in - let _endpos = _endpos_codomain_ in - let _v : (Parsetree.class_type) = let _1 = - let _1 = - let label = -# 3692 "parsing/parser.mly" - ( Optional label ) -# 6449 "parsing/parser.ml" - in + let _startpos = _startpos__1_ in + let _endpos = _endpos_cty_ in + let _v : (Parsetree.constructor_arguments) = let tys = + let xs = + let xs = + let x = + let gbl = +# 4227 "parsing/parser.mly" + ( Nonlocal ) +# 6511 "parsing/parser.ml" + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in + let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in + +# 3564 "parsing/parser.mly" + ( + mkcty_global_maybe gbl cty (make_loc _loc_gbl_) +) +# 6520 "parsing/parser.ml" + + in + +# 1213 "parsing/parser.mly" + ( [ x ] ) +# 6526 "parsing/parser.ml" + + in -# 2170 "parsing/parser.mly" - ( Pcty_arrow(label, domain, codomain) ) -# 6454 "parsing/parser.ml" +# 253 "" + ( List.rev xs ) +# 6532 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1071 "parsing/parser.mly" - ( mkcty ~loc:_sloc _1 ) -# 6464 "parsing/parser.ml" +# 1233 "parsing/parser.mly" + ( xs ) +# 6538 "parsing/parser.ml" in -# 2171 "parsing/parser.mly" - ( _1 ) -# 6470 "parsing/parser.ml" +# 3572 "parsing/parser.mly" + ( Pcstr_tuple tys ) +# 6544 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6479,74 +6553,71 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = codomain; - MenhirLib.EngineTypes.startp = _startpos_codomain_; - MenhirLib.EngineTypes.endp = _endpos_codomain_; + MenhirLib.EngineTypes.semv = cty; + MenhirLib.EngineTypes.startp = _startpos_cty_; + MenhirLib.EngineTypes.endp = _endpos_cty_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = domain; - MenhirLib.EngineTypes.startp = _startpos_domain_; - MenhirLib.EngineTypes.endp = _endpos_domain_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = label; - MenhirLib.EngineTypes.startp = _startpos_label_; - MenhirLib.EngineTypes.endp = _endpos_label_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let codomain : (Parsetree.class_type) = Obj.magic codomain in - let _3 : unit = Obj.magic _3 in - let domain : (Parsetree.core_type) = Obj.magic domain in + let cty : (Parsetree.core_type) = Obj.magic cty in let _2 : unit = Obj.magic _2 in - let label : ( -# 838 "parsing/parser.mly" - (string) -# 6519 "parsing/parser.ml" - ) = Obj.magic label in + let xs : (Parsetree.core_type list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_label_ in - let _endpos = _endpos_codomain_ in - let _v : (Parsetree.class_type) = let _1 = - let _1 = - let label = -# 3694 "parsing/parser.mly" - ( Labelled label ) -# 6529 "parsing/parser.ml" - in + let _startpos = _startpos_xs_ in + let _endpos = _endpos_cty_ in + let _v : (Parsetree.constructor_arguments) = let tys = + let xs = + let xs = + let x = + let _endpos__0_ = _endpos__2_ in + let gbl = +# 4225 "parsing/parser.mly" + ( Nothing ) +# 6588 "parsing/parser.ml" + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in + let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in + +# 3564 "parsing/parser.mly" + ( + mkcty_global_maybe gbl cty (make_loc _loc_gbl_) +) +# 6597 "parsing/parser.ml" + + in + +# 1217 "parsing/parser.mly" + ( x :: xs ) +# 6603 "parsing/parser.ml" + + in -# 2170 "parsing/parser.mly" - ( Pcty_arrow(label, domain, codomain) ) -# 6534 "parsing/parser.ml" +# 253 "" + ( List.rev xs ) +# 6609 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1071 "parsing/parser.mly" - ( mkcty ~loc:_sloc _1 ) -# 6544 "parsing/parser.ml" +# 1233 "parsing/parser.mly" + ( xs ) +# 6615 "parsing/parser.ml" in -# 2171 "parsing/parser.mly" - ( _1 ) -# 6550 "parsing/parser.ml" +# 3572 "parsing/parser.mly" + ( Pcstr_tuple tys ) +# 6621 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6559,56 +6630,77 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = codomain; - MenhirLib.EngineTypes.startp = _startpos_codomain_; - MenhirLib.EngineTypes.endp = _endpos_codomain_; + MenhirLib.EngineTypes.semv = cty; + MenhirLib.EngineTypes.startp = _startpos_cty_; + MenhirLib.EngineTypes.endp = _endpos_cty_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = domain; - MenhirLib.EngineTypes.startp = _startpos_domain_; - MenhirLib.EngineTypes.endp = _endpos_domain_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; } = _menhir_stack in - let codomain : (Parsetree.class_type) = Obj.magic codomain in - let _3 : unit = Obj.magic _3 in - let domain : (Parsetree.core_type) = Obj.magic domain in + let cty : (Parsetree.core_type) = Obj.magic cty in + let _1 : unit = Obj.magic _1 in + let _2 : unit = Obj.magic _2 in + let xs : (Parsetree.core_type list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_domain_ in - let _endpos = _endpos_codomain_ in - let _v : (Parsetree.class_type) = let _1 = - let _1 = - let label = -# 3696 "parsing/parser.mly" - ( Nolabel ) -# 6591 "parsing/parser.ml" - in + let _startpos = _startpos_xs_ in + let _endpos = _endpos_cty_ in + let _v : (Parsetree.constructor_arguments) = let tys = + let xs = + let xs = + let x = + let gbl = +# 4226 "parsing/parser.mly" + ( Global ) +# 6671 "parsing/parser.ml" + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in + let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in + +# 3564 "parsing/parser.mly" + ( + mkcty_global_maybe gbl cty (make_loc _loc_gbl_) +) +# 6680 "parsing/parser.ml" + + in + +# 1217 "parsing/parser.mly" + ( x :: xs ) +# 6686 "parsing/parser.ml" + + in -# 2170 "parsing/parser.mly" - ( Pcty_arrow(label, domain, codomain) ) -# 6596 "parsing/parser.ml" +# 253 "" + ( List.rev xs ) +# 6692 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_domain_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1071 "parsing/parser.mly" - ( mkcty ~loc:_sloc _1 ) -# 6606 "parsing/parser.ml" +# 1233 "parsing/parser.mly" + ( xs ) +# 6698 "parsing/parser.ml" in -# 2171 "parsing/parser.mly" - ( _1 ) -# 6612 "parsing/parser.ml" +# 3572 "parsing/parser.mly" + ( Pcstr_tuple tys ) +# 6704 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6621,144 +6713,116 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = bs; - MenhirLib.EngineTypes.startp = _startpos_bs_; - MenhirLib.EngineTypes.endp = _endpos_bs_; + MenhirLib.EngineTypes.semv = cty; + MenhirLib.EngineTypes.startp = _startpos_cty_; + MenhirLib.EngineTypes.endp = _endpos_cty_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = csig; - MenhirLib.EngineTypes.startp = _startpos_csig_; - MenhirLib.EngineTypes.endp = _endpos_csig_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _8; - MenhirLib.EngineTypes.startp = _startpos__8_; - MenhirLib.EngineTypes.endp = _endpos__8_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = params; - MenhirLib.EngineTypes.startp = _startpos_params_; - MenhirLib.EngineTypes.endp = _endpos_params_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = virt; - MenhirLib.EngineTypes.startp = _startpos_virt_; - MenhirLib.EngineTypes.endp = _endpos_virt_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ext; - MenhirLib.EngineTypes.startp = _startpos_ext_; - MenhirLib.EngineTypes.endp = _endpos_ext_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let bs : (Parsetree.class_type_declaration list) = Obj.magic bs in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let csig : (Parsetree.class_type) = Obj.magic csig in - let _8 : unit = Obj.magic _8 in - let _1_inlined2 : ( -# 838 "parsing/parser.mly" - (string) -# 6697 "parsing/parser.ml" - ) = Obj.magic _1_inlined2 in - let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in - let virt : (Asttypes.virtual_flag) = Obj.magic virt in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in - let _2 : unit = Obj.magic _2 in + let cty : (Parsetree.core_type) = Obj.magic cty in let _1 : unit = Obj.magic _1 in + let _2 : unit = Obj.magic _2 in + let xs : (Parsetree.core_type list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos_bs_ in - let _v : (string Asttypes.loc option * Parsetree.class_type_declaration list) = let _1 = - let a = - let attrs2 = - let _1 = _1_inlined3 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 6715 "parsing/parser.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 6727 "parsing/parser.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in + let _startpos = _startpos_xs_ in + let _endpos = _endpos_cty_ in + let _v : (Parsetree.constructor_arguments) = let tys = + let xs = + let xs = + let x = + let gbl = +# 4227 "parsing/parser.mly" + ( Nonlocal ) +# 6754 "parsing/parser.ml" + in + let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in + let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in + +# 3564 "parsing/parser.mly" + ( + mkcty_global_maybe gbl cty (make_loc _loc_gbl_) +) +# 6763 "parsing/parser.ml" + + in -# 4228 "parsing/parser.mly" - ( _1 ) -# 6735 "parsing/parser.ml" +# 1217 "parsing/parser.mly" + ( x :: xs ) +# 6769 "parsing/parser.ml" in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2309 "parsing/parser.mly" - ( - let attrs = attrs1 @ attrs2 in - let loc = make_loc _sloc in - let docs = symbol_docs _sloc in - ext, - Ci.mk id csig ~virt ~params ~attrs ~loc ~docs - ) -# 6750 "parsing/parser.ml" +# 253 "" + ( List.rev xs ) +# 6775 "parsing/parser.ml" in -# 1255 "parsing/parser.mly" - ( let (x, b) = a in x, b :: bs ) -# 6756 "parsing/parser.ml" +# 1233 "parsing/parser.mly" + ( xs ) +# 6781 "parsing/parser.ml" in -# 2297 "parsing/parser.mly" - ( _1 ) -# 6762 "parsing/parser.ml" +# 3572 "parsing/parser.mly" + ( Pcstr_tuple tys ) +# 6787 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.label_declaration list) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Parsetree.constructor_arguments) = +# 3574 "parsing/parser.mly" + ( Pcstr_record _2 ) +# 6826 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6776,14 +6840,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Longident.t) = -# 3996 "parsing/parser.mly" - ( _1 ) -# 6787 "parsing/parser.ml" + let _v : (Parsetree.constructor_declaration list) = +# 3482 "parsing/parser.mly" + ( [] ) +# 6851 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6795,39 +6859,55 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = xs; MenhirLib.EngineTypes.startp = _startpos_xs_; MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let xs : (Jane_syntax.Comprehensions.clause_binding list) = Obj.magic xs in - let _1 : unit = Obj.magic _1 in + let xs : (Parsetree.constructor_declaration list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in + let _startpos = _startpos_xs_ in let _endpos = _endpos_xs_ in - let _v : (Jane_syntax.Comprehensions.clause) = let _2 = - let xs = -# 253 "" + let _v : (Parsetree.constructor_declaration list) = let cs = +# 1318 "parsing/parser.mly" ( List.rev xs ) -# 6820 "parsing/parser.ml" - in - -# 1158 "parsing/parser.mly" - ( xs ) -# 6825 "parsing/parser.ml" - - in +# 6876 "parsing/parser.ml" + in -# 2601 "parsing/parser.mly" - ( Jane_syntax.Comprehensions.For _2 ) -# 6831 "parsing/parser.ml" +# 3484 "parsing/parser.mly" + ( cs ) +# 6881 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Parsetree.core_type) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.core_type) = let _1 = +# 3743 "parsing/parser.mly" + ( _1 ) +# 6906 "parsing/parser.ml" + in + +# 3733 "parsing/parser.mly" + ( _1 ) +# 6911 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6851,15 +6931,15 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : (Parsetree.expression) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _2 : (Parsetree.attribute) = Obj.magic _2 in + let _1 : (Parsetree.core_type) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Jane_syntax.Comprehensions.clause) = -# 2603 "parsing/parser.mly" - ( Jane_syntax.Comprehensions.When _2 ) -# 6863 "parsing/parser.ml" + let _v : (Parsetree.core_type) = +# 3735 "parsing/parser.mly" + ( Typ.attr _1 _2 ) +# 6943 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6871,39 +6951,20 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _3 : (Jane_syntax.Comprehensions.iterator) = Obj.magic _3 in - let _2 : (Parsetree.pattern) = Obj.magic _2 in - let _1 : (Parsetree.attributes) = Obj.magic _1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Jane_syntax.Comprehensions.clause_binding) = let _1 = -# 4228 "parsing/parser.mly" - ( _1 ) -# 6902 "parsing/parser.ml" - in - -# 2584 "parsing/parser.mly" - ( Jane_syntax.Comprehensions.{ pattern = _2 ; iterator = _3 ; attributes = _1 } ) -# 6907 "parsing/parser.ml" + let _endpos = _endpos__1_ in + let _v : (Asttypes.direction_flag) = +# 4203 "parsing/parser.mly" + ( Upto ) +# 6968 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6915,65 +6976,45 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _5 : (Parsetree.expression) = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.pattern) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.attributes) = Obj.magic _1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Jane_syntax.Comprehensions.clause_binding) = let _1 = -# 4228 "parsing/parser.mly" - ( _1 ) -# 6960 "parsing/parser.ml" + let _endpos = _endpos__1_ in + let _v : (Asttypes.direction_flag) = +# 4204 "parsing/parser.mly" + ( Downto ) +# 6993 "parsing/parser.ml" in - let _endpos = _endpos__5_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _loc__2_ = (_startpos__2_, _endpos__2_) in - let _sloc = (_symbolstartpos, _endpos) in - -# 2591 "parsing/parser.mly" - ( Jane_syntax.Comprehensions. - { pattern = _3 - ; iterator = In (mkexp_stack ~loc:_sloc ~kwd_loc:(_loc__2_) _5) - ; attributes = _1 - } - ) -# 6977 "parsing/parser.ml" + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Parsetree.expression) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.expression) = +# 2519 "parsing/parser.mly" + ( _1 ) +# 7018 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6986,425 +7027,107 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; }; }; } = _menhir_stack in - let _4 : (Parsetree.expression) = Obj.magic _4 in - let _3 : (Asttypes.direction_flag) = Obj.magic _3 in - let _2 : (Parsetree.expression) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Jane_syntax.Comprehensions.iterator) = -# 2577 "parsing/parser.mly" - ( Jane_syntax.Comprehensions.Range { start = _2 ; stop = _4 ; direction = _3 } ) -# 7023 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _2 : (Parsetree.expression) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Jane_syntax.Comprehensions.iterator) = -# 2579 "parsing/parser.mly" - ( Jane_syntax.Comprehensions.In _2 ) -# 7055 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : ( -# 823 "parsing/parser.mly" - (string * char option) -# 7076 "parsing/parser.ml" - ) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.constant) = -# 3879 "parsing/parser.mly" - ( let (n, m) = _1 in Pconst_integer (n, m) ) -# 7084 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : ( -# 780 "parsing/parser.mly" - (char) -# 7105 "parsing/parser.ml" - ) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.constant) = -# 3880 "parsing/parser.mly" - ( Pconst_char _1 ) -# 7113 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : ( -# 878 "parsing/parser.mly" - (string * Location.t * string option) -# 7134 "parsing/parser.ml" - ) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.constant) = -# 3881 "parsing/parser.mly" - ( let (s, strloc, d) = _1 in Pconst_string (s, strloc, d) ) -# 7142 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : ( -# 801 "parsing/parser.mly" - (string * char option) -# 7163 "parsing/parser.ml" - ) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.constant) = -# 3882 "parsing/parser.mly" - ( let (f, m) = _1 in Pconst_float (f, m) ) -# 7171 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _2 : unit = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Asttypes.label) = -# 3953 "parsing/parser.mly" - ( "[]" ) -# 7203 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in + let _7 : (Parsetree.expression) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _5 : (Parsetree.module_expr) = Obj.magic _5 in + let _1_inlined3 : (string option) = Obj.magic _1_inlined3 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Asttypes.label) = -# 3954 "parsing/parser.mly" - ( "()" ) -# 7235 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Asttypes.label) = -# 3955 "parsing/parser.mly" - ( "false" ) -# 7260 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Asttypes.label) = -# 3956 "parsing/parser.mly" - ( "true" ) -# 7285 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : ( -# 891 "parsing/parser.mly" - (string) -# 7306 "parsing/parser.ml" - ) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in + let _endpos = _endpos__7_ in + let _v : (Parsetree.expression) = let _1 = + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 7098 "parsing/parser.ml" + + in + let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 7108 "parsing/parser.ml" + + in + +# 4382 "parsing/parser.mly" + ( _1, _2 ) +# 7114 "parsing/parser.ml" + + in + +# 2554 "parsing/parser.mly" + ( Pexp_letmodule(_4, _5, _7), _3 ) +# 7120 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__7_ in let _endpos = _endpos__1_ in - let _v : (Asttypes.label) = -# 3959 "parsing/parser.mly" - ( _1 ) -# 7314 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Asttypes.label) = let _1 = -# 3950 "parsing/parser.mly" - ( "::" ) -# 7353 "parsing/parser.ml" - in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3960 "parsing/parser.mly" - ( _1 ) -# 7358 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Asttypes.label) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Asttypes.label) = -# 3961 "parsing/parser.mly" - ( _1 ) -# 7383 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Longident.t) = -# 3964 "parsing/parser.mly" - ( _1 ) -# 7408 "parsing/parser.ml" +# 2521 "parsing/parser.mly" + ( let desc, attrs = _1 in + mkexp_attrs ~loc:_sloc desc attrs ) +# 7131 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7417,222 +7140,135 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _1_inlined4; + MenhirLib.EngineTypes.startp = _startpos__1_inlined4_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; }; }; }; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in - let _1 : (Longident.t) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Longident.t) = let _3 = -# 3950 "parsing/parser.mly" - ( "::" ) -# 7461 "parsing/parser.ml" - in - -# 3965 "parsing/parser.mly" - ( Ldot(_1,_3) ) -# 7466 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : unit = Obj.magic _3 in + let _6 : (Parsetree.expression) = Obj.magic _6 in + let _5 : unit = Obj.magic _5 in + let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in + let _2_inlined1 : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic _2_inlined1 in + let _1_inlined3 : (Asttypes.label) = Obj.magic _1_inlined3 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Longident.t) = let _1 = -# 3950 "parsing/parser.mly" - ( "::" ) -# 7505 "parsing/parser.ml" - in - -# 3966 "parsing/parser.mly" - ( Lident _1 ) -# 7510 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Asttypes.label) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Longident.t) = -# 3967 "parsing/parser.mly" - ( Lident _1 ) -# 7535 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : (Parsetree.core_type) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.core_type) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.core_type * Parsetree.core_type) = -# 2253 "parsing/parser.mly" - ( _1, _3 ) -# 7574 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = cty; - MenhirLib.EngineTypes.startp = _startpos_cty_; - MenhirLib.EngineTypes.endp = _endpos_cty_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let cty : (Parsetree.core_type) = Obj.magic cty in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_cty_ in - let _endpos = _endpos_cty_ in - let _v : (Parsetree.constructor_arguments) = let tys = - let xs = - let xs = - let x = - let gbl = -# 4084 "parsing/parser.mly" - ( Nothing ) -# 7603 "parsing/parser.ml" - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in - let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in - -# 3460 "parsing/parser.mly" - ( - mkcty_global_maybe gbl cty (make_loc _loc_gbl_) -) -# 7612 "parsing/parser.ml" - - in + let _endpos = _endpos__6_ in + let _v : (Parsetree.expression) = let _1 = + let _4 = + let (_endpos__1_inlined1_, _endpos__1_, _startpos__1_, _1_inlined1, _2, _1) = (_endpos__1_inlined4_, _endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined4, _2_inlined1, _1_inlined3) in + let _3 = + let _1 = _1_inlined1 in -# 1142 "parsing/parser.mly" - ( [ x ] ) -# 7618 "parsing/parser.ml" +# 4369 "parsing/parser.mly" + ( _1 ) +# 7218 "parsing/parser.ml" in + let _endpos__3_ = _endpos__1_inlined1_ in + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 7229 "parsing/parser.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 253 "" - ( List.rev xs ) -# 7624 "parsing/parser.ml" +# 3546 "parsing/parser.mly" + ( let vars, args, res = _2 in + Te.decl _1 ~vars ~args ?res ~attrs:_3 ~loc:(make_loc _sloc) ) +# 7239 "parsing/parser.ml" + + in + let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 7249 "parsing/parser.ml" + + in + +# 4382 "parsing/parser.mly" + ( _1, _2 ) +# 7255 "parsing/parser.ml" in -# 1162 "parsing/parser.mly" - ( xs ) -# 7630 "parsing/parser.ml" +# 2556 "parsing/parser.mly" + ( Pexp_letexception(_4, _6), _3 ) +# 7261 "parsing/parser.ml" in + let _endpos__1_ = _endpos__6_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3468 "parsing/parser.mly" - ( Pcstr_tuple tys ) -# 7636 "parsing/parser.ml" +# 2521 "parsing/parser.mly" + ( let desc, attrs = _1 in + mkexp_attrs ~loc:_sloc desc attrs ) +# 7272 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7645,63 +7281,96 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = cty; - MenhirLib.EngineTypes.startp = _startpos_cty_; - MenhirLib.EngineTypes.endp = _endpos_cty_; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; }; } = _menhir_stack in - let cty : (Parsetree.core_type) = Obj.magic cty in + let _7 : (Parsetree.expression) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _5 : (Parsetree.module_expr) = Obj.magic _5 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_cty_ in - let _v : (Parsetree.constructor_arguments) = let tys = - let xs = - let xs = - let x = - let gbl = -# 4085 "parsing/parser.mly" - ( Global ) -# 7672 "parsing/parser.ml" - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in - let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in - -# 3460 "parsing/parser.mly" - ( - mkcty_global_maybe gbl cty (make_loc _loc_gbl_) -) -# 7681 "parsing/parser.ml" - - in + let _endpos = _endpos__7_ in + let _v : (Parsetree.expression) = let _1 = + let _4 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in -# 1142 "parsing/parser.mly" - ( [ x ] ) -# 7687 "parsing/parser.ml" +# 4369 "parsing/parser.mly" + ( _1 ) +# 7344 "parsing/parser.ml" in -# 253 "" - ( List.rev xs ) -# 7693 "parsing/parser.ml" +# 4382 "parsing/parser.mly" + ( _1, _2 ) +# 7350 "parsing/parser.ml" in + let _3 = +# 4269 "parsing/parser.mly" + ( Fresh ) +# 7356 "parsing/parser.ml" + in -# 1162 "parsing/parser.mly" - ( xs ) -# 7699 "parsing/parser.ml" +# 2558 "parsing/parser.mly" + ( let open_loc = make_loc (_startpos__2_, _endpos__5_) in + let od = Opn.mk _5 ~override:_3 ~loc:open_loc in + Pexp_open(od, _7), _4 ) +# 7363 "parsing/parser.ml" in + let _endpos__1_ = _endpos__7_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3468 "parsing/parser.mly" - ( Pcstr_tuple tys ) -# 7705 "parsing/parser.ml" +# 2521 "parsing/parser.mly" + ( let desc, attrs = _1 in + mkexp_attrs ~loc:_sloc desc attrs ) +# 7374 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7714,63 +7383,103 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = cty; - MenhirLib.EngineTypes.startp = _startpos_cty_; - MenhirLib.EngineTypes.endp = _endpos_cty_; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; }; } = _menhir_stack in - let cty : (Parsetree.core_type) = Obj.magic cty in + let _7 : (Parsetree.expression) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _5 : (Parsetree.module_expr) = Obj.magic _5 in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_cty_ in - let _v : (Parsetree.constructor_arguments) = let tys = - let xs = - let xs = - let x = - let gbl = -# 4086 "parsing/parser.mly" - ( Nonlocal ) -# 7741 "parsing/parser.ml" - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in - let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in - -# 3460 "parsing/parser.mly" - ( - mkcty_global_maybe gbl cty (make_loc _loc_gbl_) -) -# 7750 "parsing/parser.ml" - - in + let _endpos = _endpos__7_ in + let _v : (Parsetree.expression) = let _1 = + let _4 = + let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let _2 = + let _1 = _1_inlined1 in -# 1142 "parsing/parser.mly" - ( [ x ] ) -# 7756 "parsing/parser.ml" +# 4369 "parsing/parser.mly" + ( _1 ) +# 7453 "parsing/parser.ml" in -# 253 "" - ( List.rev xs ) -# 7762 "parsing/parser.ml" +# 4382 "parsing/parser.mly" + ( _1, _2 ) +# 7459 "parsing/parser.ml" in + let _3 = +# 4270 "parsing/parser.mly" + ( Override ) +# 7465 "parsing/parser.ml" + in -# 1162 "parsing/parser.mly" - ( xs ) -# 7768 "parsing/parser.ml" +# 2558 "parsing/parser.mly" + ( let open_loc = make_loc (_startpos__2_, _endpos__5_) in + let od = Opn.mk _5 ~override:_3 ~loc:open_loc in + Pexp_open(od, _7), _4 ) +# 7472 "parsing/parser.ml" in + let _endpos__1_ = _endpos__7_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3468 "parsing/parser.mly" - ( Pcstr_tuple tys ) -# 7774 "parsing/parser.ml" +# 2521 "parsing/parser.mly" + ( let desc, attrs = _1 in + mkexp_attrs ~loc:_sloc desc attrs ) +# 7483 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7783,71 +7492,87 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = cty; - MenhirLib.EngineTypes.startp = _startpos_cty_; - MenhirLib.EngineTypes.endp = _endpos_cty_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; } = _menhir_stack in - let cty : (Parsetree.core_type) = Obj.magic cty in - let _2 : unit = Obj.magic _2 in - let xs : (Parsetree.core_type list) = Obj.magic xs in + let xs : (Parsetree.case list) = Obj.magic xs in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_xs_ in - let _endpos = _endpos_cty_ in - let _v : (Parsetree.constructor_arguments) = let tys = - let xs = + let _startpos = _startpos__1_ in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.expression) = let _1 = + let _3 = let xs = - let x = - let _endpos__0_ = _endpos__2_ in - let gbl = -# 4084 "parsing/parser.mly" - ( Nothing ) -# 7818 "parsing/parser.ml" - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in - let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in - -# 3460 "parsing/parser.mly" - ( - mkcty_global_maybe gbl cty (make_loc _loc_gbl_) -) -# 7827 "parsing/parser.ml" - - in + let xs = +# 253 "" + ( List.rev xs ) +# 7532 "parsing/parser.ml" + in -# 1146 "parsing/parser.mly" - ( x :: xs ) -# 7833 "parsing/parser.ml" +# 1290 "parsing/parser.mly" + ( xs ) +# 7537 "parsing/parser.ml" in -# 253 "" - ( List.rev xs ) -# 7839 "parsing/parser.ml" +# 2984 "parsing/parser.mly" + ( xs ) +# 7543 "parsing/parser.ml" + + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 7553 "parsing/parser.ml" + + in + +# 4382 "parsing/parser.mly" + ( _1, _2 ) +# 7559 "parsing/parser.ml" in -# 1162 "parsing/parser.mly" - ( xs ) -# 7845 "parsing/parser.ml" +# 2562 "parsing/parser.mly" + ( Pexp_function _3, _2 ) +# 7565 "parsing/parser.ml" in + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3468 "parsing/parser.mly" - ( Pcstr_tuple tys ) -# 7851 "parsing/parser.ml" +# 2521 "parsing/parser.mly" + ( let desc, attrs = _1 in + mkexp_attrs ~loc:_sloc desc attrs ) +# 7576 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7860,77 +7585,76 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = cty; - MenhirLib.EngineTypes.startp = _startpos_cty_; - MenhirLib.EngineTypes.endp = _endpos_cty_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; }; } = _menhir_stack in - let cty : (Parsetree.core_type) = Obj.magic cty in + let _4 : (Parsetree.expression) = Obj.magic _4 in + let _3 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _3 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in - let _2 : unit = Obj.magic _2 in - let xs : (Parsetree.core_type list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_xs_ in - let _endpos = _endpos_cty_ in - let _v : (Parsetree.constructor_arguments) = let tys = - let xs = - let xs = - let x = - let gbl = -# 4085 "parsing/parser.mly" - ( Global ) -# 7901 "parsing/parser.ml" - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in - let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in - -# 3460 "parsing/parser.mly" - ( - mkcty_global_maybe gbl cty (make_loc _loc_gbl_) -) -# 7910 "parsing/parser.ml" - - in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : (Parsetree.expression) = let _1 = + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in -# 1146 "parsing/parser.mly" - ( x :: xs ) -# 7916 "parsing/parser.ml" +# 4369 "parsing/parser.mly" + ( _1 ) +# 7634 "parsing/parser.ml" in -# 253 "" - ( List.rev xs ) -# 7922 "parsing/parser.ml" +# 4382 "parsing/parser.mly" + ( _1, _2 ) +# 7640 "parsing/parser.ml" in -# 1162 "parsing/parser.mly" - ( xs ) -# 7928 "parsing/parser.ml" +# 2564 "parsing/parser.mly" + ( let (l,o,p) = _3 in + Pexp_fun(l, o, p, _4), _2 ) +# 7647 "parsing/parser.ml" in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3468 "parsing/parser.mly" - ( Pcstr_tuple tys ) -# 7934 "parsing/parser.ml" +# 2521 "parsing/parser.mly" + ( let desc, attrs = _1 in + mkexp_attrs ~loc:_sloc desc attrs ) +# 7658 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7943,77 +7667,99 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = cty; - MenhirLib.EngineTypes.startp = _startpos_cty_; - MenhirLib.EngineTypes.endp = _endpos_cty_; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; }; }; } = _menhir_stack in - let cty : (Parsetree.core_type) = Obj.magic cty in + let _7 : (Parsetree.expression) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _5 : ((string Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in - let _2 : unit = Obj.magic _2 in - let xs : (Parsetree.core_type list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_xs_ in - let _endpos = _endpos_cty_ in - let _v : (Parsetree.constructor_arguments) = let tys = - let xs = - let xs = - let x = - let gbl = -# 4086 "parsing/parser.mly" - ( Nonlocal ) -# 7984 "parsing/parser.ml" - in - let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in - let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in - -# 3460 "parsing/parser.mly" - ( - mkcty_global_maybe gbl cty (make_loc _loc_gbl_) -) -# 7993 "parsing/parser.ml" - - in + let _startpos = _startpos__1_ in + let _endpos = _endpos__7_ in + let _v : (Parsetree.expression) = let _1 = + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in -# 1146 "parsing/parser.mly" - ( x :: xs ) -# 7999 "parsing/parser.ml" +# 4369 "parsing/parser.mly" + ( _1 ) +# 7737 "parsing/parser.ml" in -# 253 "" - ( List.rev xs ) -# 8005 "parsing/parser.ml" +# 4382 "parsing/parser.mly" + ( _1, _2 ) +# 7743 "parsing/parser.ml" in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 1162 "parsing/parser.mly" - ( xs ) -# 8011 "parsing/parser.ml" +# 2567 "parsing/parser.mly" + ( (mk_newtypes ~loc:_sloc _5 _7).pexp_desc, _2 ) +# 7752 "parsing/parser.ml" in + let _endpos__1_ = _endpos__7_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3468 "parsing/parser.mly" - ( Pcstr_tuple tys ) -# 8017 "parsing/parser.ml" +# 2521 "parsing/parser.mly" + ( let desc, attrs = _1 in + mkexp_attrs ~loc:_sloc desc attrs ) +# 7763 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8026,58 +7772,128 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _9; + MenhirLib.EngineTypes.startp = _startpos__9_; + MenhirLib.EngineTypes.endp = _endpos__9_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _8; + MenhirLib.EngineTypes.startp = _startpos__8_; + MenhirLib.EngineTypes.endp = _endpos__8_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + }; }; }; } = _menhir_stack in + let _9 : (Parsetree.expression) = Obj.magic _9 in + let _8 : unit = Obj.magic _8 in + let _7 : (Asttypes.layout_annotation) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _1_inlined3 : ( +# 909 "parsing/parser.mly" + (string) +# 7842 "parsing/parser.ml" + ) = Obj.magic _1_inlined3 in + let _4 : unit = Obj.magic _4 in let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.label_declaration list) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.constructor_arguments) = -# 3470 "parsing/parser.mly" - ( Pcstr_record _2 ) -# 8056 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in + let _endpos = _endpos__9_ in + let _v : (Parsetree.expression) = let _1 = + let _5 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 7861 "parsing/parser.ml" + + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 7871 "parsing/parser.ml" + + in + +# 4382 "parsing/parser.mly" + ( _1, _2 ) +# 7877 "parsing/parser.ml" + + in + let _endpos = _endpos__9_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2569 "parsing/parser.mly" + ( (mk_newtypes ~loc:_sloc [_5, Some _7] _9).pexp_desc, _2 ) +# 7886 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__9_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.constructor_declaration list) = -# 3378 "parsing/parser.mly" - ( [] ) -# 8081 "parsing/parser.ml" + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2521 "parsing/parser.mly" + ( let desc, attrs = _1 in + mkexp_attrs ~loc:_sloc desc attrs ) +# 7897 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8089,275 +7905,102 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = xs; MenhirLib.EngineTypes.startp = _startpos_xs_; MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let xs : (Parsetree.constructor_declaration list) = Obj.magic xs in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_xs_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.constructor_declaration list) = let cs = -# 1247 "parsing/parser.mly" - ( List.rev xs ) -# 8106 "parsing/parser.ml" - in - -# 3380 "parsing/parser.mly" - ( cs ) -# 8111 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Parsetree.core_type) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = -# 3634 "parsing/parser.mly" - ( _1 ) -# 8136 "parsing/parser.ml" - in - -# 3624 "parsing/parser.mly" - ( _1 ) -# 8141 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _2 : (Parsetree.attribute) = Obj.magic _2 in - let _1 : (Parsetree.core_type) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.core_type) = -# 3626 "parsing/parser.mly" - ( Typ.attr _1 _2 ) -# 8173 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Asttypes.direction_flag) = -# 4062 "parsing/parser.mly" - ( Upto ) -# 8198 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Asttypes.direction_flag) = -# 4063 "parsing/parser.mly" - ( Downto ) -# 8223 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Parsetree.expression) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.expression) = -# 2447 "parsing/parser.mly" - ( _1 ) -# 8248 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; }; } = _menhir_stack in - let _7 : (Parsetree.expression) = Obj.magic _7 in - let _6 : unit = Obj.magic _6 in - let _5 : (Parsetree.module_expr) = Obj.magic _5 in - let _1_inlined3 : (string option) = Obj.magic _1_inlined3 in + let xs : (Parsetree.case list) = Obj.magic xs in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__7_ in + let _endpos = _endpos_xs_ in let _v : (Parsetree.expression) = let _1 = - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _5 = + let xs = + let xs = +# 253 "" + ( List.rev xs ) +# 7960 "parsing/parser.ml" + in + +# 1290 "parsing/parser.mly" + ( xs ) +# 7965 "parsing/parser.ml" + + in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 8328 "parsing/parser.ml" +# 2984 "parsing/parser.mly" + ( xs ) +# 7971 "parsing/parser.ml" in - let _3 = + let _2 = let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 8338 "parsing/parser.ml" +# 7981 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 8344 "parsing/parser.ml" +# 7987 "parsing/parser.ml" in -# 2482 "parsing/parser.mly" - ( Pexp_letmodule(_4, _5, _7), _3 ) -# 8350 "parsing/parser.ml" +# 2571 "parsing/parser.mly" + ( Pexp_match(_3, _5), _2 ) +# 7993 "parsing/parser.ml" in - let _endpos__1_ = _endpos__7_ in + let _endpos__1_ = _endpos_xs_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2449 "parsing/parser.mly" +# 2521 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 8361 "parsing/parser.ml" +# 8004 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8370,135 +8013,101 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined4; - MenhirLib.EngineTypes.startp = _startpos__1_inlined4_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; }; } = _menhir_stack in - let _6 : (Parsetree.expression) = Obj.magic _6 in - let _5 : unit = Obj.magic _5 in - let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _2_inlined1 : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = Obj.magic _2_inlined1 in - let _1_inlined3 : (Asttypes.label) = Obj.magic _1_inlined3 in + let xs : (Parsetree.case list) = Obj.magic xs in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__6_ in + let _endpos = _endpos_xs_ in let _v : (Parsetree.expression) = let _1 = - let _4 = - let (_endpos__1_inlined1_, _endpos__1_, _startpos__1_, _1_inlined1, _2, _1) = (_endpos__1_inlined4_, _endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined4, _2_inlined1, _1_inlined3) in - let _3 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 8448 "parsing/parser.ml" - - in - let _endpos__3_ = _endpos__1_inlined1_ in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _5 = + let xs = + let xs = +# 253 "" + ( List.rev xs ) +# 8067 "parsing/parser.ml" + in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 8459 "parsing/parser.ml" +# 1290 "parsing/parser.mly" + ( xs ) +# 8072 "parsing/parser.ml" in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 3442 "parsing/parser.mly" - ( let vars, args, res = _2 in - Te.decl _1 ~vars ~args ?res ~attrs:_3 ~loc:(make_loc _sloc) ) -# 8469 "parsing/parser.ml" +# 2984 "parsing/parser.mly" + ( xs ) +# 8078 "parsing/parser.ml" in - let _3 = + let _2 = let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 8479 "parsing/parser.ml" +# 8088 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 8485 "parsing/parser.ml" +# 8094 "parsing/parser.ml" in -# 2484 "parsing/parser.mly" - ( Pexp_letexception(_4, _6), _3 ) -# 8491 "parsing/parser.ml" +# 2573 "parsing/parser.mly" + ( Pexp_try(_3, _5), _2 ) +# 8100 "parsing/parser.ml" in - let _endpos__1_ = _endpos__6_ in + let _endpos__1_ = _endpos_xs_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2449 "parsing/parser.mly" +# 2521 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 8502 "parsing/parser.ml" +# 8111 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8511,19 +8120,19 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined2; @@ -8535,72 +8144,58 @@ module Tables = struct MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; }; } = _menhir_stack in - let _7 : (Parsetree.expression) = Obj.magic _7 in - let _6 : unit = Obj.magic _6 in - let _5 : (Parsetree.module_expr) = Obj.magic _5 in + let _5 : unit = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__7_ in + let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = - let _4 = + let _2 = let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 8574 "parsing/parser.ml" +# 8176 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 8580 "parsing/parser.ml" +# 8182 "parsing/parser.ml" in - let _3 = -# 4128 "parsing/parser.mly" - ( Fresh ) -# 8586 "parsing/parser.ml" - in -# 2486 "parsing/parser.mly" - ( let open_loc = make_loc (_startpos__2_, _endpos__5_) in - let od = Opn.mk _5 ~override:_3 ~loc:open_loc in - Pexp_open(od, _7), _4 ) -# 8593 "parsing/parser.ml" +# 2575 "parsing/parser.mly" + ( syntax_error() ) +# 8188 "parsing/parser.ml" in - let _endpos__1_ = _endpos__7_ in + let _endpos__1_ = _endpos__5_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2449 "parsing/parser.mly" +# 2521 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 8604 "parsing/parser.ml" +# 8199 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8628,24 +8223,24 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -8662,43 +8257,36 @@ module Tables = struct } = _menhir_stack in let _7 : (Parsetree.expression) = Obj.magic _7 in let _6 : unit = Obj.magic _6 in - let _5 : (Parsetree.module_expr) = Obj.magic _5 in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in + let _5 : (Parsetree.expression) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.expression) = Obj.magic _3 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in let _v : (Parsetree.expression) = let _1 = - let _4 = - let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 8683 "parsing/parser.ml" +# 8278 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 8689 "parsing/parser.ml" +# 8284 "parsing/parser.ml" in - let _3 = -# 4129 "parsing/parser.mly" - ( Override ) -# 8695 "parsing/parser.ml" - in -# 2486 "parsing/parser.mly" - ( let open_loc = make_loc (_startpos__2_, _endpos__5_) in - let od = Opn.mk _5 ~override:_3 ~loc:open_loc in - Pexp_open(od, _7), _4 ) -# 8702 "parsing/parser.ml" +# 2577 "parsing/parser.mly" + ( Pexp_ifthenelse(_3, _5, Some _7), _2 ) +# 8290 "parsing/parser.ml" in let _endpos__1_ = _endpos__7_ in @@ -8706,10 +8294,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2449 "parsing/parser.mly" +# 2521 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 8713 "parsing/parser.ml" +# 8301 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8722,87 +8310,82 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; }; } = _menhir_stack in - let xs : (Parsetree.case list) = Obj.magic xs in + let _5 : (Parsetree.expression) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in + let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = - let _3 = - let xs = - let xs = -# 253 "" - ( List.rev xs ) -# 8762 "parsing/parser.ml" - in - -# 1219 "parsing/parser.mly" - ( xs ) -# 8767 "parsing/parser.ml" - - in - -# 2906 "parsing/parser.mly" - ( xs ) -# 8773 "parsing/parser.ml" - - in let _2 = let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 8783 "parsing/parser.ml" +# 8366 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 8789 "parsing/parser.ml" +# 8372 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" - ( Pexp_function _3, _2 ) -# 8795 "parsing/parser.ml" +# 2579 "parsing/parser.mly" + ( Pexp_ifthenelse(_3, _5, None), _2 ) +# 8378 "parsing/parser.ml" in - let _endpos__1_ = _endpos_xs_ in + let _endpos__1_ = _endpos__5_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2449 "parsing/parser.mly" +# 2521 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 8806 "parsing/parser.ml" +# 8389 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8815,76 +8398,89 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; }; }; } = _menhir_stack in - let _4 : (Parsetree.expression) = Obj.magic _4 in - let _3 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _3 in + let _6 : unit = Obj.magic _6 in + let _5 : (Parsetree.expression) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in + let _endpos = _endpos__6_ in let _v : (Parsetree.expression) = let _1 = let _2 = let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 8864 "parsing/parser.ml" +# 8461 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 8870 "parsing/parser.ml" +# 8467 "parsing/parser.ml" in -# 2492 "parsing/parser.mly" - ( let (l,o,p) = _3 in - Pexp_fun(l, o, p, _4), _2 ) -# 8877 "parsing/parser.ml" +# 2581 "parsing/parser.mly" + ( Pexp_while(_3, _5), _2 ) +# 8473 "parsing/parser.ml" in - let _endpos__1_ = _endpos__4_ in + let _endpos__1_ = _endpos__6_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2449 "parsing/parser.mly" +# 2521 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 8888 "parsing/parser.ml" +# 8484 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8897,45 +8493,63 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.semv = _10; + MenhirLib.EngineTypes.startp = _startpos__10_; + MenhirLib.EngineTypes.endp = _endpos__10_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = _9; + MenhirLib.EngineTypes.startp = _startpos__9_; + MenhirLib.EngineTypes.endp = _endpos__9_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _8; + MenhirLib.EngineTypes.startp = _startpos__8_; + MenhirLib.EngineTypes.endp = _endpos__8_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; }; }; @@ -8944,57 +8558,126 @@ module Tables = struct }; }; } = _menhir_stack in + let _10 : unit = Obj.magic _10 in + let _9 : (Parsetree.expression) = Obj.magic _9 in + let _8 : unit = Obj.magic _8 in let _7 : (Parsetree.expression) = Obj.magic _7 in - let _6 : unit = Obj.magic _6 in - let xs : (string Asttypes.loc list) = Obj.magic xs in + let _6 : (Asttypes.direction_flag) = Obj.magic _6 in + let _5 : (Parsetree.expression) = Obj.magic _5 in let _4 : unit = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in + let _3 : (Parsetree.pattern) = Obj.magic _3 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__10_ in + let _v : (Parsetree.expression) = let _1 = + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 8584 "parsing/parser.ml" + + in + +# 4382 "parsing/parser.mly" + ( _1, _2 ) +# 8590 "parsing/parser.ml" + + in + +# 2584 "parsing/parser.mly" + ( Pexp_for(_3, _5, _7, _6, _9), _2 ) +# 8596 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__10_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2521 "parsing/parser.mly" + ( let desc, attrs = _1 in + mkexp_attrs ~loc:_sloc desc attrs ) +# 8607 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__7_ in + let _endpos = _endpos__3_ in let _v : (Parsetree.expression) = let _1 = - let _5 = -# 2760 "parsing/parser.mly" - ( xs ) -# 8963 "parsing/parser.ml" - in let _2 = let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 8972 "parsing/parser.ml" +# 8658 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 8978 "parsing/parser.ml" +# 8664 "parsing/parser.ml" in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2495 "parsing/parser.mly" - ( (mk_newtypes ~loc:_sloc _5 _7).pexp_desc, _2 ) -# 8987 "parsing/parser.ml" +# 2586 "parsing/parser.mly" + ( Pexp_assert _3, _2 ) +# 8670 "parsing/parser.ml" in - let _endpos__1_ = _endpos__7_ in + let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2449 "parsing/parser.mly" +# 2521 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 8998 "parsing/parser.ml" +# 8681 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9007,101 +8690,68 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let xs : (Parsetree.case list) = Obj.magic xs in - let _4 : unit = Obj.magic _4 in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in + let _endpos = _endpos__3_ in let _v : (Parsetree.expression) = let _1 = - let _5 = - let xs = - let xs = -# 253 "" - ( List.rev xs ) -# 9061 "parsing/parser.ml" - in - -# 1219 "parsing/parser.mly" - ( xs ) -# 9066 "parsing/parser.ml" - - in - -# 2906 "parsing/parser.mly" - ( xs ) -# 9072 "parsing/parser.ml" - - in let _2 = let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 9082 "parsing/parser.ml" +# 8732 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 9088 "parsing/parser.ml" +# 8738 "parsing/parser.ml" in -# 2497 "parsing/parser.mly" - ( Pexp_match(_3, _5), _2 ) -# 9094 "parsing/parser.ml" +# 2588 "parsing/parser.mly" + ( Pexp_lazy _3, _2 ) +# 8744 "parsing/parser.ml" in - let _endpos__1_ = _endpos_xs_ in + let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2449 "parsing/parser.mly" +# 2521 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 9105 "parsing/parser.ml" +# 8755 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9118,97 +8768,114 @@ module Tables = struct MenhirLib.EngineTypes.startp = _startpos_xs_; MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : (Parsetree.case list) = Obj.magic xs in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.expression) = Obj.magic _3 in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let xs : ((Asttypes.arg_label * Parsetree.expression) list) = Obj.magic xs in + let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in let _v : (Parsetree.expression) = let _1 = - let _5 = - let xs = + let _1 = + let _2 = let xs = # 253 "" ( List.rev xs ) -# 9168 "parsing/parser.ml" +# 8790 "parsing/parser.ml" in -# 1219 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 9173 "parsing/parser.ml" +# 8795 "parsing/parser.ml" in -# 2906 "parsing/parser.mly" - ( xs ) -# 9179 "parsing/parser.ml" +# 2592 "parsing/parser.mly" + ( Pexp_apply(_1, _2) ) +# 8801 "parsing/parser.ml" in - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1128 "parsing/parser.mly" + ( mkexp ~loc:_sloc _1 ) +# 8811 "parsing/parser.ml" + + in + +# 2524 "parsing/parser.mly" + ( _1 ) +# 8817 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let xs : (Parsetree.expression list) = Obj.magic xs in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_xs_ in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.expression) = let _1 = + let _1 = + let _1 = + let es = + let xs = +# 253 "" + ( List.rev xs ) +# 8846 "parsing/parser.ml" + in + +# 1257 "parsing/parser.mly" + ( xs ) +# 8851 "parsing/parser.ml" + + in -# 4228 "parsing/parser.mly" - ( _1 ) -# 9189 "parsing/parser.ml" +# 3013 "parsing/parser.mly" + ( es ) +# 8857 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" - ( _1, _2 ) -# 9195 "parsing/parser.ml" +# 2594 "parsing/parser.mly" + ( Pexp_tuple(_1) ) +# 8863 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2499 "parsing/parser.mly" - ( Pexp_try(_3, _5), _2 ) -# 9201 "parsing/parser.ml" +# 1128 "parsing/parser.mly" + ( mkexp ~loc:_sloc _1 ) +# 8873 "parsing/parser.ml" in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2449 "parsing/parser.mly" - ( let desc, attrs = _1 in - mkexp_attrs ~loc:_sloc desc attrs ) -# 9212 "parsing/parser.ml" +# 2524 "parsing/parser.mly" + ( _1 ) +# 8879 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9221,82 +8888,54 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.expression) = Obj.magic _3 in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let _2 : (Parsetree.expression) = Obj.magic _2 in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in + let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = let _1 = - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in + let _1 = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4228 "parsing/parser.mly" - ( _1 ) -# 9277 "parsing/parser.ml" +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 8917 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" - ( _1, _2 ) -# 9283 "parsing/parser.ml" +# 2596 "parsing/parser.mly" + ( Pexp_construct(_1, Some _2) ) +# 8923 "parsing/parser.ml" in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2501 "parsing/parser.mly" - ( syntax_error() ) -# 9289 "parsing/parser.ml" +# 1128 "parsing/parser.mly" + ( mkexp ~loc:_sloc _1 ) +# 8933 "parsing/parser.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2449 "parsing/parser.mly" - ( let desc, attrs = _1 in - mkexp_attrs ~loc:_sloc desc attrs ) -# 9300 "parsing/parser.ml" +# 2524 "parsing/parser.mly" + ( _1 ) +# 8939 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9309,96 +8948,119 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : (Parsetree.expression) = Obj.magic _2 in + let _1 : (Asttypes.label) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Parsetree.expression) = let _1 = + let _1 = +# 2598 "parsing/parser.mly" + ( Pexp_variant(_1, Some _2) ) +# 8972 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1128 "parsing/parser.mly" + ( mkexp ~loc:_sloc _1 ) +# 8981 "parsing/parser.ml" + + in + +# 2524 "parsing/parser.mly" + ( _1 ) +# 8987 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = e2; + MenhirLib.EngineTypes.startp = _startpos_e2_; + MenhirLib.EngineTypes.endp = _endpos_e2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = op; + MenhirLib.EngineTypes.startp = _startpos_op_; + MenhirLib.EngineTypes.endp = _endpos_op_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _7 : (Parsetree.expression) = Obj.magic _7 in - let _6 : unit = Obj.magic _6 in - let _5 : (Parsetree.expression) = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.expression) = Obj.magic _3 in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let e2 : (Parsetree.expression) = Obj.magic e2 in + let op : ( +# 884 "parsing/parser.mly" + (string) +# 9021 "parsing/parser.ml" + ) = Obj.magic op in + let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__7_ in + let _startpos = _startpos_e1_ in + let _endpos = _endpos_e2_ in let _v : (Parsetree.expression) = let _1 = - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in + let _1 = + let op = + let _1 = +# 4057 "parsing/parser.mly" + ( op ) +# 9033 "parsing/parser.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4228 "parsing/parser.mly" - ( _1 ) -# 9379 "parsing/parser.ml" +# 1122 "parsing/parser.mly" + ( mkoperator ~loc:_sloc _1 ) +# 9042 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" - ( _1, _2 ) -# 9385 "parsing/parser.ml" +# 2600 "parsing/parser.mly" + ( mkinfix e1 op e2 ) +# 9048 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2503 "parsing/parser.mly" - ( Pexp_ifthenelse(_3, _5, Some _7), _2 ) -# 9391 "parsing/parser.ml" +# 1128 "parsing/parser.mly" + ( mkexp ~loc:_sloc _1 ) +# 9058 "parsing/parser.ml" in - let _endpos__1_ = _endpos__7_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2449 "parsing/parser.mly" - ( let desc, attrs = _1 in - mkexp_attrs ~loc:_sloc desc attrs ) -# 9402 "parsing/parser.ml" +# 2524 "parsing/parser.mly" + ( _1 ) +# 9064 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9411,82 +9073,148 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = e2; + MenhirLib.EngineTypes.startp = _startpos_e2_; + MenhirLib.EngineTypes.endp = _endpos_e2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = op; + MenhirLib.EngineTypes.startp = _startpos_op_; + MenhirLib.EngineTypes.endp = _endpos_op_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let e2 : (Parsetree.expression) = Obj.magic e2 in + let op : ( +# 885 "parsing/parser.mly" + (string) +# 9098 "parsing/parser.ml" + ) = Obj.magic op in + let e1 : (Parsetree.expression) = Obj.magic e1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_e1_ in + let _endpos = _endpos_e2_ in + let _v : (Parsetree.expression) = let _1 = + let _1 = + let op = + let _1 = +# 4058 "parsing/parser.mly" + ( op ) +# 9110 "parsing/parser.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1122 "parsing/parser.mly" + ( mkoperator ~loc:_sloc _1 ) +# 9119 "parsing/parser.ml" + + in + +# 2600 "parsing/parser.mly" + ( mkinfix e1 op e2 ) +# 9125 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1128 "parsing/parser.mly" + ( mkexp ~loc:_sloc _1 ) +# 9135 "parsing/parser.ml" + + in + +# 2524 "parsing/parser.mly" + ( _1 ) +# 9141 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = e2; + MenhirLib.EngineTypes.startp = _startpos_e2_; + MenhirLib.EngineTypes.endp = _endpos_e2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = op; + MenhirLib.EngineTypes.startp = _startpos_op_; + MenhirLib.EngineTypes.endp = _endpos_op_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _5 : (Parsetree.expression) = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.expression) = Obj.magic _3 in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let e2 : (Parsetree.expression) = Obj.magic e2 in + let op : ( +# 886 "parsing/parser.mly" + (string) +# 9175 "parsing/parser.ml" + ) = Obj.magic op in + let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in + let _startpos = _startpos_e1_ in + let _endpos = _endpos_e2_ in let _v : (Parsetree.expression) = let _1 = - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in + let _1 = + let op = + let _1 = +# 4059 "parsing/parser.mly" + ( op ) +# 9187 "parsing/parser.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4228 "parsing/parser.mly" - ( _1 ) -# 9467 "parsing/parser.ml" +# 1122 "parsing/parser.mly" + ( mkoperator ~loc:_sloc _1 ) +# 9196 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" - ( _1, _2 ) -# 9473 "parsing/parser.ml" +# 2600 "parsing/parser.mly" + ( mkinfix e1 op e2 ) +# 9202 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2505 "parsing/parser.mly" - ( Pexp_ifthenelse(_3, _5, None), _2 ) -# 9479 "parsing/parser.ml" +# 1128 "parsing/parser.mly" + ( mkexp ~loc:_sloc _1 ) +# 9212 "parsing/parser.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2449 "parsing/parser.mly" - ( let desc, attrs = _1 in - mkexp_attrs ~loc:_sloc desc attrs ) -# 9490 "parsing/parser.ml" +# 2524 "parsing/parser.mly" + ( _1 ) +# 9218 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9499,89 +9227,71 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = e2; + MenhirLib.EngineTypes.startp = _startpos_e2_; + MenhirLib.EngineTypes.endp = _endpos_e2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = op; + MenhirLib.EngineTypes.startp = _startpos_op_; + MenhirLib.EngineTypes.endp = _endpos_op_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _6 : unit = Obj.magic _6 in - let _5 : (Parsetree.expression) = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.expression) = Obj.magic _3 in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let e2 : (Parsetree.expression) = Obj.magic e2 in + let op : ( +# 887 "parsing/parser.mly" + (string) +# 9252 "parsing/parser.ml" + ) = Obj.magic op in + let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__6_ in + let _startpos = _startpos_e1_ in + let _endpos = _endpos_e2_ in let _v : (Parsetree.expression) = let _1 = - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in + let _1 = + let op = + let _1 = +# 4060 "parsing/parser.mly" + ( op ) +# 9264 "parsing/parser.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4228 "parsing/parser.mly" - ( _1 ) -# 9562 "parsing/parser.ml" +# 1122 "parsing/parser.mly" + ( mkoperator ~loc:_sloc _1 ) +# 9273 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" - ( _1, _2 ) -# 9568 "parsing/parser.ml" +# 2600 "parsing/parser.mly" + ( mkinfix e1 op e2 ) +# 9279 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2507 "parsing/parser.mly" - ( Pexp_while(_3, _5), _2 ) -# 9574 "parsing/parser.ml" +# 1128 "parsing/parser.mly" + ( mkexp ~loc:_sloc _1 ) +# 9289 "parsing/parser.ml" in - let _endpos__1_ = _endpos__6_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2449 "parsing/parser.mly" - ( let desc, attrs = _1 in - mkexp_attrs ~loc:_sloc desc attrs ) -# 9585 "parsing/parser.ml" +# 2524 "parsing/parser.mly" + ( _1 ) +# 9295 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9594,117 +9304,71 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _10; - MenhirLib.EngineTypes.startp = _startpos__10_; - MenhirLib.EngineTypes.endp = _endpos__10_; + MenhirLib.EngineTypes.semv = e2; + MenhirLib.EngineTypes.startp = _startpos_e2_; + MenhirLib.EngineTypes.endp = _endpos_e2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _9; - MenhirLib.EngineTypes.startp = _startpos__9_; - MenhirLib.EngineTypes.endp = _endpos__9_; + MenhirLib.EngineTypes.semv = op; + MenhirLib.EngineTypes.startp = _startpos_op_; + MenhirLib.EngineTypes.endp = _endpos_op_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _8; - MenhirLib.EngineTypes.startp = _startpos__8_; - MenhirLib.EngineTypes.endp = _endpos__8_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _10 : unit = Obj.magic _10 in - let _9 : (Parsetree.expression) = Obj.magic _9 in - let _8 : unit = Obj.magic _8 in - let _7 : (Parsetree.expression) = Obj.magic _7 in - let _6 : (Asttypes.direction_flag) = Obj.magic _6 in - let _5 : (Parsetree.expression) = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.pattern) = Obj.magic _3 in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let e2 : (Parsetree.expression) = Obj.magic e2 in + let op : ( +# 888 "parsing/parser.mly" + (string) +# 9329 "parsing/parser.ml" + ) = Obj.magic op in + let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__10_ in + let _startpos = _startpos_e1_ in + let _endpos = _endpos_e2_ in let _v : (Parsetree.expression) = let _1 = - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in + let _1 = + let op = + let _1 = +# 4061 "parsing/parser.mly" + ( op ) +# 9341 "parsing/parser.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4228 "parsing/parser.mly" - ( _1 ) -# 9685 "parsing/parser.ml" +# 1122 "parsing/parser.mly" + ( mkoperator ~loc:_sloc _1 ) +# 9350 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" - ( _1, _2 ) -# 9691 "parsing/parser.ml" +# 2600 "parsing/parser.mly" + ( mkinfix e1 op e2 ) +# 9356 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2510 "parsing/parser.mly" - ( Pexp_for(_3, _5, _7, _6, _9), _2 ) -# 9697 "parsing/parser.ml" +# 1128 "parsing/parser.mly" + ( mkexp ~loc:_sloc _1 ) +# 9366 "parsing/parser.ml" in - let _endpos__1_ = _endpos__10_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2449 "parsing/parser.mly" - ( let desc, attrs = _1 in - mkexp_attrs ~loc:_sloc desc attrs ) -# 9708 "parsing/parser.ml" +# 2524 "parsing/parser.mly" + ( _1 ) +# 9372 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9717,68 +9381,66 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = e2; + MenhirLib.EngineTypes.startp = _startpos_e2_; + MenhirLib.EngineTypes.endp = _endpos_e2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _3 : (Parsetree.expression) = Obj.magic _3 in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let e2 : (Parsetree.expression) = Obj.magic e2 in let _1 : unit = Obj.magic _1 in + let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in + let _startpos = _startpos_e1_ in + let _endpos = _endpos_e2_ in let _v : (Parsetree.expression) = let _1 = - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in + let _1 = + let op = + let _1 = +# 4062 "parsing/parser.mly" + ("+") +# 9414 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4228 "parsing/parser.mly" - ( _1 ) -# 9759 "parsing/parser.ml" +# 1122 "parsing/parser.mly" + ( mkoperator ~loc:_sloc _1 ) +# 9422 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" - ( _1, _2 ) -# 9765 "parsing/parser.ml" +# 2600 "parsing/parser.mly" + ( mkinfix e1 op e2 ) +# 9428 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2512 "parsing/parser.mly" - ( Pexp_assert _3, _2 ) -# 9771 "parsing/parser.ml" +# 1128 "parsing/parser.mly" + ( mkexp ~loc:_sloc _1 ) +# 9438 "parsing/parser.ml" in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2449 "parsing/parser.mly" - ( let desc, attrs = _1 in - mkexp_attrs ~loc:_sloc desc attrs ) -# 9782 "parsing/parser.ml" +# 2524 "parsing/parser.mly" + ( _1 ) +# 9444 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9791,68 +9453,66 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = e2; + MenhirLib.EngineTypes.startp = _startpos_e2_; + MenhirLib.EngineTypes.endp = _endpos_e2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _3 : (Parsetree.expression) = Obj.magic _3 in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let e2 : (Parsetree.expression) = Obj.magic e2 in let _1 : unit = Obj.magic _1 in + let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in + let _startpos = _startpos_e1_ in + let _endpos = _endpos_e2_ in let _v : (Parsetree.expression) = let _1 = - let _2 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in + let _1 = + let op = + let _1 = +# 4063 "parsing/parser.mly" + ("+.") +# 9486 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4228 "parsing/parser.mly" - ( _1 ) -# 9833 "parsing/parser.ml" +# 1122 "parsing/parser.mly" + ( mkoperator ~loc:_sloc _1 ) +# 9494 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" - ( _1, _2 ) -# 9839 "parsing/parser.ml" +# 2600 "parsing/parser.mly" + ( mkinfix e1 op e2 ) +# 9500 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2514 "parsing/parser.mly" - ( Pexp_lazy _3, _2 ) -# 9845 "parsing/parser.ml" +# 1128 "parsing/parser.mly" + ( mkexp ~loc:_sloc _1 ) +# 9510 "parsing/parser.ml" in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2449 "parsing/parser.mly" - ( let desc, attrs = _1 in - mkexp_attrs ~loc:_sloc desc attrs ) -# 9856 "parsing/parser.ml" +# 2524 "parsing/parser.mly" + ( _1 ) +# 9516 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9865,56 +9525,66 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = e2; + MenhirLib.EngineTypes.startp = _startpos_e2_; + MenhirLib.EngineTypes.endp = _endpos_e2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let xs : ((Asttypes.arg_label * Parsetree.expression) list) = Obj.magic xs in - let _1 : (Parsetree.expression) = Obj.magic _1 in + let e2 : (Parsetree.expression) = Obj.magic e2 in + let _1 : unit = Obj.magic _1 in + let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in + let _startpos = _startpos_e1_ in + let _endpos = _endpos_e2_ in let _v : (Parsetree.expression) = let _1 = let _1 = - let _2 = - let xs = -# 253 "" - ( List.rev xs ) -# 9891 "parsing/parser.ml" + let op = + let _1 = +# 4064 "parsing/parser.mly" + ("+=") +# 9558 "parsing/parser.ml" in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 1126 "parsing/parser.mly" - ( xs ) -# 9896 "parsing/parser.ml" +# 1122 "parsing/parser.mly" + ( mkoperator ~loc:_sloc _1 ) +# 9566 "parsing/parser.ml" in -# 2518 "parsing/parser.mly" - ( Pexp_apply(_1, _2) ) -# 9902 "parsing/parser.ml" +# 2600 "parsing/parser.mly" + ( mkinfix e1 op e2 ) +# 9572 "parsing/parser.ml" in - let _endpos__1_ = _endpos_xs_ in + let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 9912 "parsing/parser.ml" +# 9582 "parsing/parser.ml" in -# 2452 "parsing/parser.mly" +# 2524 "parsing/parser.mly" ( _1 ) -# 9918 "parsing/parser.ml" +# 9588 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9926,57 +9596,67 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = e2; + MenhirLib.EngineTypes.startp = _startpos_e2_; + MenhirLib.EngineTypes.endp = _endpos_e2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let xs : (Parsetree.expression list) = Obj.magic xs in + let e2 : (Parsetree.expression) = Obj.magic e2 in + let _1 : unit = Obj.magic _1 in + let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_xs_ in - let _endpos = _endpos_xs_ in + let _startpos = _startpos_e1_ in + let _endpos = _endpos_e2_ in let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = - let es = - let xs = -# 253 "" - ( List.rev xs ) -# 9947 "parsing/parser.ml" - in - -# 1186 "parsing/parser.mly" - ( xs ) -# 9952 "parsing/parser.ml" - - in + let op = + let _1 = +# 4065 "parsing/parser.mly" + ("-") +# 9630 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2933 "parsing/parser.mly" - ( es ) -# 9958 "parsing/parser.ml" +# 1122 "parsing/parser.mly" + ( mkoperator ~loc:_sloc _1 ) +# 9638 "parsing/parser.ml" in -# 2520 "parsing/parser.mly" - ( Pexp_tuple(_1) ) -# 9964 "parsing/parser.ml" +# 2600 "parsing/parser.mly" + ( mkinfix e1 op e2 ) +# 9644 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_xs_) in + let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 9974 "parsing/parser.ml" +# 9654 "parsing/parser.ml" in -# 2452 "parsing/parser.mly" +# 2524 "parsing/parser.mly" ( _1 ) -# 9980 "parsing/parser.ml" +# 9660 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9989,54 +9669,66 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = e2; + MenhirLib.EngineTypes.startp = _startpos_e2_; + MenhirLib.EngineTypes.endp = _endpos_e2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : (Parsetree.expression) = Obj.magic _2 in - let _1 : (Longident.t) = Obj.magic _1 in + let e2 : (Parsetree.expression) = Obj.magic e2 in + let _1 : unit = Obj.magic _1 in + let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in + let _startpos = _startpos_e1_ in + let _endpos = _endpos_e2_ in let _v : (Parsetree.expression) = let _1 = let _1 = - let _1 = + let op = + let _1 = +# 4066 "parsing/parser.mly" + ("-.") +# 9702 "parsing/parser.ml" + in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 10018 "parsing/parser.ml" +# 1122 "parsing/parser.mly" + ( mkoperator ~loc:_sloc _1 ) +# 9710 "parsing/parser.ml" in -# 2522 "parsing/parser.mly" - ( Pexp_construct(_1, Some _2) ) -# 10024 "parsing/parser.ml" +# 2600 "parsing/parser.mly" + ( mkinfix e1 op e2 ) +# 9716 "parsing/parser.ml" in - let _endpos__1_ = _endpos__2_ in + let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10034 "parsing/parser.ml" +# 9726 "parsing/parser.ml" in -# 2452 "parsing/parser.mly" +# 2524 "parsing/parser.mly" ( _1 ) -# 10040 "parsing/parser.ml" +# 9732 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10049,42 +9741,66 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = e2; + MenhirLib.EngineTypes.startp = _startpos_e2_; + MenhirLib.EngineTypes.endp = _endpos_e2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = e1; + MenhirLib.EngineTypes.startp = _startpos_e1_; + MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : (Parsetree.expression) = Obj.magic _2 in - let _1 : (Asttypes.label) = Obj.magic _1 in + let e2 : (Parsetree.expression) = Obj.magic e2 in + let _1 : unit = Obj.magic _1 in + let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in + let _startpos = _startpos_e1_ in + let _endpos = _endpos_e2_ in let _v : (Parsetree.expression) = let _1 = - let _1 = -# 2524 "parsing/parser.mly" - ( Pexp_variant(_1, Some _2) ) -# 10073 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__2_ in + let _1 = + let op = + let _1 = +# 4067 "parsing/parser.mly" + ("*") +# 9774 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1122 "parsing/parser.mly" + ( mkoperator ~loc:_sloc _1 ) +# 9782 "parsing/parser.ml" + + in + +# 2600 "parsing/parser.mly" + ( mkinfix e1 op e2 ) +# 9788 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10082 "parsing/parser.ml" +# 9798 "parsing/parser.ml" in -# 2452 "parsing/parser.mly" +# 2524 "parsing/parser.mly" ( _1 ) -# 10088 "parsing/parser.ml" +# 9804 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10102,9 +9818,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_e2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = op; - MenhirLib.EngineTypes.startp = _startpos_op_; - MenhirLib.EngineTypes.endp = _endpos_op_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = e1; @@ -10115,11 +9831,7 @@ module Tables = struct }; } = _menhir_stack in let e2 : (Parsetree.expression) = Obj.magic e2 in - let op : ( -# 813 "parsing/parser.mly" - (string) -# 10122 "parsing/parser.ml" - ) = Obj.magic op in + let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in @@ -10128,24 +9840,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3923 "parsing/parser.mly" - ( op ) -# 10134 "parsing/parser.ml" +# 4068 "parsing/parser.mly" + ("%") +# 9846 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1051 "parsing/parser.mly" +# 1122 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 10143 "parsing/parser.ml" +# 9854 "parsing/parser.ml" in -# 2526 "parsing/parser.mly" +# 2600 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 10149 "parsing/parser.ml" +# 9860 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -10153,15 +9864,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10159 "parsing/parser.ml" +# 9870 "parsing/parser.ml" in -# 2452 "parsing/parser.mly" +# 2524 "parsing/parser.mly" ( _1 ) -# 10165 "parsing/parser.ml" +# 9876 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10179,9 +9890,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_e2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = op; - MenhirLib.EngineTypes.startp = _startpos_op_; - MenhirLib.EngineTypes.endp = _endpos_op_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = e1; @@ -10192,11 +9903,7 @@ module Tables = struct }; } = _menhir_stack in let e2 : (Parsetree.expression) = Obj.magic e2 in - let op : ( -# 814 "parsing/parser.mly" - (string) -# 10199 "parsing/parser.ml" - ) = Obj.magic op in + let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in @@ -10205,24 +9912,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3924 "parsing/parser.mly" - ( op ) -# 10211 "parsing/parser.ml" +# 4069 "parsing/parser.mly" + ("=") +# 9918 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1051 "parsing/parser.mly" +# 1122 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 10220 "parsing/parser.ml" +# 9926 "parsing/parser.ml" in -# 2526 "parsing/parser.mly" +# 2600 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 10226 "parsing/parser.ml" +# 9932 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -10230,15 +9936,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10236 "parsing/parser.ml" +# 9942 "parsing/parser.ml" in -# 2452 "parsing/parser.mly" +# 2524 "parsing/parser.mly" ( _1 ) -# 10242 "parsing/parser.ml" +# 9948 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10256,9 +9962,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_e2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = op; - MenhirLib.EngineTypes.startp = _startpos_op_; - MenhirLib.EngineTypes.endp = _endpos_op_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = e1; @@ -10269,11 +9975,7 @@ module Tables = struct }; } = _menhir_stack in let e2 : (Parsetree.expression) = Obj.magic e2 in - let op : ( -# 815 "parsing/parser.mly" - (string) -# 10276 "parsing/parser.ml" - ) = Obj.magic op in + let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in @@ -10282,24 +9984,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3925 "parsing/parser.mly" - ( op ) -# 10288 "parsing/parser.ml" +# 4070 "parsing/parser.mly" + ("<") +# 9990 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1051 "parsing/parser.mly" +# 1122 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 10297 "parsing/parser.ml" +# 9998 "parsing/parser.ml" in -# 2526 "parsing/parser.mly" +# 2600 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 10303 "parsing/parser.ml" +# 10004 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -10307,15 +10008,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10313 "parsing/parser.ml" +# 10014 "parsing/parser.ml" in -# 2452 "parsing/parser.mly" +# 2524 "parsing/parser.mly" ( _1 ) -# 10319 "parsing/parser.ml" +# 10020 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10333,9 +10034,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_e2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = op; - MenhirLib.EngineTypes.startp = _startpos_op_; - MenhirLib.EngineTypes.endp = _endpos_op_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = e1; @@ -10346,11 +10047,7 @@ module Tables = struct }; } = _menhir_stack in let e2 : (Parsetree.expression) = Obj.magic e2 in - let op : ( -# 816 "parsing/parser.mly" - (string) -# 10353 "parsing/parser.ml" - ) = Obj.magic op in + let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in @@ -10359,24 +10056,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3926 "parsing/parser.mly" - ( op ) -# 10365 "parsing/parser.ml" +# 4071 "parsing/parser.mly" + (">") +# 10062 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1051 "parsing/parser.mly" +# 1122 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 10374 "parsing/parser.ml" +# 10070 "parsing/parser.ml" in -# 2526 "parsing/parser.mly" +# 2600 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 10380 "parsing/parser.ml" +# 10076 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -10384,15 +10080,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10390 "parsing/parser.ml" +# 10086 "parsing/parser.ml" in -# 2452 "parsing/parser.mly" +# 2524 "parsing/parser.mly" ( _1 ) -# 10396 "parsing/parser.ml" +# 10092 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10410,9 +10106,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_e2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = op; - MenhirLib.EngineTypes.startp = _startpos_op_; - MenhirLib.EngineTypes.endp = _endpos_op_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = e1; @@ -10423,11 +10119,7 @@ module Tables = struct }; } = _menhir_stack in let e2 : (Parsetree.expression) = Obj.magic e2 in - let op : ( -# 817 "parsing/parser.mly" - (string) -# 10430 "parsing/parser.ml" - ) = Obj.magic op in + let _1 : unit = Obj.magic _1 in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_e1_ in @@ -10436,24 +10128,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3927 "parsing/parser.mly" - ( op ) -# 10442 "parsing/parser.ml" +# 4072 "parsing/parser.mly" + ("or") +# 10134 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1051 "parsing/parser.mly" +# 1122 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 10451 "parsing/parser.ml" +# 10142 "parsing/parser.ml" in -# 2526 "parsing/parser.mly" +# 2600 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 10457 "parsing/parser.ml" +# 10148 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -10461,15 +10152,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10467 "parsing/parser.ml" +# 10158 "parsing/parser.ml" in -# 2452 "parsing/parser.mly" +# 2524 "parsing/parser.mly" ( _1 ) -# 10473 "parsing/parser.ml" +# 10164 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10509,23 +10200,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3928 "parsing/parser.mly" - ("+") -# 10515 "parsing/parser.ml" +# 4073 "parsing/parser.mly" + ("||") +# 10206 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1051 "parsing/parser.mly" +# 1122 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 10523 "parsing/parser.ml" +# 10214 "parsing/parser.ml" in -# 2526 "parsing/parser.mly" +# 2600 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 10529 "parsing/parser.ml" +# 10220 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -10533,15 +10224,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10539 "parsing/parser.ml" +# 10230 "parsing/parser.ml" in -# 2452 "parsing/parser.mly" +# 2524 "parsing/parser.mly" ( _1 ) -# 10545 "parsing/parser.ml" +# 10236 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10581,23 +10272,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3929 "parsing/parser.mly" - ("+.") -# 10587 "parsing/parser.ml" +# 4074 "parsing/parser.mly" + ("&") +# 10278 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1051 "parsing/parser.mly" +# 1122 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 10595 "parsing/parser.ml" +# 10286 "parsing/parser.ml" in -# 2526 "parsing/parser.mly" +# 2600 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 10601 "parsing/parser.ml" +# 10292 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -10605,15 +10296,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10611 "parsing/parser.ml" +# 10302 "parsing/parser.ml" in -# 2452 "parsing/parser.mly" +# 2524 "parsing/parser.mly" ( _1 ) -# 10617 "parsing/parser.ml" +# 10308 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10653,23 +10344,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3930 "parsing/parser.mly" - ("+=") -# 10659 "parsing/parser.ml" +# 4075 "parsing/parser.mly" + ("&&") +# 10350 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1051 "parsing/parser.mly" +# 1122 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 10667 "parsing/parser.ml" +# 10358 "parsing/parser.ml" in -# 2526 "parsing/parser.mly" +# 2600 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 10673 "parsing/parser.ml" +# 10364 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -10677,15 +10368,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10683 "parsing/parser.ml" +# 10374 "parsing/parser.ml" in -# 2452 "parsing/parser.mly" +# 2524 "parsing/parser.mly" ( _1 ) -# 10689 "parsing/parser.ml" +# 10380 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10725,23 +10416,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3931 "parsing/parser.mly" - ("-") -# 10731 "parsing/parser.ml" +# 4076 "parsing/parser.mly" + (":=") +# 10422 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1051 "parsing/parser.mly" +# 1122 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 10739 "parsing/parser.ml" +# 10430 "parsing/parser.ml" in -# 2526 "parsing/parser.mly" +# 2600 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 10745 "parsing/parser.ml" +# 10436 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -10749,15 +10440,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10755 "parsing/parser.ml" +# 10446 "parsing/parser.ml" in -# 2452 "parsing/parser.mly" +# 2524 "parsing/parser.mly" ( _1 ) -# 10761 "parsing/parser.ml" +# 10452 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10770,66 +10461,377 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = e2; - MenhirLib.EngineTypes.startp = _startpos_e2_; - MenhirLib.EngineTypes.endp = _endpos_e2_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : (Parsetree.expression) = Obj.magic _2 in + let _1 : (string) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Parsetree.expression) = let _1 = + let _1 = + let _loc__1_ = (_startpos__1_, _endpos__1_) in + +# 2602 "parsing/parser.mly" + ( mkuminus ~oploc:_loc__1_ _1 _2 ) +# 10487 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1128 "parsing/parser.mly" + ( mkexp ~loc:_sloc _1 ) +# 10497 "parsing/parser.ml" + + in + +# 2524 "parsing/parser.mly" + ( _1 ) +# 10503 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : (Parsetree.expression) = Obj.magic _2 in + let _1 : (string) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Parsetree.expression) = let _1 = + let _1 = + let _loc__1_ = (_startpos__1_, _endpos__1_) in + +# 2604 "parsing/parser.mly" + ( mkuplus ~oploc:_loc__1_ _1 _2 ) +# 10538 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1128 "parsing/parser.mly" + ( mkexp ~loc:_sloc _1 ) +# 10548 "parsing/parser.ml" + + in + +# 2524 "parsing/parser.mly" + ( _1 ) +# 10554 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : (Parsetree.expression) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (let_bindings) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Parsetree.expression) = let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2526 "parsing/parser.mly" + ( expr_of_let_bindings ~loc:_sloc _1 _3 ) +# 10596 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = body; + MenhirLib.EngineTypes.startp = _startpos_body_; + MenhirLib.EngineTypes.endp = _endpos_body_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = bindings; + MenhirLib.EngineTypes.startp = _startpos_bindings_; + MenhirLib.EngineTypes.endp = _endpos_bindings_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let body : (Parsetree.expression) = Obj.magic body in + let _3 : unit = Obj.magic _3 in + let bindings : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = Obj.magic bindings in + let _1 : ( +# 890 "parsing/parser.mly" + (string) +# 10638 "parsing/parser.ml" + ) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos_body_ in + let _v : (Parsetree.expression) = let pbop_op = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 10650 "parsing/parser.ml" + + in + let _startpos_pbop_op_ = _startpos__1_ in + let _endpos = _endpos_body_ in + let _symbolstartpos = _startpos_pbop_op_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2528 "parsing/parser.mly" + ( let (pbop_pat, pbop_exp, rev_ands) = bindings in + let ands = List.rev rev_ands in + let pbop_loc = make_loc _sloc in + let let_ = {pbop_op; pbop_pat; pbop_exp; pbop_loc} in + mkexp ~loc:_sloc (Pexp_letop{ let_; ands; body}) ) +# 10664 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : (Parsetree.expression) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (Parsetree.expression) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Parsetree.expression) = let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _loc__2_ = (_startpos__2_, _endpos__2_) in + let _sloc = (_symbolstartpos, _endpos) in + +# 2534 "parsing/parser.mly" + ( mkexp_cons ~loc:_sloc _loc__2_ (ghexp ~loc:_sloc (Pexp_tuple[_1;_3])) ) +# 10707 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let e2 : (Parsetree.expression) = Obj.magic e2 in - let _1 : unit = Obj.magic _1 in - let e1 : (Parsetree.expression) = Obj.magic e1 in + let _3 : (Parsetree.expression) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : ( +# 909 "parsing/parser.mly" + (string) +# 10742 "parsing/parser.ml" + ) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Parsetree.expression) = let _1 = + let _1 = +# 4007 "parsing/parser.mly" + ( _1 ) +# 10751 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 10759 "parsing/parser.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2536 "parsing/parser.mly" + ( mkexp ~loc:_sloc (Pexp_setinstvar(_1, _3)) ) +# 10768 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let _5 : (Parsetree.expression) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_e1_ in - let _endpos = _endpos_e2_ in - let _v : (Parsetree.expression) = let _1 = - let _1 = - let op = - let _1 = -# 3932 "parsing/parser.mly" - ("-.") -# 10803 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1051 "parsing/parser.mly" - ( mkoperator ~loc:_sloc _1 ) -# 10811 "parsing/parser.ml" - - in - -# 2526 "parsing/parser.mly" - ( mkinfix e1 op e2 ) -# 10817 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in + let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v : (Parsetree.expression) = let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" - ( mkexp ~loc:_sloc _1 ) -# 10827 "parsing/parser.ml" +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 10826 "parsing/parser.ml" in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2452 "parsing/parser.mly" - ( _1 ) -# 10833 "parsing/parser.ml" +# 2538 "parsing/parser.mly" + ( mkexp ~loc:_sloc (Pexp_setfield(_1, _3, _5)) ) +# 10835 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10842,66 +10844,77 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = e2; - MenhirLib.EngineTypes.startp = _startpos_e2_; - MenhirLib.EngineTypes.endp = _endpos_e2_; + MenhirLib.EngineTypes.semv = v; + MenhirLib.EngineTypes.startp = _startpos_v_; + MenhirLib.EngineTypes.endp = _endpos_v_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = array; + MenhirLib.EngineTypes.startp = _startpos_array_; + MenhirLib.EngineTypes.endp = _endpos_array_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; }; } = _menhir_stack in - let e2 : (Parsetree.expression) = Obj.magic e2 in + let v : (Parsetree.expression) = Obj.magic v in let _1 : unit = Obj.magic _1 in - let e1 : (Parsetree.expression) = Obj.magic e1 in + let _5 : unit = Obj.magic _5 in + let i : (Parsetree.expression) = Obj.magic i in + let _3 : unit = Obj.magic _3 in + let d : unit = Obj.magic d in + let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_e1_ in - let _endpos = _endpos_e2_ in + let _startpos = _startpos_array_ in + let _endpos = _endpos_v_ in let _v : (Parsetree.expression) = let _1 = - let _1 = - let op = - let _1 = -# 3933 "parsing/parser.mly" - ("*") -# 10875 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1051 "parsing/parser.mly" - ( mkoperator ~loc:_sloc _1 ) -# 10883 "parsing/parser.ml" - - in - -# 2526 "parsing/parser.mly" - ( mkinfix e1 op e2 ) -# 10889 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let r = +# 2539 "parsing/parser.mly" + (Some v) +# 10903 "parsing/parser.ml" + in -# 1057 "parsing/parser.mly" - ( mkexp ~loc:_sloc _1 ) -# 10899 "parsing/parser.ml" +# 2499 "parsing/parser.mly" + ( array, d, Paren, i, r ) +# 10908 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2452 "parsing/parser.mly" - ( _1 ) -# 10905 "parsing/parser.ml" +# 2540 "parsing/parser.mly" + ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) +# 10918 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10914,66 +10927,77 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = e2; - MenhirLib.EngineTypes.startp = _startpos_e2_; - MenhirLib.EngineTypes.endp = _endpos_e2_; + MenhirLib.EngineTypes.semv = v; + MenhirLib.EngineTypes.startp = _startpos_v_; + MenhirLib.EngineTypes.endp = _endpos_v_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = array; + MenhirLib.EngineTypes.startp = _startpos_array_; + MenhirLib.EngineTypes.endp = _endpos_array_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; }; } = _menhir_stack in - let e2 : (Parsetree.expression) = Obj.magic e2 in + let v : (Parsetree.expression) = Obj.magic v in let _1 : unit = Obj.magic _1 in - let e1 : (Parsetree.expression) = Obj.magic e1 in + let _5 : unit = Obj.magic _5 in + let i : (Parsetree.expression) = Obj.magic i in + let _3 : unit = Obj.magic _3 in + let d : unit = Obj.magic d in + let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_e1_ in - let _endpos = _endpos_e2_ in + let _startpos = _startpos_array_ in + let _endpos = _endpos_v_ in let _v : (Parsetree.expression) = let _1 = - let _1 = - let op = - let _1 = -# 3934 "parsing/parser.mly" - ("%") -# 10947 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1051 "parsing/parser.mly" - ( mkoperator ~loc:_sloc _1 ) -# 10955 "parsing/parser.ml" - - in - -# 2526 "parsing/parser.mly" - ( mkinfix e1 op e2 ) -# 10961 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let r = +# 2539 "parsing/parser.mly" + (Some v) +# 10986 "parsing/parser.ml" + in -# 1057 "parsing/parser.mly" - ( mkexp ~loc:_sloc _1 ) -# 10971 "parsing/parser.ml" +# 2501 "parsing/parser.mly" + ( array, d, Brace, i, r ) +# 10991 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2452 "parsing/parser.mly" - ( _1 ) -# 10977 "parsing/parser.ml" +# 2540 "parsing/parser.mly" + ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) +# 11001 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10986,66 +11010,77 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = e2; - MenhirLib.EngineTypes.startp = _startpos_e2_; - MenhirLib.EngineTypes.endp = _endpos_e2_; + MenhirLib.EngineTypes.semv = v; + MenhirLib.EngineTypes.startp = _startpos_v_; + MenhirLib.EngineTypes.endp = _endpos_v_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = i; + MenhirLib.EngineTypes.startp = _startpos_i_; + MenhirLib.EngineTypes.endp = _endpos_i_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = d; + MenhirLib.EngineTypes.startp = _startpos_d_; + MenhirLib.EngineTypes.endp = _endpos_d_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = array; + MenhirLib.EngineTypes.startp = _startpos_array_; + MenhirLib.EngineTypes.endp = _endpos_array_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; }; } = _menhir_stack in - let e2 : (Parsetree.expression) = Obj.magic e2 in + let v : (Parsetree.expression) = Obj.magic v in let _1 : unit = Obj.magic _1 in - let e1 : (Parsetree.expression) = Obj.magic e1 in + let _5 : unit = Obj.magic _5 in + let i : (Parsetree.expression) = Obj.magic i in + let _3 : unit = Obj.magic _3 in + let d : unit = Obj.magic d in + let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_e1_ in - let _endpos = _endpos_e2_ in + let _startpos = _startpos_array_ in + let _endpos = _endpos_v_ in let _v : (Parsetree.expression) = let _1 = - let _1 = - let op = - let _1 = -# 3935 "parsing/parser.mly" - ("=") -# 11019 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1051 "parsing/parser.mly" - ( mkoperator ~loc:_sloc _1 ) -# 11027 "parsing/parser.ml" - - in - -# 2526 "parsing/parser.mly" - ( mkinfix e1 op e2 ) -# 11033 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let r = +# 2539 "parsing/parser.mly" + (Some v) +# 11069 "parsing/parser.ml" + in -# 1057 "parsing/parser.mly" - ( mkexp ~loc:_sloc _1 ) -# 11043 "parsing/parser.ml" +# 2503 "parsing/parser.mly" + ( array, d, Bracket, i, r ) +# 11074 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2452 "parsing/parser.mly" - ( _1 ) -# 11049 "parsing/parser.ml" +# 2540 "parsing/parser.mly" + ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) +# 11084 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11058,66 +11093,98 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = e2; - MenhirLib.EngineTypes.startp = _startpos_e2_; - MenhirLib.EngineTypes.endp = _endpos_e2_; + MenhirLib.EngineTypes.semv = v; + MenhirLib.EngineTypes.startp = _startpos_v_; + MenhirLib.EngineTypes.endp = _endpos_v_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = es; + MenhirLib.EngineTypes.startp = _startpos_es_; + MenhirLib.EngineTypes.endp = _endpos_es_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = array; + MenhirLib.EngineTypes.startp = _startpos_array_; + MenhirLib.EngineTypes.endp = _endpos_array_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; }; } = _menhir_stack in - let e2 : (Parsetree.expression) = Obj.magic e2 in + let v : (Parsetree.expression) = Obj.magic v in let _1 : unit = Obj.magic _1 in - let e1 : (Parsetree.expression) = Obj.magic e1 in + let _5 : unit = Obj.magic _5 in + let es : (Parsetree.expression list) = Obj.magic es in + let _3 : unit = Obj.magic _3 in + let _2 : ( +# 889 "parsing/parser.mly" + (string) +# 11146 "parsing/parser.ml" + ) = Obj.magic _2 in + let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_e1_ in - let _endpos = _endpos_e2_ in + let _startpos = _startpos_array_ in + let _endpos = _endpos_v_ in let _v : (Parsetree.expression) = let _1 = - let _1 = - let op = - let _1 = -# 3936 "parsing/parser.mly" - ("<") -# 11091 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1051 "parsing/parser.mly" - ( mkoperator ~loc:_sloc _1 ) -# 11099 "parsing/parser.ml" - - in + let r = +# 2541 "parsing/parser.mly" + (Some v) +# 11156 "parsing/parser.ml" + in + let i = +# 3053 "parsing/parser.mly" + ( es ) +# 11161 "parsing/parser.ml" + in + let d = + let _1 = +# 124 "" + ( None ) +# 11167 "parsing/parser.ml" + in -# 2526 "parsing/parser.mly" - ( mkinfix e1 op e2 ) -# 11105 "parsing/parser.ml" +# 2515 "parsing/parser.mly" + ( _1, _2 ) +# 11172 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" - ( mkexp ~loc:_sloc _1 ) -# 11115 "parsing/parser.ml" +# 2499 "parsing/parser.mly" + ( array, d, Paren, i, r ) +# 11178 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2452 "parsing/parser.mly" - ( _1 ) -# 11121 "parsing/parser.ml" +# 2542 "parsing/parser.mly" + ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) +# 11188 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11130,66 +11197,120 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = e2; - MenhirLib.EngineTypes.startp = _startpos_e2_; - MenhirLib.EngineTypes.endp = _endpos_e2_; + MenhirLib.EngineTypes.semv = v; + MenhirLib.EngineTypes.startp = _startpos_v_; + MenhirLib.EngineTypes.endp = _endpos_v_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = es; + MenhirLib.EngineTypes.startp = _startpos_es_; + MenhirLib.EngineTypes.endp = _endpos_es_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = array; + MenhirLib.EngineTypes.startp = _startpos_array_; + MenhirLib.EngineTypes.endp = _endpos_array_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; }; }; } = _menhir_stack in - let e2 : (Parsetree.expression) = Obj.magic e2 in + let v : (Parsetree.expression) = Obj.magic v in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _5 : unit = Obj.magic _5 in + let es : (Parsetree.expression list) = Obj.magic es in + let _3 : unit = Obj.magic _3 in + let _2 : ( +# 889 "parsing/parser.mly" + (string) +# 11262 "parsing/parser.ml" + ) = Obj.magic _2 in + let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in - let e1 : (Parsetree.expression) = Obj.magic e1 in + let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_e1_ in - let _endpos = _endpos_e2_ in + let _startpos = _startpos_array_ in + let _endpos = _endpos_v_ in let _v : (Parsetree.expression) = let _1 = - let _1 = - let op = - let _1 = -# 3937 "parsing/parser.mly" - (">") -# 11163 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let r = +# 2541 "parsing/parser.mly" + (Some v) +# 11274 "parsing/parser.ml" + in + let i = +# 3053 "parsing/parser.mly" + ( es ) +# 11279 "parsing/parser.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = +# 2515 "parsing/parser.mly" + (_2) +# 11287 "parsing/parser.ml" + in -# 1051 "parsing/parser.mly" - ( mkoperator ~loc:_sloc _1 ) -# 11171 "parsing/parser.ml" +# 126 "" + ( Some x ) +# 11292 "parsing/parser.ml" in -# 2526 "parsing/parser.mly" - ( mkinfix e1 op e2 ) -# 11177 "parsing/parser.ml" +# 2515 "parsing/parser.mly" + ( _1, _2 ) +# 11298 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" - ( mkexp ~loc:_sloc _1 ) -# 11187 "parsing/parser.ml" +# 2499 "parsing/parser.mly" + ( array, d, Paren, i, r ) +# 11304 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2452 "parsing/parser.mly" - ( _1 ) -# 11193 "parsing/parser.ml" +# 2542 "parsing/parser.mly" + ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) +# 11314 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11202,66 +11323,98 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = e2; - MenhirLib.EngineTypes.startp = _startpos_e2_; - MenhirLib.EngineTypes.endp = _endpos_e2_; + MenhirLib.EngineTypes.semv = v; + MenhirLib.EngineTypes.startp = _startpos_v_; + MenhirLib.EngineTypes.endp = _endpos_v_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = es; + MenhirLib.EngineTypes.startp = _startpos_es_; + MenhirLib.EngineTypes.endp = _endpos_es_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = array; + MenhirLib.EngineTypes.startp = _startpos_array_; + MenhirLib.EngineTypes.endp = _endpos_array_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; }; } = _menhir_stack in - let e2 : (Parsetree.expression) = Obj.magic e2 in + let v : (Parsetree.expression) = Obj.magic v in let _1 : unit = Obj.magic _1 in - let e1 : (Parsetree.expression) = Obj.magic e1 in + let _5 : unit = Obj.magic _5 in + let es : (Parsetree.expression list) = Obj.magic es in + let _3 : unit = Obj.magic _3 in + let _2 : ( +# 889 "parsing/parser.mly" + (string) +# 11376 "parsing/parser.ml" + ) = Obj.magic _2 in + let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_e1_ in - let _endpos = _endpos_e2_ in + let _startpos = _startpos_array_ in + let _endpos = _endpos_v_ in let _v : (Parsetree.expression) = let _1 = - let _1 = - let op = - let _1 = -# 3938 "parsing/parser.mly" - ("or") -# 11235 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1051 "parsing/parser.mly" - ( mkoperator ~loc:_sloc _1 ) -# 11243 "parsing/parser.ml" - - in + let r = +# 2541 "parsing/parser.mly" + (Some v) +# 11386 "parsing/parser.ml" + in + let i = +# 3053 "parsing/parser.mly" + ( es ) +# 11391 "parsing/parser.ml" + in + let d = + let _1 = +# 124 "" + ( None ) +# 11397 "parsing/parser.ml" + in -# 2526 "parsing/parser.mly" - ( mkinfix e1 op e2 ) -# 11249 "parsing/parser.ml" +# 2515 "parsing/parser.mly" + ( _1, _2 ) +# 11402 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" - ( mkexp ~loc:_sloc _1 ) -# 11259 "parsing/parser.ml" +# 2501 "parsing/parser.mly" + ( array, d, Brace, i, r ) +# 11408 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2452 "parsing/parser.mly" - ( _1 ) -# 11265 "parsing/parser.ml" +# 2542 "parsing/parser.mly" + ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) +# 11418 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11274,66 +11427,120 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = e2; - MenhirLib.EngineTypes.startp = _startpos_e2_; - MenhirLib.EngineTypes.endp = _endpos_e2_; + MenhirLib.EngineTypes.semv = v; + MenhirLib.EngineTypes.startp = _startpos_v_; + MenhirLib.EngineTypes.endp = _endpos_v_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = es; + MenhirLib.EngineTypes.startp = _startpos_es_; + MenhirLib.EngineTypes.endp = _endpos_es_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = array; + MenhirLib.EngineTypes.startp = _startpos_array_; + MenhirLib.EngineTypes.endp = _endpos_array_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; }; }; } = _menhir_stack in - let e2 : (Parsetree.expression) = Obj.magic e2 in + let v : (Parsetree.expression) = Obj.magic v in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _5 : unit = Obj.magic _5 in + let es : (Parsetree.expression list) = Obj.magic es in + let _3 : unit = Obj.magic _3 in + let _2 : ( +# 889 "parsing/parser.mly" + (string) +# 11492 "parsing/parser.ml" + ) = Obj.magic _2 in + let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in - let e1 : (Parsetree.expression) = Obj.magic e1 in + let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_e1_ in - let _endpos = _endpos_e2_ in + let _startpos = _startpos_array_ in + let _endpos = _endpos_v_ in let _v : (Parsetree.expression) = let _1 = - let _1 = - let op = - let _1 = -# 3939 "parsing/parser.mly" - ("||") -# 11307 "parsing/parser.ml" + let r = +# 2541 "parsing/parser.mly" + (Some v) +# 11504 "parsing/parser.ml" + in + let i = +# 3053 "parsing/parser.mly" + ( es ) +# 11509 "parsing/parser.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = +# 2515 "parsing/parser.mly" + (_2) +# 11517 "parsing/parser.ml" in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1051 "parsing/parser.mly" - ( mkoperator ~loc:_sloc _1 ) -# 11315 "parsing/parser.ml" +# 126 "" + ( Some x ) +# 11522 "parsing/parser.ml" in -# 2526 "parsing/parser.mly" - ( mkinfix e1 op e2 ) -# 11321 "parsing/parser.ml" +# 2515 "parsing/parser.mly" + ( _1, _2 ) +# 11528 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" - ( mkexp ~loc:_sloc _1 ) -# 11331 "parsing/parser.ml" +# 2501 "parsing/parser.mly" + ( array, d, Brace, i, r ) +# 11534 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2452 "parsing/parser.mly" - ( _1 ) -# 11337 "parsing/parser.ml" +# 2542 "parsing/parser.mly" + ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) +# 11544 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11346,66 +11553,98 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = e2; - MenhirLib.EngineTypes.startp = _startpos_e2_; - MenhirLib.EngineTypes.endp = _endpos_e2_; + MenhirLib.EngineTypes.semv = v; + MenhirLib.EngineTypes.startp = _startpos_v_; + MenhirLib.EngineTypes.endp = _endpos_v_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = es; + MenhirLib.EngineTypes.startp = _startpos_es_; + MenhirLib.EngineTypes.endp = _endpos_es_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = array; + MenhirLib.EngineTypes.startp = _startpos_array_; + MenhirLib.EngineTypes.endp = _endpos_array_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; }; } = _menhir_stack in - let e2 : (Parsetree.expression) = Obj.magic e2 in + let v : (Parsetree.expression) = Obj.magic v in let _1 : unit = Obj.magic _1 in - let e1 : (Parsetree.expression) = Obj.magic e1 in + let _5 : unit = Obj.magic _5 in + let es : (Parsetree.expression list) = Obj.magic es in + let _3 : unit = Obj.magic _3 in + let _2 : ( +# 889 "parsing/parser.mly" + (string) +# 11606 "parsing/parser.ml" + ) = Obj.magic _2 in + let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_e1_ in - let _endpos = _endpos_e2_ in + let _startpos = _startpos_array_ in + let _endpos = _endpos_v_ in let _v : (Parsetree.expression) = let _1 = - let _1 = - let op = - let _1 = -# 3940 "parsing/parser.mly" - ("&") -# 11379 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1051 "parsing/parser.mly" - ( mkoperator ~loc:_sloc _1 ) -# 11387 "parsing/parser.ml" - - in + let r = +# 2541 "parsing/parser.mly" + (Some v) +# 11616 "parsing/parser.ml" + in + let i = +# 3053 "parsing/parser.mly" + ( es ) +# 11621 "parsing/parser.ml" + in + let d = + let _1 = +# 124 "" + ( None ) +# 11627 "parsing/parser.ml" + in -# 2526 "parsing/parser.mly" - ( mkinfix e1 op e2 ) -# 11393 "parsing/parser.ml" +# 2515 "parsing/parser.mly" + ( _1, _2 ) +# 11632 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" - ( mkexp ~loc:_sloc _1 ) -# 11403 "parsing/parser.ml" +# 2503 "parsing/parser.mly" + ( array, d, Bracket, i, r ) +# 11638 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2452 "parsing/parser.mly" - ( _1 ) -# 11409 "parsing/parser.ml" +# 2542 "parsing/parser.mly" + ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) +# 11648 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11418,66 +11657,120 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = e2; - MenhirLib.EngineTypes.startp = _startpos_e2_; - MenhirLib.EngineTypes.endp = _endpos_e2_; + MenhirLib.EngineTypes.semv = v; + MenhirLib.EngineTypes.startp = _startpos_v_; + MenhirLib.EngineTypes.endp = _endpos_v_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = es; + MenhirLib.EngineTypes.startp = _startpos_es_; + MenhirLib.EngineTypes.endp = _endpos_es_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = array; + MenhirLib.EngineTypes.startp = _startpos_array_; + MenhirLib.EngineTypes.endp = _endpos_array_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; }; }; } = _menhir_stack in - let e2 : (Parsetree.expression) = Obj.magic e2 in + let v : (Parsetree.expression) = Obj.magic v in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _5 : unit = Obj.magic _5 in + let es : (Parsetree.expression list) = Obj.magic es in + let _3 : unit = Obj.magic _3 in + let _2 : ( +# 889 "parsing/parser.mly" + (string) +# 11722 "parsing/parser.ml" + ) = Obj.magic _2 in + let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in - let e1 : (Parsetree.expression) = Obj.magic e1 in + let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_e1_ in - let _endpos = _endpos_e2_ in + let _startpos = _startpos_array_ in + let _endpos = _endpos_v_ in let _v : (Parsetree.expression) = let _1 = - let _1 = - let op = - let _1 = -# 3941 "parsing/parser.mly" - ("&&") -# 11451 "parsing/parser.ml" + let r = +# 2541 "parsing/parser.mly" + (Some v) +# 11734 "parsing/parser.ml" + in + let i = +# 3053 "parsing/parser.mly" + ( es ) +# 11739 "parsing/parser.ml" + in + let d = + let _1 = + let _2 = _2_inlined1 in + let x = +# 2515 "parsing/parser.mly" + (_2) +# 11747 "parsing/parser.ml" in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1051 "parsing/parser.mly" - ( mkoperator ~loc:_sloc _1 ) -# 11459 "parsing/parser.ml" +# 126 "" + ( Some x ) +# 11752 "parsing/parser.ml" in -# 2526 "parsing/parser.mly" - ( mkinfix e1 op e2 ) -# 11465 "parsing/parser.ml" +# 2515 "parsing/parser.mly" + ( _1, _2 ) +# 11758 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" - ( mkexp ~loc:_sloc _1 ) -# 11475 "parsing/parser.ml" +# 2503 "parsing/parser.mly" + ( array, d, Bracket, i, r ) +# 11764 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2452 "parsing/parser.mly" - ( _1 ) -# 11481 "parsing/parser.ml" +# 2542 "parsing/parser.mly" + ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) +# 11774 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11490,66 +11783,52 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = e2; - MenhirLib.EngineTypes.startp = _startpos_e2_; - MenhirLib.EngineTypes.endp = _endpos_e2_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = e1; - MenhirLib.EngineTypes.startp = _startpos_e1_; - MenhirLib.EngineTypes.endp = _endpos_e1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let e2 : (Parsetree.expression) = Obj.magic e2 in - let _1 : unit = Obj.magic _1 in - let e1 : (Parsetree.expression) = Obj.magic e1 in + let _2 : (Parsetree.attribute) = Obj.magic _2 in + let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_e1_ in - let _endpos = _endpos_e2_ in - let _v : (Parsetree.expression) = let _1 = - let _1 = - let op = - let _1 = -# 3942 "parsing/parser.mly" - (":=") -# 11523 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1051 "parsing/parser.mly" - ( mkoperator ~loc:_sloc _1 ) -# 11531 "parsing/parser.ml" - - in - -# 2526 "parsing/parser.mly" - ( mkinfix e1 op e2 ) -# 11537 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1057 "parsing/parser.mly" - ( mkexp ~loc:_sloc _1 ) -# 11547 "parsing/parser.ml" - - in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Parsetree.expression) = +# 2544 "parsing/parser.mly" + ( Exp.attr _1 _2 ) +# 11806 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.expression) = let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2452 "parsing/parser.mly" - ( _1 ) -# 11553 "parsing/parser.ml" +# 2547 "parsing/parser.mly" + ( not_expecting _loc__1_ "wildcard \"_\"" ) +# 11832 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11574,33 +11853,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : (Parsetree.expression) = Obj.magic _2 in - let _1 : (string) = Obj.magic _1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.expression) = let _1 = - let _1 = - let _loc__1_ = (_startpos__1_, _endpos__1_) in - -# 2528 "parsing/parser.mly" - ( mkuminus ~oploc:_loc__1_ _1 _2 ) -# 11588 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1057 "parsing/parser.mly" - ( mkexp ~loc:_sloc _1 ) -# 11598 "parsing/parser.ml" - - in + let _v : (Parsetree.expression) = let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + let _sloc = (_symbolstartpos, _endpos) in -# 2452 "parsing/parser.mly" - ( _1 ) -# 11604 "parsing/parser.ml" +# 2550 "parsing/parser.mly" + ( mkexp_stack ~loc:_sloc ~kwd_loc:(_loc__1_) _2 ) +# 11868 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11611,47 +11875,14 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _2 : (Parsetree.expression) = Obj.magic _2 in - let _1 : (string) = Obj.magic _1 in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.expression) = let _1 = - let _1 = - let _loc__1_ = (_startpos__1_, _endpos__1_) in - -# 2530 "parsing/parser.mly" - ( mkuplus ~oploc:_loc__1_ _1 _2 ) -# 11639 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1057 "parsing/parser.mly" - ( mkexp ~loc:_sloc _1 ) -# 11649 "parsing/parser.ml" - - in - -# 2452 "parsing/parser.mly" - ( _1 ) -# 11655 "parsing/parser.ml" + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (string Asttypes.loc option) = +# 4372 "parsing/parser.mly" + ( None ) +# 11886 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11664,36 +11895,26 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _3 : (Parsetree.expression) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (let_bindings) = Obj.magic _1 in + let _2 : (string Asttypes.loc) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2454 "parsing/parser.mly" - ( expr_of_let_bindings ~loc:_sloc _1 _3 ) -# 11697 "parsing/parser.ml" + let _endpos = _endpos__2_ in + let _v : (string Asttypes.loc option) = +# 4373 "parsing/parser.mly" + ( Some _2 ) +# 11918 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11706,9 +11927,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = body; - MenhirLib.EngineTypes.startp = _startpos_body_; - MenhirLib.EngineTypes.endp = _endpos_body_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _3; @@ -11716,9 +11937,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = bindings; - MenhirLib.EngineTypes.startp = _startpos_bindings_; - MenhirLib.EngineTypes.endp = _endpos_bindings_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -11729,39 +11950,17 @@ module Tables = struct }; }; } = _menhir_stack in - let body : (Parsetree.expression) = Obj.magic body in - let _3 : unit = Obj.magic _3 in - let bindings : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = Obj.magic bindings in - let _1 : ( -# 819 "parsing/parser.mly" - (string) -# 11739 "parsing/parser.ml" - ) = Obj.magic _1 in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.payload) = Obj.magic _3 in + let _2 : (string Asttypes.loc) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_body_ in - let _v : (Parsetree.expression) = let pbop_op = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 11751 "parsing/parser.ml" - - in - let _startpos_pbop_op_ = _startpos__1_ in - let _endpos = _endpos_body_ in - let _symbolstartpos = _startpos_pbop_op_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2456 "parsing/parser.mly" - ( let (pbop_pat, pbop_exp, rev_ands) = bindings in - let ands = List.rev rev_ands in - let pbop_loc = make_loc _sloc in - let let_ = {pbop_op; pbop_pat; pbop_exp; pbop_loc} in - mkexp ~loc:_sloc (Pexp_letop{ let_; ands; body}) ) -# 11765 "parsing/parser.ml" + let _endpos = _endpos__4_ in + let _v : (Parsetree.extension) = +# 4385 "parsing/parser.mly" + ( (_2, _3) ) +# 11964 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11773,99 +11972,27 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : (Parsetree.expression) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.expression) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _loc__2_ = (_startpos__2_, _endpos__2_) in - let _sloc = (_symbolstartpos, _endpos) in - -# 2462 "parsing/parser.mly" - ( mkexp_cons ~loc:_sloc _loc__2_ (ghexp ~loc:_sloc (Pexp_tuple[_1;_3])) ) -# 11808 "parsing/parser.ml" - in - { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; } = _menhir_stack in - let _3 : (Parsetree.expression) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in let _1 : ( -# 838 "parsing/parser.mly" - (string) -# 11843 "parsing/parser.ml" +# 951 "parsing/parser.mly" + (string * Location.t * string * Location.t * string option) +# 11985 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _1 = - let _1 = -# 3873 "parsing/parser.mly" - ( _1 ) -# 11852 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 11860 "parsing/parser.ml" - - in - let _endpos = _endpos__3_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.extension) = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2464 "parsing/parser.mly" - ( mkexp ~loc:_sloc (Pexp_setinstvar(_1, _3)) ) -# 11869 "parsing/parser.ml" +# 4387 "parsing/parser.mly" + ( mk_quotedext ~loc:_sloc _1 ) +# 11996 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11878,24 +12005,24 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -11907,32 +12034,53 @@ module Tables = struct }; }; } = _menhir_stack in - let _5 : (Parsetree.expression) = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.expression) = Obj.magic _1 in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in + let _3 : unit = Obj.magic _3 in + let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _3 = + let _endpos = _endpos__1_inlined3_ in + let _v : (Parsetree.extension_constructor) = let attrs = + let _1 = _1_inlined3 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 12051 "parsing/parser.ml" + + in + let _endpos_attrs_ = _endpos__1_inlined3_ in + let lid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 12063 "parsing/parser.ml" + + in + let cid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 11927 "parsing/parser.ml" +# 12074 "parsing/parser.ml" in - let _endpos = _endpos__5_ in + let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2466 "parsing/parser.mly" - ( mkexp ~loc:_sloc (Pexp_setfield(_1, _3, _5)) ) -# 11936 "parsing/parser.ml" +# 3648 "parsing/parser.mly" + ( let info = symbol_info _endpos in + Te.rebind cid lid ~attrs ~loc:(make_loc _sloc) ~info ) +# 12084 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11945,160 +12093,80 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = v; - MenhirLib.EngineTypes.startp = _startpos_v_; - MenhirLib.EngineTypes.endp = _endpos_v_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = array; - MenhirLib.EngineTypes.startp = _startpos_array_; - MenhirLib.EngineTypes.endp = _endpos_array_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let v : (Parsetree.expression) = Obj.magic v in - let _1 : unit = Obj.magic _1 in - let _5 : unit = Obj.magic _5 in - let i : (Parsetree.expression) = Obj.magic i in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in - let d : unit = Obj.magic d in - let array : (Parsetree.expression) = Obj.magic array in + let _1 : (Asttypes.label) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_array_ in - let _endpos = _endpos_v_ in - let _v : (Parsetree.expression) = let _1 = - let r = -# 2467 "parsing/parser.mly" - (Some v) -# 12004 "parsing/parser.ml" - in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined2_ in + let _v : (Parsetree.extension_constructor) = let attrs = + let _1 = _1_inlined2 in -# 2427 "parsing/parser.mly" - ( array, d, Paren, i, r ) -# 12009 "parsing/parser.ml" +# 4369 "parsing/parser.mly" + ( _1 ) +# 12132 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2468 "parsing/parser.mly" - ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 12019 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = v; - MenhirLib.EngineTypes.startp = _startpos_v_; - MenhirLib.EngineTypes.endp = _endpos_v_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = array; - MenhirLib.EngineTypes.startp = _startpos_array_; - MenhirLib.EngineTypes.endp = _endpos_array_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; - } = _menhir_stack in - let v : (Parsetree.expression) = Obj.magic v in - let _1 : unit = Obj.magic _1 in - let _5 : unit = Obj.magic _5 in - let i : (Parsetree.expression) = Obj.magic i in - let _3 : unit = Obj.magic _3 in - let d : unit = Obj.magic d in - let array : (Parsetree.expression) = Obj.magic array in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_array_ in - let _endpos = _endpos_v_ in - let _v : (Parsetree.expression) = let _1 = - let r = -# 2467 "parsing/parser.mly" - (Some v) -# 12087 "parsing/parser.ml" - in + let _endpos_attrs_ = _endpos__1_inlined2_ in + let lid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2429 "parsing/parser.mly" - ( array, d, Brace, i, r ) -# 12092 "parsing/parser.ml" +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 12144 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 12154 "parsing/parser.ml" + + in + let _startpos_cid_ = _startpos__1_ in + let _1 = +# 4177 "parsing/parser.mly" + ( () ) +# 12161 "parsing/parser.ml" + in + let _endpos = _endpos_attrs_ in + let _symbolstartpos = _startpos_cid_ in let _sloc = (_symbolstartpos, _endpos) in -# 2468 "parsing/parser.mly" - ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 12102 "parsing/parser.ml" +# 3648 "parsing/parser.mly" + ( let info = symbol_info _endpos in + Te.rebind cid lid ~attrs ~loc:(make_loc _sloc) ~info ) +# 12170 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12111,77 +12179,67 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = v; - MenhirLib.EngineTypes.startp = _startpos_v_; - MenhirLib.EngineTypes.endp = _endpos_v_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = i; - MenhirLib.EngineTypes.startp = _startpos_i_; - MenhirLib.EngineTypes.endp = _endpos_i_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = d; - MenhirLib.EngineTypes.startp = _startpos_d_; - MenhirLib.EngineTypes.endp = _endpos_d_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = array; - MenhirLib.EngineTypes.startp = _startpos_array_; - MenhirLib.EngineTypes.endp = _endpos_array_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let v : (Parsetree.expression) = Obj.magic v in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.payload) = Obj.magic _3 in + let _2 : (string Asttypes.loc) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in - let _5 : unit = Obj.magic _5 in - let i : (Parsetree.expression) = Obj.magic i in - let _3 : unit = Obj.magic _3 in - let d : unit = Obj.magic d in - let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_array_ in - let _endpos = _endpos_v_ in - let _v : (Parsetree.expression) = let _1 = - let r = -# 2467 "parsing/parser.mly" - (Some v) -# 12170 "parsing/parser.ml" - in - -# 2431 "parsing/parser.mly" - ( array, d, Bracket, i, r ) -# 12175 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in - let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : (Parsetree.attribute) = let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2468 "parsing/parser.mly" - ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 12185 "parsing/parser.ml" +# 4360 "parsing/parser.mly" + ( mark_symbol_docs _sloc; + mk_attr ~loc:(make_loc _sloc) _2 _3 ) +# 12220 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let params = +# 2264 "parsing/parser.mly" + ( [] ) +# 12238 "parsing/parser.ml" + in + +# 2089 "parsing/parser.mly" + ( params ) +# 12243 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12194,98 +12252,77 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = v; - MenhirLib.EngineTypes.startp = _startpos_v_; - MenhirLib.EngineTypes.endp = _endpos_v_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = es; - MenhirLib.EngineTypes.startp = _startpos_es_; - MenhirLib.EngineTypes.endp = _endpos_es_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = array; - MenhirLib.EngineTypes.startp = _startpos_array_; - MenhirLib.EngineTypes.endp = _endpos_array_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let v : (Parsetree.expression) = Obj.magic v in - let _1 : unit = Obj.magic _1 in - let _5 : unit = Obj.magic _5 in - let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in - let _2 : ( -# 818 "parsing/parser.mly" - (string) -# 12247 "parsing/parser.ml" - ) = Obj.magic _2 in - let array : (Parsetree.expression) = Obj.magic array in + let xs : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic xs in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_array_ in - let _endpos = _endpos_v_ in - let _v : (Parsetree.expression) = let _1 = - let r = -# 2469 "parsing/parser.mly" - (Some v) -# 12257 "parsing/parser.ml" - in - let i = -# 2973 "parsing/parser.mly" - ( es ) -# 12262 "parsing/parser.ml" - in - let d = - let _1 = -# 124 "" - ( None ) -# 12268 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let params = + let params = + let xs = +# 253 "" + ( List.rev xs ) +# 12284 "parsing/parser.ml" in -# 2443 "parsing/parser.mly" - ( _1, _2 ) -# 12273 "parsing/parser.ml" +# 1229 "parsing/parser.mly" + ( xs ) +# 12289 "parsing/parser.ml" in -# 2427 "parsing/parser.mly" - ( array, d, Paren, i, r ) -# 12279 "parsing/parser.ml" +# 2266 "parsing/parser.mly" + ( params ) +# 12295 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2470 "parsing/parser.mly" - ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 12289 "parsing/parser.ml" +# 2089 "parsing/parser.mly" + ( params ) +# 12301 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Parsetree.expression) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.expression) = +# 2952 "parsing/parser.mly" + ( _1 ) +# 12326 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12298,120 +12335,36 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = v; - MenhirLib.EngineTypes.startp = _startpos_v_; - MenhirLib.EngineTypes.endp = _endpos_v_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = es; - MenhirLib.EngineTypes.startp = _startpos_es_; - MenhirLib.EngineTypes.endp = _endpos_es_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = array; - MenhirLib.EngineTypes.startp = _startpos_array_; - MenhirLib.EngineTypes.endp = _endpos_array_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let v : (Parsetree.expression) = Obj.magic v in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _5 : unit = Obj.magic _5 in - let es : (Parsetree.expression list) = Obj.magic es in - let _3 : unit = Obj.magic _3 in - let _2 : ( -# 818 "parsing/parser.mly" - (string) -# 12363 "parsing/parser.ml" - ) = Obj.magic _2 in - let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in - let _1 : unit = Obj.magic _1 in - let array : (Parsetree.expression) = Obj.magic array in + let _3 : (Parsetree.expression) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (Parsetree.core_type option * Parsetree.core_type option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_array_ in - let _endpos = _endpos_v_ in - let _v : (Parsetree.expression) = let _1 = - let r = -# 2469 "parsing/parser.mly" - (Some v) -# 12375 "parsing/parser.ml" - in - let i = -# 2973 "parsing/parser.mly" - ( es ) -# 12380 "parsing/parser.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = -# 2443 "parsing/parser.mly" - (_2) -# 12388 "parsing/parser.ml" - in - -# 126 "" - ( Some x ) -# 12393 "parsing/parser.ml" - - in - -# 2443 "parsing/parser.mly" - ( _1, _2 ) -# 12399 "parsing/parser.ml" - - in - -# 2427 "parsing/parser.mly" - ( array, d, Paren, i, r ) -# 12405 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in - let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Parsetree.expression) = let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2470 "parsing/parser.mly" - ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 12415 "parsing/parser.ml" +# 2954 "parsing/parser.mly" + ( mkexp_constraint ~loc:_sloc _3 _1 ) +# 12368 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12424,98 +12377,26 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = v; - MenhirLib.EngineTypes.startp = _startpos_v_; - MenhirLib.EngineTypes.endp = _endpos_v_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = es; - MenhirLib.EngineTypes.startp = _startpos_es_; - MenhirLib.EngineTypes.endp = _endpos_es_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = array; - MenhirLib.EngineTypes.startp = _startpos_array_; - MenhirLib.EngineTypes.endp = _endpos_array_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let v : (Parsetree.expression) = Obj.magic v in + let _2 : (Parsetree.expression) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in - let _5 : unit = Obj.magic _5 in - let es : (Parsetree.expression list) = Obj.magic es in - let _3 : unit = Obj.magic _3 in - let _2 : ( -# 818 "parsing/parser.mly" - (string) -# 12477 "parsing/parser.ml" - ) = Obj.magic _2 in - let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_array_ in - let _endpos = _endpos_v_ in - let _v : (Parsetree.expression) = let _1 = - let r = -# 2469 "parsing/parser.mly" - (Some v) -# 12487 "parsing/parser.ml" - in - let i = -# 2973 "parsing/parser.mly" - ( es ) -# 12492 "parsing/parser.ml" - in - let d = - let _1 = -# 124 "" - ( None ) -# 12498 "parsing/parser.ml" - in - -# 2443 "parsing/parser.mly" - ( _1, _2 ) -# 12503 "parsing/parser.ml" - - in - -# 2429 "parsing/parser.mly" - ( array, d, Brace, i, r ) -# 12509 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2470 "parsing/parser.mly" - ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 12519 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Parsetree.expression) = +# 2996 "parsing/parser.mly" + ( _2 ) +# 12400 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12528,120 +12409,56 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = v; - MenhirLib.EngineTypes.startp = _startpos_v_; - MenhirLib.EngineTypes.endp = _endpos_v_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = es; - MenhirLib.EngineTypes.startp = _startpos_es_; - MenhirLib.EngineTypes.endp = _endpos_es_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = array; - MenhirLib.EngineTypes.startp = _startpos_array_; - MenhirLib.EngineTypes.endp = _endpos_array_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let v : (Parsetree.expression) = Obj.magic v in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _5 : unit = Obj.magic _5 in - let es : (Parsetree.expression list) = Obj.magic es in + let _4 : (Parsetree.expression) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in - let _2 : ( -# 818 "parsing/parser.mly" - (string) -# 12593 "parsing/parser.ml" - ) = Obj.magic _2 in - let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in + let _2 : (Parsetree.core_type) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in - let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_array_ in - let _endpos = _endpos_v_ in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in let _v : (Parsetree.expression) = let _1 = - let r = -# 2469 "parsing/parser.mly" - (Some v) -# 12605 "parsing/parser.ml" - in - let i = -# 2973 "parsing/parser.mly" - ( es ) -# 12610 "parsing/parser.ml" + let _1 = +# 2998 "parsing/parser.mly" + ( Pexp_constraint (_4, _2) ) +# 12447 "parsing/parser.ml" in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = -# 2443 "parsing/parser.mly" - (_2) -# 12618 "parsing/parser.ml" - in - -# 126 "" - ( Some x ) -# 12623 "parsing/parser.ml" - - in - -# 2443 "parsing/parser.mly" - ( _1, _2 ) -# 12629 "parsing/parser.ml" - - in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2429 "parsing/parser.mly" - ( array, d, Brace, i, r ) -# 12635 "parsing/parser.ml" +# 1128 "parsing/parser.mly" + ( mkexp ~loc:_sloc _1 ) +# 12456 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2470 "parsing/parser.mly" - ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 12645 "parsing/parser.ml" +# 2999 "parsing/parser.mly" + ( _1 ) +# 12462 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12654,98 +12471,88 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = v; - MenhirLib.EngineTypes.startp = _startpos_v_; - MenhirLib.EngineTypes.endp = _endpos_v_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : (Parsetree.expression) = Obj.magic _2 in + let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Parsetree.expression) = let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3002 "parsing/parser.mly" + ( + let (l,o,p) = _1 in + ghexp ~loc:_sloc (Pexp_fun(l, o, p, _2)) + ) +# 12500 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = es; - MenhirLib.EngineTypes.startp = _startpos_es_; - MenhirLib.EngineTypes.endp = _endpos_es_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = array; - MenhirLib.EngineTypes.startp = _startpos_array_; - MenhirLib.EngineTypes.endp = _endpos_array_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in - let v : (Parsetree.expression) = Obj.magic v in + let _5 : (Parsetree.expression) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _3 : ((string Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in - let _5 : unit = Obj.magic _5 in - let es : (Parsetree.expression list) = Obj.magic es in - let _3 : unit = Obj.magic _3 in - let _2 : ( -# 818 "parsing/parser.mly" - (string) -# 12707 "parsing/parser.ml" - ) = Obj.magic _2 in - let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_array_ in - let _endpos = _endpos_v_ in - let _v : (Parsetree.expression) = let _1 = - let r = -# 2469 "parsing/parser.mly" - (Some v) -# 12717 "parsing/parser.ml" - in - let i = -# 2973 "parsing/parser.mly" - ( es ) -# 12722 "parsing/parser.ml" - in - let d = - let _1 = -# 124 "" - ( None ) -# 12728 "parsing/parser.ml" - in - -# 2443 "parsing/parser.mly" - ( _1, _2 ) -# 12733 "parsing/parser.ml" - - in - -# 2431 "parsing/parser.mly" - ( array, d, Bracket, i, r ) -# 12739 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in - let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v : (Parsetree.expression) = let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2470 "parsing/parser.mly" - ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 12749 "parsing/parser.ml" +# 3007 "parsing/parser.mly" + ( mk_newtypes ~loc:_sloc _3 _5 ) +# 12556 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12758,14 +12565,14 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = v; - MenhirLib.EngineTypes.startp = _startpos_v_; - MenhirLib.EngineTypes.endp = _endpos_v_; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _5; @@ -12773,37 +12580,25 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = es; - MenhirLib.EngineTypes.startp = _startpos_es_; - MenhirLib.EngineTypes.endp = _endpos_es_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = array; - MenhirLib.EngineTypes.startp = _startpos_array_; - MenhirLib.EngineTypes.endp = _endpos_array_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; @@ -12811,67 +12606,38 @@ module Tables = struct }; }; } = _menhir_stack in - let v : (Parsetree.expression) = Obj.magic v in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _5 : unit = Obj.magic _5 in - let es : (Parsetree.expression list) = Obj.magic es in - let _3 : unit = Obj.magic _3 in - let _2 : ( -# 818 "parsing/parser.mly" + let _7 : (Parsetree.expression) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _5 : (Asttypes.layout_annotation) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _1_inlined1 : ( +# 909 "parsing/parser.mly" (string) -# 12823 "parsing/parser.ml" - ) = Obj.magic _2 in - let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in +# 12617 "parsing/parser.ml" + ) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in - let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_array_ in - let _endpos = _endpos_v_ in - let _v : (Parsetree.expression) = let _1 = - let r = -# 2469 "parsing/parser.mly" - (Some v) -# 12835 "parsing/parser.ml" - in - let i = -# 2973 "parsing/parser.mly" - ( es ) -# 12840 "parsing/parser.ml" - in - let d = - let _1 = - let _2 = _2_inlined1 in - let x = -# 2443 "parsing/parser.mly" - (_2) -# 12848 "parsing/parser.ml" - in - -# 126 "" - ( Some x ) -# 12853 "parsing/parser.ml" - - in - -# 2443 "parsing/parser.mly" - ( _1, _2 ) -# 12859 "parsing/parser.ml" - - in + let _startpos = _startpos__1_ in + let _endpos = _endpos__7_ in + let _v : (Parsetree.expression) = let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2431 "parsing/parser.mly" - ( array, d, Bracket, i, r ) -# 12865 "parsing/parser.ml" +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 12632 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in - let _endpos = _endpos__1_ in + let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2470 "parsing/parser.mly" - ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 12875 "parsing/parser.ml" +# 3009 "parsing/parser.mly" + ( mk_newtypes ~loc:_sloc [_3, Some _5] _7 ) +# 12641 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12883,27 +12649,20 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : (Parsetree.attribute) = Obj.magic _2 in - let _1 : (Parsetree.expression) = Obj.magic _1 in + let ty : (Parsetree.core_type) = Obj.magic ty in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.expression) = -# 2472 "parsing/parser.mly" - ( Exp.attr _1 _2 ) -# 12907 "parsing/parser.ml" + let _startpos = _startpos_ty_ in + let _endpos = _endpos_ty_ in + let _v : (Parsetree.core_type) = +# 3769 "parsing/parser.mly" + ( ty ) +# 12666 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12916,20 +12675,19 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : unit = Obj.magic _1 in + let ty : (Parsetree.core_type) = Obj.magic ty in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.expression) = let _loc__1_ = (_startpos__1_, _endpos__1_) in - -# 2475 "parsing/parser.mly" - ( not_expecting _loc__1_ "wildcard \"_\"" ) -# 12933 "parsing/parser.ml" + let _startpos = _startpos_ty_ in + let _endpos = _endpos_ty_ in + let _v : (Parsetree.core_type) = +# 3771 "parsing/parser.mly" + ( ty ) +# 12691 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12953,19 +12711,81 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : (Parsetree.expression) = Obj.magic _2 in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.expression) = let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - let _sloc = (_symbolstartpos, _endpos) in + let _v : (Lexing.position * Parsetree.functor_parameter) = let _startpos = _startpos__1_ in -# 2478 "parsing/parser.mly" - ( mkexp_stack ~loc:_sloc ~kwd_loc:(_loc__1_) _2 ) -# 12969 "parsing/parser.ml" +# 1483 "parsing/parser.mly" + ( _startpos, Unit ) +# 12724 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = mty; + MenhirLib.EngineTypes.startp = _startpos_mty_; + MenhirLib.EngineTypes.endp = _endpos_mty_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let _5 : unit = Obj.magic _5 in + let mty : (Parsetree.module_type) = Obj.magic mty in + let _3 : unit = Obj.magic _3 in + let _1_inlined1 : (string option) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v : (Lexing.position * Parsetree.functor_parameter) = let x = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 12782 "parsing/parser.ml" + + in + let _startpos = _startpos__1_ in + +# 1486 "parsing/parser.mly" + ( _startpos, Named (x, mty) ) +# 12789 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12980,10 +12800,11 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : (string Asttypes.loc option) = -# 4231 "parsing/parser.mly" - ( None ) -# 12987 "parsing/parser.ml" + let _v : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = +# 3550 "parsing/parser.mly" + ( (([],[]),Pcstr_tuple [],None) ) +# 12808 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13007,15 +12828,16 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : (string Asttypes.loc) = Obj.magic _2 in + let _2 : (Parsetree.constructor_arguments) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (string Asttypes.loc option) = -# 4232 "parsing/parser.mly" - ( Some _2 ) -# 13019 "parsing/parser.ml" + let _v : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = +# 3551 "parsing/parser.mly" + ( (([],[]),_2,None) ) +# 12841 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13051,17 +12873,18 @@ module Tables = struct }; }; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.payload) = Obj.magic _3 in - let _2 : (string Asttypes.loc) = Obj.magic _2 in + let _4 : (Parsetree.core_type) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.constructor_arguments) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.extension) = -# 4244 "parsing/parser.mly" - ( (_2, _3) ) -# 13065 "parsing/parser.ml" + let _v : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = +# 3553 "parsing/parser.mly" + ( (([],[]),_2,Some _4) ) +# 12888 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13073,27 +12896,108 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _6 : (Parsetree.core_type) = Obj.magic _6 in + let _5 : unit = Obj.magic _5 in + let _4 : (Parsetree.constructor_arguments) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__6_ in + let _v : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = let _2 = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 12951 "parsing/parser.ml" + in + +# 1197 "parsing/parser.mly" + ( xs ) +# 12956 "parsing/parser.ml" + + in + +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 12962 "parsing/parser.ml" + + in + +# 3556 "parsing/parser.mly" + ( (_2,_4,Some _6) ) +# 12968 "parsing/parser.ml" + in + { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _1 : ( -# 880 "parsing/parser.mly" - (string * Location.t * string * Location.t * string option) -# 13086 "parsing/parser.ml" - ) = Obj.magic _1 in + let _2 : (Parsetree.core_type) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.extension) = let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4246 "parsing/parser.mly" - ( mk_quotedext ~loc:_sloc _1 ) -# 13097 "parsing/parser.ml" + let _endpos = _endpos__2_ in + let _v : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = +# 3558 "parsing/parser.mly" + ( (([],[]),Pcstr_tuple [],Some _2) ) +# 13001 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13106,82 +13010,137 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in + let _4 : (Parsetree.core_type) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in - let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.extension_constructor) = let attrs = - let _1 = _1_inlined3 in + let _endpos = _endpos__4_ in + let _v : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = let _2 = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 13050 "parsing/parser.ml" + in + +# 1197 "parsing/parser.mly" + ( xs ) +# 13055 "parsing/parser.ml" + + in -# 4228 "parsing/parser.mly" - ( _1 ) -# 13152 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 13061 "parsing/parser.ml" in - let _endpos_attrs_ = _endpos__1_inlined3_ in - let lid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + +# 3560 "parsing/parser.mly" + ( (_2,Pcstr_tuple [],Some _4) ) +# 13067 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = vars_args_res; + MenhirLib.EngineTypes.startp = _startpos_vars_args_res_; + MenhirLib.EngineTypes.endp = _endpos_vars_args_res_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let vars_args_res : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic vars_args_res in + let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined2_ in + let _v : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Location.t * Docstrings.info) = let attrs = + let _1 = _1_inlined2 in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 13164 "parsing/parser.ml" +# 4369 "parsing/parser.mly" + ( _1 ) +# 13118 "parsing/parser.ml" in + let _endpos_attrs_ = _endpos__1_inlined2_ in let cid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 13175 "parsing/parser.ml" +# 13130 "parsing/parser.ml" in let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3544 "parsing/parser.mly" - ( let info = symbol_info _endpos in - Te.rebind cid lid ~attrs ~loc:(make_loc _sloc) ~info ) -# 13185 "parsing/parser.ml" +# 3498 "parsing/parser.mly" + ( + let vars, args, res = vars_args_res in + let info = symbol_info _endpos in + let loc = make_loc _sloc in + cid, vars, args, res, attrs, loc, info + ) +# 13144 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13194,80 +13153,69 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = vars_args_res; + MenhirLib.EngineTypes.startp = _startpos_vars_args_res_; + MenhirLib.EngineTypes.endp = _endpos_vars_args_res_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in - let _3 : unit = Obj.magic _3 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let vars_args_res : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic vars_args_res in let _1 : (Asttypes.label) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.extension_constructor) = let attrs = - let _1 = _1_inlined2 in + let _endpos = _endpos__1_inlined1_ in + let _v : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option * + Parsetree.attributes * Location.t * Docstrings.info) = let attrs = + let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 13233 "parsing/parser.ml" - - in - let _endpos_attrs_ = _endpos__1_inlined2_ in - let lid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 13245 "parsing/parser.ml" +# 13188 "parsing/parser.ml" in + let _endpos_attrs_ = _endpos__1_inlined1_ in let cid = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 13255 "parsing/parser.ml" +# 13199 "parsing/parser.ml" in let _startpos_cid_ = _startpos__1_ in let _1 = -# 4036 "parsing/parser.mly" +# 4177 "parsing/parser.mly" ( () ) -# 13262 "parsing/parser.ml" +# 13206 "parsing/parser.ml" in let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos_cid_ in let _sloc = (_symbolstartpos, _endpos) in -# 3544 "parsing/parser.mly" - ( let info = symbol_info _endpos in - Te.rebind cid lid ~attrs ~loc:(make_loc _sloc) ~info ) -# 13271 "parsing/parser.ml" +# 3498 "parsing/parser.mly" + ( + let vars, args, res = vars_args_res in + let info = symbol_info _endpos in + let loc = make_loc _sloc in + cid, vars, args, res, attrs, loc, info + ) +# 13219 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13280,67 +13228,154 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _1_inlined4; + MenhirLib.EngineTypes.startp = _startpos__1_inlined4_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = layout; + MenhirLib.EngineTypes.startp = _startpos_layout_; + MenhirLib.EngineTypes.endp = _endpos_layout_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = params; + MenhirLib.EngineTypes.startp = _startpos_params_; + MenhirLib.EngineTypes.endp = _endpos_params_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ext; + MenhirLib.EngineTypes.startp = _startpos_ext_; + MenhirLib.EngineTypes.endp = _endpos_ext_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; }; }; }; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.payload) = Obj.magic _3 in - let _2 : (string Asttypes.loc) = Obj.magic _2 in + let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in + let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in + let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in + let _1_inlined3 : unit = Obj.magic _1_inlined3 in + let layout : (Parsetree.attribute option) = Obj.magic layout in + let _1_inlined2 : ( +# 909 "parsing/parser.mly" + (string) +# 13299 "parsing/parser.ml" + ) = Obj.magic _1_inlined2 in + let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Parsetree.attribute) = let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 4219 "parsing/parser.mly" - ( mark_symbol_docs _sloc; - mk_attr ~loc:(make_loc _sloc) _2 _3 ) -# 13321 "parsing/parser.ml" + let _endpos = _endpos__1_inlined4_ in + let _v : ((Asttypes.rec_flag * string Asttypes.loc option) * + Parsetree.type_declaration) = let attrs2 = + let _1 = _1_inlined4 in + +# 4365 "parsing/parser.mly" + ( _1 ) +# 13314 "parsing/parser.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined4_ in + let cstrs = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 13323 "parsing/parser.ml" + in + +# 1179 "parsing/parser.mly" + ( xs ) +# 13328 "parsing/parser.ml" + + in + +# 3377 "parsing/parser.mly" + ( _1 ) +# 13334 "parsing/parser.ml" + + in + let kind_priv_manifest = +# 3412 "parsing/parser.mly" + ( _2 ) +# 13340 "parsing/parser.ml" in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let params = -# 2193 "parsing/parser.mly" - ( [] ) -# 13339 "parsing/parser.ml" + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 13350 "parsing/parser.ml" + + in + let flag = +# 4197 "parsing/parser.mly" + ( Recursive ) +# 13356 "parsing/parser.ml" in + let attrs1 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 13363 "parsing/parser.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2018 "parsing/parser.mly" - ( params ) -# 13344 "parsing/parser.ml" +# 3348 "parsing/parser.mly" + ( + let (kind, priv, manifest) = kind_priv_manifest in + let docs = symbol_docs _sloc in + let attrs = attrs1 @ attrs2 in + let loc = make_loc _sloc in + (flag, ext), + Type.mk id ~params ?layout ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs + ) +# 13379 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13353,151 +13388,167 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _1_inlined5; + MenhirLib.EngineTypes.startp = _startpos__1_inlined5_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = xs; MenhirLib.EngineTypes.startp = _startpos_xs_; MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined4; + MenhirLib.EngineTypes.startp = _startpos__1_inlined4_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = layout; + MenhirLib.EngineTypes.startp = _startpos_layout_; + MenhirLib.EngineTypes.endp = _endpos_layout_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = params; + MenhirLib.EngineTypes.startp = _startpos_params_; + MenhirLib.EngineTypes.endp = _endpos_params_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ext; + MenhirLib.EngineTypes.startp = _startpos_ext_; + MenhirLib.EngineTypes.endp = _endpos_ext_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + }; + }; }; }; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let xs : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic xs in + let _1_inlined5 : (Parsetree.attributes) = Obj.magic _1_inlined5 in + let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in + let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in + let _1_inlined4 : unit = Obj.magic _1_inlined4 in + let layout : (Parsetree.attribute option) = Obj.magic layout in + let _1_inlined3 : ( +# 909 "parsing/parser.mly" + (string) +# 13465 "parsing/parser.ml" + ) = Obj.magic _1_inlined3 in + let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in + let _1_inlined2 : unit = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let params = - let params = + let _endpos = _endpos__1_inlined5_ in + let _v : ((Asttypes.rec_flag * string Asttypes.loc option) * + Parsetree.type_declaration) = let attrs2 = + let _1 = _1_inlined5 in + +# 4365 "parsing/parser.mly" + ( _1 ) +# 13481 "parsing/parser.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined5_ in + let cstrs = + let _1 = let xs = # 253 "" ( List.rev xs ) -# 13385 "parsing/parser.ml" +# 13490 "parsing/parser.ml" in -# 1158 "parsing/parser.mly" +# 1179 "parsing/parser.mly" ( xs ) -# 13390 "parsing/parser.ml" +# 13495 "parsing/parser.ml" in -# 2195 "parsing/parser.mly" - ( params ) -# 13396 "parsing/parser.ml" +# 3377 "parsing/parser.mly" + ( _1 ) +# 13501 "parsing/parser.ml" in - -# 2018 "parsing/parser.mly" - ( params ) -# 13402 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Parsetree.expression) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.expression) = -# 2878 "parsing/parser.mly" - ( _1 ) -# 13427 "parsing/parser.ml" + let kind_priv_manifest = +# 3412 "parsing/parser.mly" + ( _2 ) +# 13507 "parsing/parser.ml" in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : (Parsetree.expression) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.core_type option * Parsetree.core_type option) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _endpos = _endpos__3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 13517 "parsing/parser.ml" + + in + let flag = + let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + +# 4199 "parsing/parser.mly" + ( not_expecting _loc "nonrec flag" ) +# 13528 "parsing/parser.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 13536 "parsing/parser.ml" + + in + let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2880 "parsing/parser.mly" - ( mkexp_constraint ~loc:_sloc _3 _1 ) -# 13469 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _2 : (Parsetree.expression) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.expression) = -# 2918 "parsing/parser.mly" - ( _2 ) -# 13501 "parsing/parser.ml" +# 3348 "parsing/parser.mly" + ( + let (kind, priv, manifest) = kind_priv_manifest in + let docs = symbol_docs _sloc in + let attrs = attrs1 @ attrs2 in + let loc = make_loc _sloc in + (flag, ext), + Type.mk id ~params ?layout ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs + ) +# 13552 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13510,94 +13561,142 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = kind_priv_manifest; + MenhirLib.EngineTypes.startp = _startpos_kind_priv_manifest_; + MenhirLib.EngineTypes.endp = _endpos_kind_priv_manifest_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = layout; + MenhirLib.EngineTypes.startp = _startpos_layout_; + MenhirLib.EngineTypes.endp = _endpos_layout_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = params; + MenhirLib.EngineTypes.startp = _startpos_params_; + MenhirLib.EngineTypes.endp = _endpos_params_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ext; + MenhirLib.EngineTypes.startp = _startpos_ext_; + MenhirLib.EngineTypes.endp = _endpos_ext_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; }; }; }; } = _menhir_stack in - let _4 : (Parsetree.expression) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.core_type) = Obj.magic _2 in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in + let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in + let layout : (Parsetree.attribute option) = Obj.magic layout in + let _1_inlined2 : ( +# 909 "parsing/parser.mly" + (string) +# 13625 "parsing/parser.ml" + ) = Obj.magic _1_inlined2 in + let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Parsetree.expression) = let _1 = - let _1 = -# 2920 "parsing/parser.mly" - ( Pexp_constraint (_4, _2) ) -# 13548 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_inlined3_ in + let _v : ((Asttypes.rec_flag * string Asttypes.loc option) * + Parsetree.type_declaration) = let attrs2 = + let _1 = _1_inlined3 in + +# 4365 "parsing/parser.mly" + ( _1 ) +# 13640 "parsing/parser.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let cstrs = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 13649 "parsing/parser.ml" + in + +# 1179 "parsing/parser.mly" + ( xs ) +# 13654 "parsing/parser.ml" + + in + +# 3377 "parsing/parser.mly" + ( _1 ) +# 13660 "parsing/parser.ml" + + in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" - ( mkexp ~loc:_sloc _1 ) -# 13557 "parsing/parser.ml" +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 13671 "parsing/parser.ml" in - -# 2921 "parsing/parser.mly" - ( _1 ) -# 13563 "parsing/parser.ml" + let flag = +# 4193 "parsing/parser.mly" + ( Recursive ) +# 13677 "parsing/parser.ml" in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _2 : (Parsetree.expression) = Obj.magic _2 in - let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.expression) = let _endpos = _endpos__2_ in + let attrs1 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 13684 "parsing/parser.ml" + + in + let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2924 "parsing/parser.mly" - ( - let (l,o,p) = _1 in - ghexp ~loc:_sloc (Pexp_fun(l, o, p, _2)) - ) -# 13601 "parsing/parser.ml" +# 3348 "parsing/parser.mly" + ( + let (kind, priv, manifest) = kind_priv_manifest in + let docs = symbol_docs _sloc in + let attrs = attrs1 @ attrs2 in + let loc = make_loc _sloc in + (flag, ext), + Type.mk id ~params ?layout ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs + ) +# 13700 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13610,55 +13709,149 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _1_inlined4; + MenhirLib.EngineTypes.startp = _startpos__1_inlined4_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = kind_priv_manifest; + MenhirLib.EngineTypes.startp = _startpos_kind_priv_manifest_; + MenhirLib.EngineTypes.endp = _endpos_kind_priv_manifest_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = layout; + MenhirLib.EngineTypes.startp = _startpos_layout_; + MenhirLib.EngineTypes.endp = _endpos_layout_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = params; + MenhirLib.EngineTypes.startp = _startpos_params_; + MenhirLib.EngineTypes.endp = _endpos_params_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ext; + MenhirLib.EngineTypes.startp = _startpos_ext_; + MenhirLib.EngineTypes.endp = _endpos_ext_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; }; }; }; }; } = _menhir_stack in - let _5 : (Parsetree.expression) = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let xs : (string Asttypes.loc list) = Obj.magic xs in - let _2 : unit = Obj.magic _2 in + let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in + let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in + let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in + let layout : (Parsetree.attribute option) = Obj.magic layout in + let _1_inlined3 : ( +# 909 "parsing/parser.mly" + (string) +# 13779 "parsing/parser.ml" + ) = Obj.magic _1_inlined3 in + let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in + let _1_inlined2 : unit = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _3 = -# 2760 "parsing/parser.mly" + let _endpos = _endpos__1_inlined4_ in + let _v : ((Asttypes.rec_flag * string Asttypes.loc option) * + Parsetree.type_declaration) = let attrs2 = + let _1 = _1_inlined4 in + +# 4365 "parsing/parser.mly" + ( _1 ) +# 13795 "parsing/parser.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined4_ in + let cstrs = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 13804 "parsing/parser.ml" + in + +# 1179 "parsing/parser.mly" ( xs ) -# 13654 "parsing/parser.ml" +# 13809 "parsing/parser.ml" + + in + +# 3377 "parsing/parser.mly" + ( _1 ) +# 13815 "parsing/parser.ml" + + in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 13826 "parsing/parser.ml" + + in + let flag = +# 4194 "parsing/parser.mly" + ( Nonrecursive ) +# 13832 "parsing/parser.ml" in - let _endpos = _endpos__5_ in + let attrs1 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 13839 "parsing/parser.ml" + + in + let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2929 "parsing/parser.mly" - ( mk_newtypes ~loc:_sloc _3 _5 ) -# 13662 "parsing/parser.ml" +# 3348 "parsing/parser.mly" + ( + let (kind, priv, manifest) = kind_priv_manifest in + let docs = symbol_docs _sloc in + let attrs = attrs1 @ attrs2 in + let loc = make_loc _sloc in + (flag, ext), + Type.mk id ~params ?layout ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs + ) +# 13855 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13671,19 +13864,23 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ty : (Parsetree.core_type) = Obj.magic ty in + let _1 : ( +# 962 "parsing/parser.mly" + (string) +# 13876 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_ty_ in - let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = -# 3660 "parsing/parser.mly" - ( ty ) -# 13687 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Asttypes.label) = +# 4029 "parsing/parser.mly" + ( _1 ) +# 13884 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13696,19 +13893,23 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ty : (Parsetree.core_type) = Obj.magic ty in + let _1 : ( +# 909 "parsing/parser.mly" + (string) +# 13905 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_ty_ in - let _endpos = _endpos_ty_ in - let _v : (Parsetree.core_type) = -# 3662 "parsing/parser.mly" - ( ty ) -# 13712 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Asttypes.label) = +# 4030 "parsing/parser.mly" + ( _1 ) +# 13913 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13733,15 +13934,14 @@ module Tables = struct }; } = _menhir_stack in let _2 : unit = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _1 : (Parsetree.structure) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Lexing.position * Parsetree.functor_parameter) = let _startpos = _startpos__1_ in - -# 1412 "parsing/parser.mly" - ( _startpos, Unit ) -# 13745 "parsing/parser.ml" + let _v : (Parsetree.structure) = +# 1350 "parsing/parser.mly" + ( _1 ) +# 13945 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13753,79 +13953,20 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = mty; - MenhirLib.EngineTypes.startp = _startpos_mty_; - MenhirLib.EngineTypes.endp = _endpos_mty_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let mty : (Parsetree.module_type) = Obj.magic mty in - let _3 : unit = Obj.magic _3 in - let _1_inlined1 : (string option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Lexing.position * Parsetree.functor_parameter) = let x = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 13803 "parsing/parser.ml" - - in - let _startpos = _startpos__1_ in - -# 1415 "parsing/parser.mly" - ( _startpos, Named (x, mty) ) -# 13810 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = -# 3446 "parsing/parser.mly" - ( ([],Pcstr_tuple [],None) ) -# 13829 "parsing/parser.ml" + let _endpos = _endpos__1_ in + let _v : (bool) = +# 1729 "parsing/parser.mly" + ( false ) +# 13970 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13849,16 +13990,15 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : (Parsetree.constructor_arguments) = Obj.magic _2 in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = -# 3447 "parsing/parser.mly" - ( ([],_2,None) ) -# 13862 "parsing/parser.ml" + let _v : (bool) = +# 1731 "parsing/parser.mly" + ( true ) +# 14002 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13869,43 +14009,14 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - } = _menhir_stack in - let _4 : (Parsetree.core_type) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.constructor_arguments) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = -# 3449 "parsing/parser.mly" - ( ([],_2,Some _4) ) -# 13909 "parsing/parser.ml" + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (string) = +# 4079 "parsing/parser.mly" + ( "" ) +# 14020 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13918,74 +14029,26 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _6 : (Parsetree.core_type) = Obj.magic _6 in - let _5 : unit = Obj.magic _5 in - let _4 : (Parsetree.constructor_arguments) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__6_ in - let _v : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = let _2 = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 13972 "parsing/parser.ml" - in - -# 1126 "parsing/parser.mly" - ( xs ) -# 13977 "parsing/parser.ml" - - in - -# 3595 "parsing/parser.mly" - ( _1 ) -# 13983 "parsing/parser.ml" - - in - -# 3452 "parsing/parser.mly" - ( (_2,_4,Some _6) ) -# 13989 "parsing/parser.ml" + let _endpos = _endpos__2_ in + let _v : (string) = +# 4080 "parsing/parser.mly" + ( ";.." ) +# 14052 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14009,16 +14072,15 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : (Parsetree.core_type) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _2 : unit = Obj.magic _2 in + let _1 : (Parsetree.signature) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = -# 3454 "parsing/parser.mly" - ( ([],Pcstr_tuple [],Some _2) ) -# 14022 "parsing/parser.ml" + let _v : (Parsetree.signature) = +# 1357 "parsing/parser.mly" + ( _1 ) +# 14084 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14041,9 +14103,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -14054,37 +14116,17 @@ module Tables = struct }; }; } = _menhir_stack in - let _4 : (Parsetree.core_type) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.payload) = Obj.magic _3 in + let _2 : (string Asttypes.loc) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = let _2 = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 14071 "parsing/parser.ml" - in - -# 1126 "parsing/parser.mly" - ( xs ) -# 14076 "parsing/parser.ml" - - in - -# 3595 "parsing/parser.mly" - ( _1 ) -# 14082 "parsing/parser.ml" - - in - -# 3456 "parsing/parser.mly" - ( (_2,Pcstr_tuple [],Some _4) ) -# 14088 "parsing/parser.ml" + let _v : (Parsetree.extension) = +# 4390 "parsing/parser.mly" + ( (_2, _3) ) +# 14130 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14096,72 +14138,27 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = vars_args_res; - MenhirLib.EngineTypes.startp = _startpos_vars_args_res_; - MenhirLib.EngineTypes.endp = _endpos_vars_args_res_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let vars_args_res : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = Obj.magic vars_args_res in - let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let _1 : ( +# 953 "parsing/parser.mly" + (string * Location.t * string * Location.t * string option) +# 14151 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined2_ in - let _v : (Ast_helper.str * string Asttypes.loc list * - Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Docstrings.info) = let attrs = - let _1 = _1_inlined2 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 14139 "parsing/parser.ml" - - in - let _endpos_attrs_ = _endpos__1_inlined2_ in - let cid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 14151 "parsing/parser.ml" - - in - let _endpos = _endpos_attrs_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.extension) = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3394 "parsing/parser.mly" - ( - let vars, args, res = vars_args_res in - let info = symbol_info _endpos in - let loc = make_loc _sloc in - cid, vars, args, res, attrs, loc, info - ) -# 14165 "parsing/parser.ml" +# 4392 "parsing/parser.mly" + ( mk_quotedext ~loc:_sloc _1 ) +# 14162 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14174,69 +14171,96 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = vars_args_res; - MenhirLib.EngineTypes.startp = _startpos_vars_args_res_; - MenhirLib.EngineTypes.endp = _endpos_vars_args_res_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; } = _menhir_stack in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let vars_args_res : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = Obj.magic vars_args_res in - let _1 : (Asttypes.label) = Obj.magic _1 in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _3 : unit = Obj.magic _3 in + let _1_inlined1 : ( +# 909 "parsing/parser.mly" + (string) +# 14210 "parsing/parser.ml" + ) = Obj.magic _1_inlined1 in + let _1 : (Asttypes.mutable_flag * Asttypes.global_flag) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Ast_helper.str * string Asttypes.loc list * - Parsetree.constructor_arguments * Parsetree.core_type option * - Parsetree.attributes * Location.t * Docstrings.info) = let attrs = - let _1 = _1_inlined1 in + let _endpos = _endpos__1_inlined3_ in + let _v : (Parsetree.label_declaration) = let _5 = + let _1 = _1_inlined3 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 14209 "parsing/parser.ml" +# 14221 "parsing/parser.ml" in - let _endpos_attrs_ = _endpos__1_inlined1_ in - let cid = + let _endpos__5_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in + +# 3722 "parsing/parser.mly" + ( _1 ) +# 14230 "parsing/parser.ml" + + in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = +# 4007 "parsing/parser.mly" + ( _1 ) +# 14238 "parsing/parser.ml" + in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 14220 "parsing/parser.ml" +# 14246 "parsing/parser.ml" in - let _startpos_cid_ = _startpos__1_ in - let _1 = -# 4036 "parsing/parser.mly" - ( () ) -# 14227 "parsing/parser.ml" - in - let _endpos = _endpos_attrs_ in - let _symbolstartpos = _startpos_cid_ in + let _startpos__2_ = _startpos__1_inlined1_ in + let _endpos = _endpos__5_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _loc__1_ = (_startpos__1_, _endpos__1_) in let _sloc = (_symbolstartpos, _endpos) in -# 3394 "parsing/parser.mly" - ( - let vars, args, res = vars_args_res in - let info = symbol_info _endpos in - let loc = make_loc _sloc in - cid, vars, args, res, attrs, loc, info - ) -# 14240 "parsing/parser.ml" +# 3583 "parsing/parser.mly" + ( let info = symbol_info _endpos in + let mut, gbl = _1 in + mkld_global_maybe gbl + (Type.field _2 _4 ~mut ~attrs:_5 ~loc:(make_loc _sloc) ~info) + (make_loc _loc__1_) ) +# 14264 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14254,47 +14278,35 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = params; - MenhirLib.EngineTypes.startp = _startpos_params_; - MenhirLib.EngineTypes.endp = _endpos_params_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ext; - MenhirLib.EngineTypes.startp = _startpos_ext_; - MenhirLib.EngineTypes.endp = _endpos_ext_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; @@ -14303,92 +14315,80 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in - let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in - let _1_inlined3 : unit = Obj.magic _1_inlined3 in - let _1_inlined2 : ( -# 838 "parsing/parser.mly" + let _6 : unit = Obj.magic _6 in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _3 : unit = Obj.magic _3 in + let _1_inlined1 : ( +# 909 "parsing/parser.mly" (string) -# 14313 "parsing/parser.ml" - ) = Obj.magic _1_inlined2 in - let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in - let _1 : unit = Obj.magic _1 in +# 14326 "parsing/parser.ml" + ) = Obj.magic _1_inlined1 in + let _1 : (Asttypes.mutable_flag * Asttypes.global_flag) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined4_ in - let _v : ((Asttypes.rec_flag * string Asttypes.loc option) * - Parsetree.type_declaration) = let attrs2 = + let _v : (Parsetree.label_declaration) = let _7 = let _1 = _1_inlined4 in -# 4224 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 14328 "parsing/parser.ml" +# 14337 "parsing/parser.ml" in - let _endpos_attrs2_ = _endpos__1_inlined4_ in - let cstrs = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 14337 "parsing/parser.ml" - in - -# 1108 "parsing/parser.mly" - ( xs ) -# 14342 "parsing/parser.ml" - - in + let _endpos__7_ = _endpos__1_inlined4_ in + let _5 = + let _1 = _1_inlined3 in -# 3284 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 14348 "parsing/parser.ml" +# 14346 "parsing/parser.ml" in - let kind_priv_manifest = -# 3319 "parsing/parser.mly" - ( _2 ) -# 14354 "parsing/parser.ml" - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos__5_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in + +# 3722 "parsing/parser.mly" + ( _1 ) +# 14355 "parsing/parser.ml" + + in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = +# 4007 "parsing/parser.mly" + ( _1 ) +# 14363 "parsing/parser.ml" + in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 14364 "parsing/parser.ml" - - in - let flag = -# 4056 "parsing/parser.mly" - ( Recursive ) -# 14370 "parsing/parser.ml" - in - let attrs1 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 14377 "parsing/parser.ml" +# 14371 "parsing/parser.ml" in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in + let _startpos__2_ = _startpos__1_inlined1_ in + let _endpos = _endpos__7_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _loc__1_ = (_startpos__1_, _endpos__1_) in let _sloc = (_symbolstartpos, _endpos) in -# 3256 "parsing/parser.mly" - ( - let (kind, priv, manifest) = kind_priv_manifest in - let docs = symbol_docs _sloc in - let attrs = attrs1 @ attrs2 in - let loc = make_loc _sloc in - (flag, ext), - Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs - ) +# 3592 "parsing/parser.mly" + ( let info = + match rhs_info _endpos__5_ with + | Some _ as info_before_semi -> info_before_semi + | None -> symbol_info _endpos + in + let mut, gbl = _1 in + mkld_global_maybe gbl + (Type.field _2 _4 ~mut ~attrs:(_5 @ _7) ~loc:(make_loc _sloc) ~info) + (make_loc _loc__1_) ) # 14393 "parsing/parser.ml" in { @@ -14398,164 +14398,129 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos; MenhirLib.EngineTypes.next = _menhir_stack; }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Parsetree.label_declaration) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.label_declaration list) = +# 3577 "parsing/parser.mly" + ( [_1] ) +# 14418 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Parsetree.label_declaration) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.label_declaration list) = +# 3578 "parsing/parser.mly" + ( [_1] ) +# 14443 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined5; - MenhirLib.EngineTypes.startp = _startpos__1_inlined5_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined5_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined4; - MenhirLib.EngineTypes.startp = _startpos__1_inlined4_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = params; - MenhirLib.EngineTypes.startp = _startpos_params_; - MenhirLib.EngineTypes.endp = _endpos_params_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ext; - MenhirLib.EngineTypes.startp = _startpos_ext_; - MenhirLib.EngineTypes.endp = _endpos_ext_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _1_inlined5 : (Parsetree.attributes) = Obj.magic _1_inlined5 in - let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in - let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in - let _1_inlined4 : unit = Obj.magic _1_inlined4 in - let _1_inlined3 : ( -# 838 "parsing/parser.mly" + let _2 : (Parsetree.label_declaration list) = Obj.magic _2 in + let _1 : (Parsetree.label_declaration) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Parsetree.label_declaration list) = +# 3579 "parsing/parser.mly" + ( _1 :: _2 ) +# 14475 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 909 "parsing/parser.mly" (string) -# 14472 "parsing/parser.ml" - ) = Obj.magic _1_inlined3 in - let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in - let _1_inlined2 : unit = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in - let _1 : unit = Obj.magic _1 in +# 14496 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined5_ in - let _v : ((Asttypes.rec_flag * string Asttypes.loc option) * - Parsetree.type_declaration) = let attrs2 = - let _1 = _1_inlined5 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 14488 "parsing/parser.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined5_ in - let cstrs = + let _endpos = _endpos__1_ in + let _v : (string * Parsetree.pattern) = let x = let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 14497 "parsing/parser.ml" - in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 1108 "parsing/parser.mly" - ( xs ) -# 14502 "parsing/parser.ml" +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 14509 "parsing/parser.ml" in - -# 3284 "parsing/parser.mly" - ( _1 ) -# 14508 "parsing/parser.ml" - - in - let kind_priv_manifest = -# 3319 "parsing/parser.mly" - ( _2 ) -# 14514 "parsing/parser.ml" - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 14524 "parsing/parser.ml" - - in - let flag = - let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in - -# 4058 "parsing/parser.mly" - ( not_expecting _loc "nonrec flag" ) -# 14535 "parsing/parser.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 14543 "parsing/parser.ml" +# 2476 "parsing/parser.mly" + ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) +# 14518 "parsing/parser.ml" in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 3256 "parsing/parser.mly" - ( - let (kind, priv, manifest) = kind_priv_manifest in - let docs = symbol_docs _sloc in - let attrs = attrs1 @ attrs2 in - let loc = make_loc _sloc in - (flag, ext), - Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs - ) -# 14559 "parsing/parser.ml" +# 2462 "parsing/parser.mly" + ( x ) +# 14524 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14568,135 +14533,63 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = cty; + MenhirLib.EngineTypes.startp = _startpos_cty_; + MenhirLib.EngineTypes.endp = _endpos_cty_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = kind_priv_manifest; - MenhirLib.EngineTypes.startp = _startpos_kind_priv_manifest_; - MenhirLib.EngineTypes.endp = _endpos_kind_priv_manifest_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = params; - MenhirLib.EngineTypes.startp = _startpos_params_; - MenhirLib.EngineTypes.endp = _endpos_params_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ext; - MenhirLib.EngineTypes.startp = _startpos_ext_; - MenhirLib.EngineTypes.endp = _endpos_ext_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in - let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in - let _1_inlined2 : ( -# 838 "parsing/parser.mly" + let cty : (Parsetree.core_type) = Obj.magic cty in + let _2 : unit = Obj.magic _2 in + let _1 : ( +# 909 "parsing/parser.mly" (string) -# 14625 "parsing/parser.ml" - ) = Obj.magic _1_inlined2 in - let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in - let _1 : unit = Obj.magic _1 in +# 14559 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined3_ in - let _v : ((Asttypes.rec_flag * string Asttypes.loc option) * - Parsetree.type_declaration) = let attrs2 = - let _1 = _1_inlined3 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 14640 "parsing/parser.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let cstrs = + let _endpos = _endpos_cty_ in + let _v : (string * Parsetree.pattern) = let x = let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 14649 "parsing/parser.ml" - in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 1108 "parsing/parser.mly" - ( xs ) -# 14654 "parsing/parser.ml" +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 14572 "parsing/parser.ml" in - -# 3284 "parsing/parser.mly" - ( _1 ) -# 14660 "parsing/parser.ml" - - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 14671 "parsing/parser.ml" - - in - let flag = -# 4052 "parsing/parser.mly" - ( Recursive ) -# 14677 "parsing/parser.ml" - in - let attrs1 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 14684 "parsing/parser.ml" +# 2476 "parsing/parser.mly" + ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) +# 14581 "parsing/parser.ml" in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in + let _startpos_x_ = _startpos__1_ in + let _endpos = _endpos_cty_ in + let _symbolstartpos = _startpos_x_ in let _sloc = (_symbolstartpos, _endpos) in -# 3256 "parsing/parser.mly" - ( - let (kind, priv, manifest) = kind_priv_manifest in - let docs = symbol_docs _sloc in - let attrs = attrs1 @ attrs2 in - let loc = make_loc _sloc in - (flag, ext), - Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs - ) -# 14700 "parsing/parser.ml" +# 2464 "parsing/parser.mly" + ( let lab, pat = x in + lab, + mkpat ~loc:_sloc (Ppat_constraint (pat, cty)) ) +# 14593 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14709,142 +14602,115 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined4; - MenhirLib.EngineTypes.startp = _startpos__1_inlined4_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = kind_priv_manifest; - MenhirLib.EngineTypes.startp = _startpos_kind_priv_manifest_; - MenhirLib.EngineTypes.endp = _endpos_kind_priv_manifest_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = params; - MenhirLib.EngineTypes.startp = _startpos_params_; - MenhirLib.EngineTypes.endp = _endpos_params_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ext; - MenhirLib.EngineTypes.startp = _startpos_ext_; - MenhirLib.EngineTypes.endp = _endpos_ext_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in - let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in - let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in - let _1_inlined3 : ( -# 838 "parsing/parser.mly" + let ty : (Parsetree.core_type) = Obj.magic ty in + let _2_inlined1 : unit = Obj.magic _2_inlined1 in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in + let _2 : unit = Obj.magic _2 in + let _1 : ( +# 909 "parsing/parser.mly" (string) -# 14772 "parsing/parser.ml" - ) = Obj.magic _1_inlined3 in - let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in - let _1_inlined2 : unit = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in - let _1 : unit = Obj.magic _1 in +# 14642 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined4_ in - let _v : ((Asttypes.rec_flag * string Asttypes.loc option) * - Parsetree.type_declaration) = let attrs2 = - let _1 = _1_inlined4 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 14788 "parsing/parser.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined4_ in - let cstrs = + let _endpos = _endpos_ty_ in + let _v : (string * Parsetree.pattern) = let cty = let _1 = - let xs = + let vars = + let _1 = + let xs = # 253 "" ( List.rev xs ) -# 14797 "parsing/parser.ml" - in - -# 1108 "parsing/parser.mly" +# 14654 "parsing/parser.ml" + in + +# 1197 "parsing/parser.mly" ( xs ) -# 14802 "parsing/parser.ml" +# 14659 "parsing/parser.ml" + + in + +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 14665 "parsing/parser.ml" + + in + +# 2469 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 14671 "parsing/parser.ml" in - -# 3284 "parsing/parser.mly" - ( _1 ) -# 14808 "parsing/parser.ml" - - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_xs_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 14819 "parsing/parser.ml" +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 14681 "parsing/parser.ml" in - let flag = -# 4053 "parsing/parser.mly" - ( Nonrecursive ) -# 14825 "parsing/parser.ml" - in - let attrs1 = - let _1 = _1_inlined1 in + let _endpos_cty_ = _endpos_ty_ in + let x = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 14693 "parsing/parser.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4228 "parsing/parser.mly" - ( _1 ) -# 14832 "parsing/parser.ml" +# 2476 "parsing/parser.mly" + ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) +# 14702 "parsing/parser.ml" in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in + let _startpos_x_ = _startpos__1_ in + let _endpos = _endpos_cty_ in + let _symbolstartpos = _startpos_x_ in let _sloc = (_symbolstartpos, _endpos) in -# 3256 "parsing/parser.mly" - ( - let (kind, priv, manifest) = kind_priv_manifest in - let docs = symbol_docs _sloc in - let attrs = attrs1 @ attrs2 in - let loc = make_loc _sloc in - (flag, ext), - Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs - ) -# 14848 "parsing/parser.ml" +# 2470 "parsing/parser.mly" + ( let lab, pat = x in + lab, + mkpat ~loc:_sloc (Ppat_constraint (pat, cty)) ) +# 14714 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14862,18 +14728,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ( -# 891 "parsing/parser.mly" - (string) -# 14869 "parsing/parser.ml" - ) = Obj.magic _1 in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Asttypes.label) = -# 3895 "parsing/parser.mly" - ( _1 ) -# 14877 "parsing/parser.ml" + let _v : (Longident.t) = +# 4111 "parsing/parser.mly" + ( _1 ) +# 14739 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14891,18 +14753,365 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in + let _1 : (Parsetree.expression) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Asttypes.arg_label * Parsetree.expression) = +# 2817 "parsing/parser.mly" + ( (Nolabel, _1) ) +# 14764 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : (Parsetree.expression) = Obj.magic _2 in let _1 : ( -# 838 "parsing/parser.mly" +# 895 "parsing/parser.mly" + (string) +# 14792 "parsing/parser.ml" + ) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Asttypes.arg_label * Parsetree.expression) = +# 2819 "parsing/parser.mly" + ( (Labelled _1, _2) ) +# 14800 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = label; + MenhirLib.EngineTypes.startp = _startpos_label_; + MenhirLib.EngineTypes.endp = _endpos_label_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let label : ( +# 909 "parsing/parser.mly" + (string) +# 14827 "parsing/parser.ml" + ) = Obj.magic label in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos_label_ in + let _v : (Asttypes.arg_label * Parsetree.expression) = let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 2821 "parsing/parser.mly" + ( let loc = _loc_label_ in + (Labelled label, mkexpvar ~loc label) ) +# 14838 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = label; + MenhirLib.EngineTypes.startp = _startpos_label_; + MenhirLib.EngineTypes.endp = _endpos_label_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let _5 : unit = Obj.magic _5 in + let ty : (Parsetree.core_type option * Parsetree.core_type option) = Obj.magic ty in + let label : ( +# 909 "parsing/parser.mly" (string) +# 14885 "parsing/parser.ml" + ) = Obj.magic label in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v : (Asttypes.arg_label * Parsetree.expression) = let _endpos = _endpos__5_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 2824 "parsing/parser.mly" + ( (Labelled label, mkexp_constraint ~loc:(_startpos__2_, _endpos) + (mkexpvar ~loc:_loc_label_ label) ty) ) # 14898 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = label; + MenhirLib.EngineTypes.startp = _startpos_label_; + MenhirLib.EngineTypes.endp = _endpos_label_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let label : ( +# 909 "parsing/parser.mly" + (string) +# 14925 "parsing/parser.ml" + ) = Obj.magic label in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos_label_ in + let _v : (Asttypes.arg_label * Parsetree.expression) = let _loc_label_ = (_startpos_label_, _endpos_label_) in + +# 2827 "parsing/parser.mly" + ( let loc = _loc_label_ in + (Optional label, mkexpvar ~loc label) ) +# 14936 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : (Parsetree.expression) = Obj.magic _2 in + let _1 : ( +# 928 "parsing/parser.mly" + (string) +# 14964 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Asttypes.label) = -# 3896 "parsing/parser.mly" - ( _1 ) -# 14906 "parsing/parser.ml" + let _endpos = _endpos__2_ in + let _v : (Asttypes.arg_label * Parsetree.expression) = +# 2830 "parsing/parser.mly" + ( (Optional _1, _2) ) +# 14972 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let _6 : unit = Obj.magic _6 in + let _1_inlined1 : (Parsetree.expression option) = Obj.magic _1_inlined1 in + let _4 : (string * Parsetree.pattern) = Obj.magic _4 in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__6_ in + let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = + let _1 = _1_inlined1 in + +# 2458 "parsing/parser.mly" + ( _1 ) +# 15027 "parsing/parser.ml" + + in + let _3 = +# 3809 "parsing/parser.mly" + ( false ) +# 15033 "parsing/parser.ml" + in + let (_endpos__3_, _startpos__3_) = (_endpos__2_, _endpos__2_) in + let _loc__3_ = (_startpos__3_, _endpos__3_) in + +# 2421 "parsing/parser.mly" + ( (Optional (fst _4), _5, mkpat_local_if _3 (snd _4) _loc__3_) ) +# 15040 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _6 : unit = Obj.magic _6 in + let _1_inlined2 : (Parsetree.expression option) = Obj.magic _1_inlined2 in + let _4 : (string * Parsetree.pattern) = Obj.magic _4 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__6_ in + let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = + let _1 = _1_inlined2 in + +# 2458 "parsing/parser.mly" + ( _1 ) +# 15102 "parsing/parser.ml" + + in + let _3 = +# 3811 "parsing/parser.mly" + ( true ) +# 15108 "parsing/parser.ml" + in + let (_endpos__3_, _startpos__3_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _loc__3_ = (_startpos__3_, _endpos__3_) in + +# 2421 "parsing/parser.mly" + ( (Optional (fst _4), _5, mkpat_local_if _3 (snd _4) _loc__3_) ) +# 15115 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14915,9 +15124,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -14926,40 +15135,40 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.structure) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.structure) = -# 1279 "parsing/parser.mly" - ( _1 ) -# 14938 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in + let _1_inlined1 : ( +# 909 "parsing/parser.mly" + (string) +# 15142 "parsing/parser.ml" + ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (bool) = -# 1658 "parsing/parser.mly" - ( false ) -# 14963 "parsing/parser.ml" + let _endpos = _endpos__1_inlined1_ in + let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 15157 "parsing/parser.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2476 "parsing/parser.mly" + ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) +# 15166 "parsing/parser.ml" + + in + +# 2423 "parsing/parser.mly" + ( (Optional (fst _2), None, snd _2) ) +# 15172 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14972,44 +15181,66 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in + let _6 : unit = Obj.magic _6 in + let _1_inlined1 : (Parsetree.expression option) = Obj.magic _1_inlined1 in + let _4 : (Parsetree.pattern) = Obj.magic _4 in let _2 : unit = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _1 : ( +# 928 "parsing/parser.mly" + (string) +# 15221 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (bool) = -# 1660 "parsing/parser.mly" - ( true ) -# 14995 "parsing/parser.ml" + let _endpos = _endpos__6_ in + let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = + let _1 = _1_inlined1 in + +# 2458 "parsing/parser.mly" + ( _1 ) +# 15231 "parsing/parser.ml" + + in + let _3 = +# 3809 "parsing/parser.mly" + ( false ) +# 15237 "parsing/parser.ml" in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (string) = -# 3945 "parsing/parser.mly" - ( "" ) -# 15013 "parsing/parser.ml" + let (_endpos__3_, _startpos__3_) = (_endpos__2_, _endpos__2_) in + let _loc__3_ = (_startpos__3_, _endpos__3_) in + +# 2425 "parsing/parser.mly" + ( (Optional _1, _5, mkpat_local_if _3 _4 _loc__3_) ) +# 15244 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15022,26 +15253,73 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; } = _menhir_stack in + let _6 : unit = Obj.magic _6 in + let _1_inlined2 : (Parsetree.expression option) = Obj.magic _1_inlined2 in + let _4 : (Parsetree.pattern) = Obj.magic _4 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _1 : ( +# 928 "parsing/parser.mly" + (string) +# 15300 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (string) = -# 3946 "parsing/parser.mly" - ( ";.." ) -# 15045 "parsing/parser.ml" + let _endpos = _endpos__6_ in + let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = + let _1 = _1_inlined2 in + +# 2458 "parsing/parser.mly" + ( _1 ) +# 15310 "parsing/parser.ml" + + in + let _3 = +# 3811 "parsing/parser.mly" + ( true ) +# 15316 "parsing/parser.ml" + in + let (_endpos__3_, _startpos__3_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _loc__3_ = (_startpos__3_, _endpos__3_) in + +# 2425 "parsing/parser.mly" + ( (Optional _1, _5, mkpat_local_if _3 _4 _loc__3_) ) +# 15323 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15065,15 +15343,19 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.signature) = Obj.magic _1 in + let _2 : (Parsetree.pattern) = Obj.magic _2 in + let _1 : ( +# 928 "parsing/parser.mly" + (string) +# 15351 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.signature) = -# 1286 "parsing/parser.mly" - ( _1 ) -# 15077 "parsing/parser.ml" + let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = +# 2427 "parsing/parser.mly" + ( (Optional _1, None, _2) ) +# 15359 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15086,14 +15368,14 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -15109,49 +15391,25 @@ module Tables = struct }; }; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.payload) = Obj.magic _3 in - let _2 : (string Asttypes.loc) = Obj.magic _2 in + let _5 : unit = Obj.magic _5 in + let _4 : (string * Parsetree.pattern) = Obj.magic _4 in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Parsetree.extension) = -# 4249 "parsing/parser.mly" - ( (_2, _3) ) -# 15123 "parsing/parser.ml" + let _endpos = _endpos__5_ in + let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _3 = +# 3809 "parsing/parser.mly" + ( false ) +# 15405 "parsing/parser.ml" in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : ( -# 882 "parsing/parser.mly" - (string * Location.t * string * Location.t * string option) -# 15144 "parsing/parser.ml" - ) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.extension) = let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let (_endpos__3_, _startpos__3_) = (_endpos__2_, _endpos__2_) in + let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 4251 "parsing/parser.mly" - ( mk_quotedext ~loc:_sloc _1 ) -# 15155 "parsing/parser.ml" +# 2429 "parsing/parser.mly" + ( (Labelled (fst _4), None, + mkpat_local_if _3 (snd _4) _loc__3_) ) +# 15413 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15164,24 +15422,24 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -15193,67 +15451,26 @@ module Tables = struct }; }; } = _menhir_stack in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in - let _3 : unit = Obj.magic _3 in - let _1_inlined1 : ( -# 838 "parsing/parser.mly" - (string) -# 15203 "parsing/parser.ml" - ) = Obj.magic _1_inlined1 in - let _1 : (Asttypes.mutable_flag * Asttypes.global_flag) = Obj.magic _1 in + let _5 : unit = Obj.magic _5 in + let _4 : (string * Parsetree.pattern) = Obj.magic _4 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.label_declaration) = let _5 = - let _1 = _1_inlined3 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 15214 "parsing/parser.ml" - - in - let _endpos__5_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in - -# 3613 "parsing/parser.mly" - ( _1 ) -# 15223 "parsing/parser.ml" - - in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = -# 3873 "parsing/parser.mly" - ( _1 ) -# 15231 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 15239 "parsing/parser.ml" - - in - let _startpos__2_ = _startpos__1_inlined1_ in let _endpos = _endpos__5_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - let _sloc = (_symbolstartpos, _endpos) in + let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _3 = +# 3811 "parsing/parser.mly" + ( true ) +# 15466 "parsing/parser.ml" + in + let (_endpos__3_, _startpos__3_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3479 "parsing/parser.mly" - ( let info = symbol_info _endpos in - let mut, gbl = _1 in - mkld_global_maybe gbl - (Type.field _2 _4 ~mut ~attrs:_5 ~loc:(make_loc _sloc) ~info) - (make_loc _loc__1_) ) -# 15257 "parsing/parser.ml" +# 2429 "parsing/parser.mly" + ( (Labelled (fst _4), None, + mkpat_local_if _3 (snd _4) _loc__3_) ) +# 15474 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15266,123 +15483,51 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined4; - MenhirLib.EngineTypes.startp = _startpos__1_inlined4_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _6 : unit = Obj.magic _6 in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in - let _3 : unit = Obj.magic _3 in let _1_inlined1 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 15319 "parsing/parser.ml" +# 15501 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in - let _1 : (Asttypes.mutable_flag * Asttypes.global_flag) = Obj.magic _1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.label_declaration) = let _7 = - let _1 = _1_inlined4 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 15330 "parsing/parser.ml" - - in - let _endpos__7_ = _endpos__1_inlined4_ in - let _5 = - let _1 = _1_inlined3 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 15339 "parsing/parser.ml" - - in - let _endpos__5_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in - -# 3613 "parsing/parser.mly" - ( _1 ) -# 15348 "parsing/parser.ml" - - in - let _2 = + let _endpos = _endpos__1_inlined1_ in + let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _2 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = -# 3873 "parsing/parser.mly" - ( _1 ) -# 15356 "parsing/parser.ml" - in + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 15516 "parsing/parser.ml" + + in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 15364 "parsing/parser.ml" +# 2476 "parsing/parser.mly" + ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) +# 15525 "parsing/parser.ml" in - let _startpos__2_ = _startpos__1_inlined1_ in - let _endpos = _endpos__7_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - let _sloc = (_symbolstartpos, _endpos) in -# 3488 "parsing/parser.mly" - ( let info = - match rhs_info _endpos__5_ with - | Some _ as info_before_semi -> info_before_semi - | None -> symbol_info _endpos - in - let mut, gbl = _1 in - mkld_global_maybe gbl - (Type.field _2 _4 ~mut ~attrs:(_5 @ _7) ~loc:(make_loc _sloc) ~info) - (make_loc _loc__1_) ) -# 15386 "parsing/parser.ml" +# 2432 "parsing/parser.mly" + ( (Labelled (fst _2), None, snd _2) ) +# 15531 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15394,20 +15539,89 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : (Parsetree.pattern) = Obj.magic _2 in + let _1 : ( +# 895 "parsing/parser.mly" + (string) +# 15559 "parsing/parser.ml" + ) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = +# 2434 "parsing/parser.mly" + ( (Labelled _1, None, _2) ) +# 15567 "parsing/parser.ml" + in + { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; } = _menhir_stack in - let _1 : (Parsetree.label_declaration) = Obj.magic _1 in + let _5 : unit = Obj.magic _5 in + let _4 : (Parsetree.pattern) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : ( +# 895 "parsing/parser.mly" + (string) +# 15616 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.label_declaration list) = -# 3473 "parsing/parser.mly" - ( [_1] ) -# 15411 "parsing/parser.ml" + let _endpos = _endpos__5_ in + let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _loc__3_ = (_startpos__3_, _endpos__3_) in + +# 2436 "parsing/parser.mly" + ( (Labelled _1, None, mkpat_stack _4 (make_loc _loc__3_)) ) +# 15625 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15425,14 +15639,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.label_declaration) = Obj.magic _1 in + let _1 : (Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.label_declaration list) = -# 3474 "parsing/parser.mly" - ( [_1] ) -# 15436 "parsing/parser.ml" + let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = +# 2438 "parsing/parser.mly" + ( (Nolabel, None, _1) ) +# 15650 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15445,26 +15659,41 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let _2 : (Parsetree.label_declaration list) = Obj.magic _2 in - let _1 : (Parsetree.label_declaration) = Obj.magic _1 in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.pattern) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.label_declaration list) = -# 3475 "parsing/parser.mly" - ( _1 :: _2 ) -# 15468 "parsing/parser.ml" + let _endpos = _endpos__4_ in + let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _loc__2_ = (_startpos__2_, _endpos__2_) in + +# 2440 "parsing/parser.mly" + ( (Nolabel, None, mkpat_stack _3 (make_loc _loc__2_)) ) +# 15697 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15476,44 +15705,135 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2_inlined2; + MenhirLib.EngineTypes.startp = _startpos__2_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = pat; + MenhirLib.EngineTypes.startp = _startpos_pat_; + MenhirLib.EngineTypes.endp = _endpos_pat_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + }; } = _menhir_stack in + let _4 : unit = Obj.magic _4 in + let ty : (Parsetree.core_type) = Obj.magic ty in + let _2_inlined2 : unit = Obj.magic _2_inlined2 in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in + let _2_inlined1 : unit = Obj.magic _2_inlined1 in + let pat : (Parsetree.pattern) = Obj.magic pat in + let _2 : unit = Obj.magic _2 in let _1 : ( -# 838 "parsing/parser.mly" +# 895 "parsing/parser.mly" (string) -# 15489 "parsing/parser.ml" +# 15767 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (string * Parsetree.pattern) = let x = + let _endpos = _endpos__4_ in + let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _3 = let _1 = + let _1 = + let cty = + let _1 = + let vars = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 15782 "parsing/parser.ml" + in + +# 1197 "parsing/parser.mly" + ( xs ) +# 15787 "parsing/parser.ml" + + in + +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 15793 "parsing/parser.ml" + + in + +# 2492 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 15799 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 15809 "parsing/parser.ml" + + in + +# 2493 "parsing/parser.mly" + ( Ppat_constraint(pat, cty) ) +# 15815 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_pat_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 15502 "parsing/parser.ml" +# 1130 "parsing/parser.mly" + ( mkpat ~loc:_sloc _1 ) +# 15825 "parsing/parser.ml" in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2404 "parsing/parser.mly" - ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 15511 "parsing/parser.ml" +# 2494 "parsing/parser.mly" + ( _1 ) +# 15831 "parsing/parser.ml" in -# 2391 "parsing/parser.mly" - ( x ) -# 15517 "parsing/parser.ml" +# 2442 "parsing/parser.mly" + ( (Labelled _1, None, _3) ) +# 15837 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15526,63 +15846,142 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = cty; - MenhirLib.EngineTypes.startp = _startpos_cty_; - MenhirLib.EngineTypes.endp = _endpos_cty_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2_inlined2; + MenhirLib.EngineTypes.startp = _startpos__2_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = pat; + MenhirLib.EngineTypes.startp = _startpos_pat_; + MenhirLib.EngineTypes.endp = _endpos_pat_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; }; }; } = _menhir_stack in - let cty : (Parsetree.core_type) = Obj.magic cty in + let _5 : unit = Obj.magic _5 in + let ty : (Parsetree.core_type) = Obj.magic ty in + let _2_inlined2 : unit = Obj.magic _2_inlined2 in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in + let _2_inlined1 : unit = Obj.magic _2_inlined1 in + let pat : (Parsetree.pattern) = Obj.magic pat in + let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 838 "parsing/parser.mly" +# 895 "parsing/parser.mly" (string) -# 15552 "parsing/parser.ml" +# 15914 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_cty_ in - let _v : (string * Parsetree.pattern) = let x = + let _endpos = _endpos__5_ in + let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _4 = let _1 = + let _1 = + let cty = + let _1 = + let vars = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 15929 "parsing/parser.ml" + in + +# 1197 "parsing/parser.mly" + ( xs ) +# 15934 "parsing/parser.ml" + + in + +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 15940 "parsing/parser.ml" + + in + +# 2492 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 15946 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 15956 "parsing/parser.ml" + + in + +# 2493 "parsing/parser.mly" + ( Ppat_constraint(pat, cty) ) +# 15962 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_pat_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 15565 "parsing/parser.ml" +# 1130 "parsing/parser.mly" + ( mkpat ~loc:_sloc _1 ) +# 15972 "parsing/parser.ml" in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2404 "parsing/parser.mly" - ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 15574 "parsing/parser.ml" +# 2494 "parsing/parser.mly" + ( _1 ) +# 15978 "parsing/parser.ml" in - let _startpos_x_ = _startpos__1_ in - let _endpos = _endpos_cty_ in - let _symbolstartpos = _startpos_x_ in - let _sloc = (_symbolstartpos, _endpos) in + let _loc__2_ = (_startpos__2_, _endpos__2_) in -# 2393 "parsing/parser.mly" - ( let lab, pat = x in - lab, - mkpat ~loc:_sloc (Ppat_constraint (pat, cty)) ) -# 15586 "parsing/parser.ml" +# 2444 "parsing/parser.mly" + ( (Labelled _1, None, mkpat_stack _4 (make_loc _loc__2_)) ) +# 15985 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15595,115 +15994,151 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = pat; + MenhirLib.EngineTypes.startp = _startpos_pat_; + MenhirLib.EngineTypes.endp = _endpos_pat_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; }; }; } = _menhir_stack in + let _3 : unit = Obj.magic _3 in let ty : (Parsetree.core_type) = Obj.magic ty in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in - let _1 : ( -# 838 "parsing/parser.mly" - (string) -# 15635 "parsing/parser.ml" - ) = Obj.magic _1 in + let pat : (Parsetree.pattern) = Obj.magic pat in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_ty_ in - let _v : (string * Parsetree.pattern) = let cty = + let _endpos = _endpos__3_ in + let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _2 = let _1 = - let vars = - let _1 = - let xs = + let _1 = + let cty = + let _1 = + let vars = + let _1 = + let xs = # 253 "" ( List.rev xs ) -# 15647 "parsing/parser.ml" - in - -# 1126 "parsing/parser.mly" +# 16059 "parsing/parser.ml" + in + +# 1197 "parsing/parser.mly" ( xs ) -# 15652 "parsing/parser.ml" +# 16064 "parsing/parser.ml" + + in + +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 16070 "parsing/parser.ml" + + in + +# 2492 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 16076 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 16086 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 15658 "parsing/parser.ml" +# 2493 "parsing/parser.mly" + ( Ppat_constraint(pat, cty) ) +# 16092 "parsing/parser.ml" in - -# 2397 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 15664 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 15674 "parsing/parser.ml" - - in - let _endpos_cty_ = _endpos_ty_ in - let x = - let _1 = + let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_pat_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 15686 "parsing/parser.ml" +# 1130 "parsing/parser.mly" + ( mkpat ~loc:_sloc _1 ) +# 16102 "parsing/parser.ml" in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2404 "parsing/parser.mly" - ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 15695 "parsing/parser.ml" +# 2494 "parsing/parser.mly" + ( _1 ) +# 16108 "parsing/parser.ml" in - let _startpos_x_ = _startpos__1_ in - let _endpos = _endpos_cty_ in - let _symbolstartpos = _startpos_x_ in + +# 2446 "parsing/parser.mly" + ( (Nolabel, None, _2) ) +# 16114 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Asttypes.label) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : ((Asttypes.const_layout * string) Asttypes.loc) = let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2398 "parsing/parser.mly" - ( let lab, pat = x in - lab, - mkpat ~loc:_sloc (Ppat_constraint (pat, cty)) ) -# 15707 "parsing/parser.ml" +# 3431 "parsing/parser.mly" + ( check_layout (make_loc _sloc) _1 ) +# 16142 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15721,14 +16156,46 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in + let _1 : ((Asttypes.const_layout * string) Asttypes.loc) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Longident.t) = -# 3977 "parsing/parser.mly" - ( _1 ) -# 15732 "parsing/parser.ml" + let _v : (Asttypes.layout_annotation) = +# 3426 "parsing/parser.mly" + ( Location.map fst _1 ) +# 16167 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = layout; + MenhirLib.EngineTypes.startp = _startpos_layout_; + MenhirLib.EngineTypes.endp = _endpos_layout_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let layout : ((Asttypes.const_layout * string) Asttypes.loc) = Obj.magic layout in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos_layout_ in + let _v : (Parsetree.attribute) = +# 3437 "parsing/parser.mly" + ( Attr.mk ~loc:layout.loc (Location.map snd layout) (PStr []) ) +# 16199 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15746,14 +16213,42 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.expression) = Obj.magic _1 in + let _1 : (Parsetree.pattern * Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Asttypes.arg_label * Parsetree.expression) = -# 2743 "parsing/parser.mly" - ( (Nolabel, _1) ) -# 15757 "parsing/parser.ml" + let _v : (Parsetree.pattern * Parsetree.expression * bool) = +# 2889 "parsing/parser.mly" + ( let p,e = _1 in (p,e,false) ) +# 16224 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Asttypes.label) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.pattern * Parsetree.expression * bool) = let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + +# 2892 "parsing/parser.mly" + ( (mkpatvar ~loc:_loc _1, mkexpvar ~loc:_loc _1, true) ) +# 16252 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15778,18 +16273,24 @@ module Tables = struct }; } = _menhir_stack in let _2 : (Parsetree.expression) = Obj.magic _2 in - let _1 : ( -# 824 "parsing/parser.mly" - (string) -# 15785 "parsing/parser.ml" - ) = Obj.magic _1 in + let _1 : (Asttypes.label) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Asttypes.arg_label * Parsetree.expression) = -# 2745 "parsing/parser.mly" - ( (Labelled _1, _2) ) -# 15793 "parsing/parser.ml" + let _v : (Parsetree.pattern * Parsetree.expression) = let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2837 "parsing/parser.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 16288 "parsing/parser.ml" + + in + +# 2841 "parsing/parser.mly" + ( (_1, _2) ) +# 16294 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15802,32 +16303,84 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = label; - MenhirLib.EngineTypes.startp = _startpos_label_; - MenhirLib.EngineTypes.endp = _endpos_label_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let label : ( -# 838 "parsing/parser.mly" - (string) -# 15820 "parsing/parser.ml" - ) = Obj.magic label in - let _1 : unit = Obj.magic _1 in + let _5 : (Parsetree.expression) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.core_type option * Parsetree.core_type option) = Obj.magic _3 in + let _1 : (Asttypes.label) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_label_ in - let _v : (Asttypes.arg_label * Parsetree.expression) = let _loc_label_ = (_startpos_label_, _endpos_label_) in + let _endpos = _endpos__5_ in + let _v : (Parsetree.pattern * Parsetree.expression) = let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2837 "parsing/parser.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 16344 "parsing/parser.ml" + + in + let _startpos__2_ = _startpos__1_ in + let _1 = +# 3809 "parsing/parser.mly" + ( false ) +# 16351 "parsing/parser.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in + let _endpos = _endpos__5_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + let _sloc = (_symbolstartpos, _endpos) in -# 2747 "parsing/parser.mly" - ( let loc = _loc_label_ in - (Labelled label, mkexpvar ~loc label) ) -# 15831 "parsing/parser.ml" +# 2843 "parsing/parser.mly" + ( let v = _2 in (* PR#7344 *) + let t = + match _3 with + Some t, None -> t + | _, Some t -> t + | _ -> assert false + in + let loc = Location.(t.ptyp_loc.loc_start, t.ptyp_loc.loc_end) in + let local_loc = _loc__1_ in + let typ = ghtyp ~loc (Ptyp_poly([],t,[])) in + let patloc = (_startpos__2_, _endpos__3_) in + let pat = + mkpat_local_if _1 (ghpat ~loc:patloc (Ppat_constraint(v, typ))) + local_loc + in + let exp = + mkexp_local_if _1 ~loc:_sloc ~kwd_loc:(_loc__1_) + (wrap_exp_local_if _1 (mkexp_constraint ~loc:_sloc _5 _3) + local_loc) + in + (pat, exp) ) +# 16384 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15845,19 +16398,19 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = label; - MenhirLib.EngineTypes.startp = _startpos_label_; - MenhirLib.EngineTypes.endp = _endpos_label_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -15869,63 +16422,62 @@ module Tables = struct }; }; } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let ty : (Parsetree.core_type option * Parsetree.core_type option) = Obj.magic ty in - let label : ( -# 838 "parsing/parser.mly" - (string) -# 15878 "parsing/parser.ml" - ) = Obj.magic label in - let _2 : unit = Obj.magic _2 in + let _5 : (Parsetree.expression) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.core_type option * Parsetree.core_type option) = Obj.magic _3 in + let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Asttypes.arg_label * Parsetree.expression) = let _endpos = _endpos__5_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 2750 "parsing/parser.mly" - ( (Labelled label, mkexp_constraint ~loc:(_startpos__2_, _endpos) - (mkexpvar ~loc:_loc_label_ label) ty) ) -# 15891 "parsing/parser.ml" + let _v : (Parsetree.pattern * Parsetree.expression) = let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2837 "parsing/parser.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 16442 "parsing/parser.ml" + + in + let _startpos__2_ = _startpos__1_inlined1_ in + let _1 = +# 3811 "parsing/parser.mly" + ( true ) +# 16449 "parsing/parser.ml" in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = label; - MenhirLib.EngineTypes.startp = _startpos_label_; - MenhirLib.EngineTypes.endp = _endpos_label_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let label : ( -# 838 "parsing/parser.mly" - (string) -# 15918 "parsing/parser.ml" - ) = Obj.magic label in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos_label_ in - let _v : (Asttypes.arg_label * Parsetree.expression) = let _loc_label_ = (_startpos_label_, _endpos_label_) in + let _endpos = _endpos__5_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + let _sloc = (_symbolstartpos, _endpos) in -# 2753 "parsing/parser.mly" - ( let loc = _loc_label_ in - (Optional label, mkexpvar ~loc label) ) -# 15929 "parsing/parser.ml" +# 2843 "parsing/parser.mly" + ( let v = _2 in (* PR#7344 *) + let t = + match _3 with + Some t, None -> t + | _, Some t -> t + | _ -> assert false + in + let loc = Location.(t.ptyp_loc.loc_start, t.ptyp_loc.loc_end) in + let local_loc = _loc__1_ in + let typ = ghtyp ~loc (Ptyp_poly([],t,[])) in + let patloc = (_startpos__2_, _endpos__3_) in + let pat = + mkpat_local_if _1 (ghpat ~loc:patloc (Ppat_constraint(v, typ))) + local_loc + in + let exp = + mkexp_local_if _1 ~loc:_sloc ~kwd_loc:(_loc__1_) + (wrap_exp_local_if _1 (mkexp_constraint ~loc:_sloc _5 _3) + local_loc) + in + (pat, exp) ) +# 16481 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15938,30 +16490,122 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3_inlined1; + MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__3_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; }; } = _menhir_stack in - let _2 : (Parsetree.expression) = Obj.magic _2 in - let _1 : ( -# 857 "parsing/parser.mly" - (string) -# 15957 "parsing/parser.ml" - ) = Obj.magic _1 in + let _6 : (Parsetree.expression) = Obj.magic _6 in + let _5 : unit = Obj.magic _5 in + let _3_inlined1 : (Parsetree.core_type) = Obj.magic _3_inlined1 in + let _2 : unit = Obj.magic _2 in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in + let _3 : unit = Obj.magic _3 in + let _1 : (Asttypes.label) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Asttypes.arg_label * Parsetree.expression) = -# 2756 "parsing/parser.mly" - ( (Optional _1, _2) ) -# 15965 "parsing/parser.ml" + let _endpos = _endpos__6_ in + let _v : (Parsetree.pattern * Parsetree.expression) = let _4 = + let _3 = _3_inlined1 in + let _1 = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 16552 "parsing/parser.ml" + in + +# 1197 "parsing/parser.mly" + ( xs ) +# 16557 "parsing/parser.ml" + + in + +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 16563 "parsing/parser.ml" + + in + +# 3708 "parsing/parser.mly" + ( let vars, layouts = _1 in Ptyp_poly(vars, _3, layouts) ) +# 16569 "parsing/parser.ml" + + in + let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2837 "parsing/parser.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 16580 "parsing/parser.ml" + + in + let _startpos__2_ = _startpos__1_ in + let _1 = +# 3809 "parsing/parser.mly" + ( false ) +# 16587 "parsing/parser.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in + let _endpos = _endpos__6_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _loc__4_ = (_startpos__4_, _endpos__4_) in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + let _sloc = (_symbolstartpos, _endpos) in + +# 2865 "parsing/parser.mly" + ( let patloc = (_startpos__2_, _endpos__4_) in + let pat = + mkpat_local_if _1 + (ghpat ~loc:patloc + (Ppat_constraint(_2, ghtyp ~loc:(_loc__4_) _4))) + _loc__1_ + in + let exp = mkexp_local_if _1 ~loc:_sloc ~kwd_loc:(_loc__1_) _6 in + (pat, exp) ) +# 16609 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15979,57 +16623,124 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _3_inlined1; + MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__3_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; }; }; }; } = _menhir_stack in - let _6 : unit = Obj.magic _6 in - let _1_inlined1 : (Parsetree.expression option) = Obj.magic _1_inlined1 in - let _4 : (string * Parsetree.pattern) = Obj.magic _4 in + let _6 : (Parsetree.expression) = Obj.magic _6 in + let _5 : unit = Obj.magic _5 in + let _3_inlined1 : (Parsetree.core_type) = Obj.magic _3_inlined1 in let _2 : unit = Obj.magic _2 in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in + let _3 : unit = Obj.magic _3 in + let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = - let _1 = _1_inlined1 in + let _v : (Parsetree.pattern * Parsetree.expression) = let _4 = + let _3 = _3_inlined1 in + let _1 = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 16687 "parsing/parser.ml" + in + +# 1197 "parsing/parser.mly" + ( xs ) +# 16692 "parsing/parser.ml" + + in + +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 16698 "parsing/parser.ml" + + in -# 2387 "parsing/parser.mly" - ( _1 ) -# 16020 "parsing/parser.ml" +# 3708 "parsing/parser.mly" + ( let vars, layouts = _1 in Ptyp_poly(vars, _3, layouts) ) +# 16704 "parsing/parser.ml" in - let _3 = -# 3700 "parsing/parser.mly" - ( false ) -# 16026 "parsing/parser.ml" + let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in + let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2837 "parsing/parser.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 16716 "parsing/parser.ml" + + in + let _startpos__2_ = _startpos__1_inlined1_ in + let _1 = +# 3811 "parsing/parser.mly" + ( true ) +# 16723 "parsing/parser.ml" in - let (_endpos__3_, _startpos__3_) = (_endpos__2_, _endpos__2_) in - let _loc__3_ = (_startpos__3_, _endpos__3_) in + let _endpos = _endpos__6_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + _startpos__2_ in + let _loc__4_ = (_startpos__4_, _endpos__4_) in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + let _sloc = (_symbolstartpos, _endpos) in -# 2350 "parsing/parser.mly" - ( (Optional (fst _4), _5, mkpat_local_if _3 (snd _4) _loc__3_) ) -# 16033 "parsing/parser.ml" +# 2865 "parsing/parser.mly" + ( let patloc = (_startpos__2_, _endpos__4_) in + let pat = + mkpat_local_if _1 + (ghpat ~loc:patloc + (Ppat_constraint(_2, ghtyp ~loc:(_loc__4_) _4))) + _loc__1_ + in + let exp = mkexp_local_if _1 ~loc:_sloc ~kwd_loc:(_loc__1_) _6 in + (pat, exp) ) +# 16744 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16042,69 +16753,84 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = _8; + MenhirLib.EngineTypes.startp = _startpos__8_; + MenhirLib.EngineTypes.endp = _endpos__8_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; }; }; }; } = _menhir_stack in - let _6 : unit = Obj.magic _6 in - let _1_inlined2 : (Parsetree.expression option) = Obj.magic _1_inlined2 in - let _4 : (string * Parsetree.pattern) = Obj.magic _4 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _8 : (Parsetree.expression) = Obj.magic _8 in + let _7 : unit = Obj.magic _7 in + let _6 : (Parsetree.core_type) = Obj.magic _6 in + let _5 : unit = Obj.magic _5 in + let _4 : ((string Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _1 : (Asttypes.label) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__6_ in - let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = - let _1 = _1_inlined2 in + let _endpos = _endpos__8_ in + let _v : (Parsetree.pattern * Parsetree.expression) = let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2387 "parsing/parser.mly" - ( _1 ) -# 16095 "parsing/parser.ml" +# 2837 "parsing/parser.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 16822 "parsing/parser.ml" in - let _3 = -# 3702 "parsing/parser.mly" - ( true ) -# 16101 "parsing/parser.ml" - in - let (_endpos__3_, _startpos__3_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _loc__3_ = (_startpos__3_, _endpos__3_) in + let _endpos = _endpos__8_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2350 "parsing/parser.mly" - ( (Optional (fst _4), _5, mkpat_local_if _3 (snd _4) _loc__3_) ) -# 16108 "parsing/parser.ml" +# 2875 "parsing/parser.mly" + ( let exp, poly = + wrap_type_annotation ~loc:_sloc _4 _6 _8 in + let loc = (_startpos__1_, _endpos__6_) in + (ghpat ~loc (Ppat_constraint(_1, poly)), exp) ) +# 16834 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16117,51 +16843,33 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _1_inlined1 : ( -# 838 "parsing/parser.mly" - (string) -# 16135 "parsing/parser.ml" - ) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let _3 : (Parsetree.expression) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 16150 "parsing/parser.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2404 "parsing/parser.mly" - ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 16159 "parsing/parser.ml" - - in - -# 2352 "parsing/parser.mly" - ( (Optional (fst _2), None, snd _2) ) -# 16165 "parsing/parser.ml" + let _endpos = _endpos__3_ in + let _v : (Parsetree.pattern * Parsetree.expression) = +# 2880 "parsing/parser.mly" + ( (_1, _3) ) +# 16873 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16174,19 +16882,19 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -16203,37 +16911,73 @@ module Tables = struct }; }; } = _menhir_stack in - let _6 : unit = Obj.magic _6 in - let _1_inlined1 : (Parsetree.expression option) = Obj.magic _1_inlined1 in - let _4 : (Parsetree.pattern) = Obj.magic _4 in + let _5 : (Parsetree.expression) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.core_type) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let _1 : ( -# 857 "parsing/parser.mly" - (string) -# 16214 "parsing/parser.ml" - ) = Obj.magic _1 in + let _1 : (Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__6_ in - let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = - let _1 = _1_inlined1 in + let _endpos = _endpos__5_ in + let _v : (Parsetree.pattern * Parsetree.expression) = +# 2882 "parsing/parser.mly" + ( let loc = (_startpos__1_, _endpos__3_) in + (ghpat ~loc (Ppat_constraint(_1, _3)), _5) ) +# 16927 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : (Parsetree.expression) = Obj.magic _3 in + let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Parsetree.pattern * Parsetree.expression) = let _2 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2387 "parsing/parser.mly" - ( _1 ) -# 16224 "parsing/parser.ml" +# 2837 "parsing/parser.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 16971 "parsing/parser.ml" in - let _3 = -# 3700 "parsing/parser.mly" - ( false ) -# 16230 "parsing/parser.ml" - in - let (_endpos__3_, _startpos__3_) = (_endpos__2_, _endpos__2_) in - let _loc__3_ = (_startpos__3_, _endpos__3_) in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + let _sloc = (_symbolstartpos, _endpos) in -# 2354 "parsing/parser.mly" - ( (Optional _1, _5, mkpat_local_if _3 _4 _loc__3_) ) -# 16237 "parsing/parser.ml" +# 2885 "parsing/parser.mly" + ( (_2, mkexp_stack ~loc:_sloc ~kwd_loc:(_loc__1_) _3) ) +# 16981 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16246,19 +16990,19 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = body; + MenhirLib.EngineTypes.startp = _startpos_body_; + MenhirLib.EngineTypes.endp = _endpos_body_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = rec_flag; + MenhirLib.EngineTypes.startp = _startpos_rec_flag_; + MenhirLib.EngineTypes.endp = _endpos_rec_flag_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined1; @@ -16266,9 +17010,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = ext; + MenhirLib.EngineTypes.startp = _startpos_ext_; + MenhirLib.EngineTypes.endp = _endpos_ext_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -16281,38 +17025,49 @@ module Tables = struct }; }; } = _menhir_stack in - let _6 : unit = Obj.magic _6 in - let _1_inlined2 : (Parsetree.expression option) = Obj.magic _1_inlined2 in - let _4 : (Parsetree.pattern) = Obj.magic _4 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in - let _1 : ( -# 857 "parsing/parser.mly" - (string) -# 16293 "parsing/parser.ml" - ) = Obj.magic _1 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let body : (Parsetree.pattern * Parsetree.expression * bool) = Obj.magic body in + let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let ext : (string Asttypes.loc option) = Obj.magic ext in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__6_ in - let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = - let _1 = _1_inlined2 in - -# 2387 "parsing/parser.mly" + let _endpos = _endpos__1_inlined2_ in + let _v : (let_bindings) = let _1 = + let attrs2 = + let _1 = _1_inlined2 in + +# 4365 "parsing/parser.mly" + ( _1 ) +# 17044 "parsing/parser.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" ( _1 ) -# 16303 "parsing/parser.ml" +# 17053 "parsing/parser.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2912 "parsing/parser.mly" + ( + let attrs = attrs1 @ attrs2 in + mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) + ) +# 17065 "parsing/parser.ml" in - let _3 = -# 3702 "parsing/parser.mly" - ( true ) -# 16309 "parsing/parser.ml" - in - let (_endpos__3_, _startpos__3_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2354 "parsing/parser.mly" - ( (Optional _1, _5, mkpat_local_if _3 _4 _loc__3_) ) -# 16316 "parsing/parser.ml" +# 2902 "parsing/parser.mly" + ( _1 ) +# 17071 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16336,19 +17091,15 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : (Parsetree.pattern) = Obj.magic _2 in - let _1 : ( -# 857 "parsing/parser.mly" - (string) -# 16344 "parsing/parser.ml" - ) = Obj.magic _1 in + let _2 : (let_binding) = Obj.magic _2 in + let _1 : (let_bindings) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = -# 2356 "parsing/parser.mly" - ( (Optional _1, None, _2) ) -# 16352 "parsing/parser.ml" + let _v : (let_bindings) = +# 2903 "parsing/parser.mly" + ( addlb _1 _2 ) +# 17103 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16361,48 +17112,82 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = body; + MenhirLib.EngineTypes.startp = _startpos_body_; + MenhirLib.EngineTypes.endp = _endpos_body_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = rec_flag; + MenhirLib.EngineTypes.startp = _startpos_rec_flag_; + MenhirLib.EngineTypes.endp = _endpos_rec_flag_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; }; } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let _4 : (string * Parsetree.pattern) = Obj.magic _4 in - let _2 : unit = Obj.magic _2 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let body : (Parsetree.pattern * Parsetree.expression * bool) = Obj.magic body in + let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _3 = -# 3700 "parsing/parser.mly" - ( false ) -# 16398 "parsing/parser.ml" - in - let (_endpos__3_, _startpos__3_) = (_endpos__2_, _endpos__2_) in - let _loc__3_ = (_startpos__3_, _endpos__3_) in + let _endpos = _endpos__1_inlined2_ in + let _v : (let_bindings) = let _1 = + let attrs2 = + let _1 = _1_inlined2 in + +# 4365 "parsing/parser.mly" + ( _1 ) +# 17159 "parsing/parser.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 17168 "parsing/parser.ml" + + in + let ext = +# 4376 "parsing/parser.mly" + ( None ) +# 17174 "parsing/parser.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2912 "parsing/parser.mly" + ( + let attrs = attrs1 @ attrs2 in + mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) + ) +# 17185 "parsing/parser.ml" + + in -# 2358 "parsing/parser.mly" - ( (Labelled (fst _4), None, - mkpat_local_if _3 (snd _4) _loc__3_) ) -# 16406 "parsing/parser.ml" +# 2902 "parsing/parser.mly" + ( _1 ) +# 17191 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16415,112 +17200,102 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = body; + MenhirLib.EngineTypes.startp = _startpos_body_; + MenhirLib.EngineTypes.endp = _endpos_body_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = rec_flag; + MenhirLib.EngineTypes.startp = _startpos_rec_flag_; + MenhirLib.EngineTypes.endp = _endpos_rec_flag_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; }; }; } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let _4 : (string * Parsetree.pattern) = Obj.magic _4 in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let body : (Parsetree.pattern * Parsetree.expression * bool) = Obj.magic body in + let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _2 : (string Asttypes.loc) = Obj.magic _2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _3 = -# 3702 "parsing/parser.mly" - ( true ) -# 16459 "parsing/parser.ml" - in - let (_endpos__3_, _startpos__3_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _loc__3_ = (_startpos__3_, _endpos__3_) in - -# 2358 "parsing/parser.mly" - ( (Labelled (fst _4), None, - mkpat_local_if _3 (snd _4) _loc__3_) ) -# 16467 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _1_inlined1 : ( -# 838 "parsing/parser.mly" - (string) -# 16494 "parsing/parser.ml" - ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos__1_inlined3_ in + let _v : (let_bindings) = let _1 = + let attrs2 = + let _1 = _1_inlined3 in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 16509 "parsing/parser.ml" +# 4365 "parsing/parser.mly" + ( _1 ) +# 17261 "parsing/parser.ml" in - let _endpos = _endpos__1_ in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let attrs1 = + let _1 = _1_inlined2 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 17270 "parsing/parser.ml" + + in + let ext = + let _startpos__1_ = _startpos__1_inlined1_ in + let _endpos = _endpos__2_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + +# 4378 "parsing/parser.mly" + ( not_expecting _loc "extension" ) +# 17281 "parsing/parser.ml" + + in + let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2404 "parsing/parser.mly" - ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 16518 "parsing/parser.ml" +# 2912 "parsing/parser.mly" + ( + let attrs = attrs1 @ attrs2 in + mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) + ) +# 17293 "parsing/parser.ml" in -# 2361 "parsing/parser.mly" - ( (Labelled (fst _2), None, snd _2) ) -# 16524 "parsing/parser.ml" +# 2902 "parsing/parser.mly" + ( _1 ) +# 17299 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16544,77 +17319,15 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : (Parsetree.pattern) = Obj.magic _2 in - let _1 : ( -# 824 "parsing/parser.mly" - (string) -# 16552 "parsing/parser.ml" - ) = Obj.magic _1 in + let _2 : (let_binding) = Obj.magic _2 in + let _1 : (let_bindings) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = -# 2363 "parsing/parser.mly" - ( (Labelled _1, None, _2) ) -# 16560 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let _4 : (Parsetree.pattern) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : ( -# 824 "parsing/parser.mly" - (string) -# 16609 "parsing/parser.ml" - ) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _loc__3_ = (_startpos__3_, _endpos__3_) in - -# 2365 "parsing/parser.mly" - ( (Labelled _1, None, mkpat_stack _4 (make_loc _loc__3_)) ) -# 16618 "parsing/parser.ml" + let _v : (let_bindings) = +# 2903 "parsing/parser.mly" + ( addlb _1 _2 ) +# 17331 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16636,10 +17349,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = -# 2367 "parsing/parser.mly" - ( (Nolabel, None, _1) ) -# 16643 "parsing/parser.ml" + let _v : (Parsetree.pattern) = +# 2480 "parsing/parser.mly" + ( _1 ) +# 17356 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16652,41 +17365,49 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.pattern) = Obj.magic _3 in + let _3 : (Parsetree.core_type) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _1 : (Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _loc__2_ = (_startpos__2_, _endpos__2_) in + let _endpos = _endpos__3_ in + let _v : (Parsetree.pattern) = let _1 = + let _1 = +# 2482 "parsing/parser.mly" + ( Ppat_constraint(_1, _3) ) +# 17396 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1130 "parsing/parser.mly" + ( mkpat ~loc:_sloc _1 ) +# 17405 "parsing/parser.ml" + + in -# 2369 "parsing/parser.mly" - ( (Nolabel, None, mkpat_stack _3 (make_loc _loc__2_)) ) -# 16690 "parsing/parser.ml" +# 2483 "parsing/parser.mly" + ( _1 ) +# 17411 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16699,69 +17420,44 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined2; - MenhirLib.EngineTypes.startp = _startpos__2_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined2_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = pat; + MenhirLib.EngineTypes.startp = _startpos_pat_; + MenhirLib.EngineTypes.endp = _endpos_pat_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in let ty : (Parsetree.core_type) = Obj.magic ty in - let _2_inlined2 : unit = Obj.magic _2_inlined2 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let pat : (Parsetree.pattern) = Obj.magic pat in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in - let _1 : ( -# 824 "parsing/parser.mly" - (string) -# 16760 "parsing/parser.ml" - ) = Obj.magic _1 in + let pat : (Parsetree.pattern) = Obj.magic pat in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _3 = + let _startpos = _startpos_pat_ in + let _endpos = _endpos_ty_ in + let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = let cty = @@ -16771,24 +17467,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 16775 "parsing/parser.ml" +# 17471 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 16780 "parsing/parser.ml" +# 17476 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 16786 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 17482 "parsing/parser.ml" in -# 2420 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 16792 "parsing/parser.ml" +# 2492 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 17488 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_xs_) in @@ -16796,15 +17492,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 16802 "parsing/parser.ml" +# 17498 "parsing/parser.ml" in -# 2421 "parsing/parser.mly" +# 2493 "parsing/parser.mly" ( Ppat_constraint(pat, cty) ) -# 16808 "parsing/parser.ml" +# 17504 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_pat_) in @@ -16812,21 +17508,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 16818 "parsing/parser.ml" +# 17514 "parsing/parser.ml" in -# 2422 "parsing/parser.mly" +# 2494 "parsing/parser.mly" ( _1 ) -# 16824 "parsing/parser.ml" +# 17520 "parsing/parser.ml" in -# 2371 "parsing/parser.mly" - ( (Labelled _1, None, _3) ) -# 16830 "parsing/parser.ml" +# 2485 "parsing/parser.mly" + ( _1 ) +# 17526 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16839,142 +17535,64 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = exp; + MenhirLib.EngineTypes.startp = _startpos_exp_; + MenhirLib.EngineTypes.endp = _endpos_exp_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined2; - MenhirLib.EngineTypes.startp = _startpos__2_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let ty : (Parsetree.core_type) = Obj.magic ty in - let _2_inlined2 : unit = Obj.magic _2_inlined2 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in - let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let pat : (Parsetree.pattern) = Obj.magic pat in - let _3 : unit = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : ( -# 824 "parsing/parser.mly" - (string) -# 16907 "parsing/parser.ml" - ) = Obj.magic _1 in + let exp : (Parsetree.expression) = Obj.magic exp in + let _1 : (Asttypes.label) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _4 = - let _1 = - let _1 = - let cty = - let _1 = - let vars = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 16922 "parsing/parser.ml" - in - -# 1126 "parsing/parser.mly" - ( xs ) -# 16927 "parsing/parser.ml" - - in - -# 3595 "parsing/parser.mly" - ( _1 ) -# 16933 "parsing/parser.ml" - - in - -# 2420 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 16939 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 16949 "parsing/parser.ml" - - in - -# 2421 "parsing/parser.mly" - ( Ppat_constraint(pat, cty) ) -# 16955 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_pat_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1059 "parsing/parser.mly" - ( mkpat ~loc:_sloc _1 ) -# 16965 "parsing/parser.ml" - - in + let _endpos = _endpos_exp_ in + let _v : (Parsetree.pattern * Parsetree.expression) = let pat = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2422 "parsing/parser.mly" - ( _1 ) -# 16971 "parsing/parser.ml" +# 2837 "parsing/parser.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 17562 "parsing/parser.ml" in - let _loc__2_ = (_startpos__2_, _endpos__2_) in -# 2373 "parsing/parser.mly" - ( (Labelled _1, None, mkpat_stack _4 (make_loc _loc__2_)) ) -# 16978 "parsing/parser.ml" +# 2929 "parsing/parser.mly" + ( (pat, exp) ) +# 17568 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Asttypes.label) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.pattern * Parsetree.expression) = let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + +# 2932 "parsing/parser.mly" + ( (mkpatvar ~loc:_loc _1, mkexpvar ~loc:_loc _1) ) +# 17596 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16987,123 +17605,48 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = exp; + MenhirLib.EngineTypes.startp = _startpos_exp_; + MenhirLib.EngineTypes.endp = _endpos_exp_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + MenhirLib.EngineTypes.semv = typ; + MenhirLib.EngineTypes.startp = _startpos_typ_; + MenhirLib.EngineTypes.endp = _endpos_typ_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = pat; + MenhirLib.EngineTypes.startp = _startpos_pat_; + MenhirLib.EngineTypes.endp = _endpos_pat_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let ty : (Parsetree.core_type) = Obj.magic ty in - let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let exp : (Parsetree.expression) = Obj.magic exp in + let _4 : unit = Obj.magic _4 in + let typ : (Parsetree.core_type) = Obj.magic typ in let _2 : unit = Obj.magic _2 in let pat : (Parsetree.pattern) = Obj.magic pat in - let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _2 = - let _1 = - let _1 = - let cty = - let _1 = - let vars = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 17052 "parsing/parser.ml" - in - -# 1126 "parsing/parser.mly" - ( xs ) -# 17057 "parsing/parser.ml" - - in - -# 3595 "parsing/parser.mly" - ( _1 ) -# 17063 "parsing/parser.ml" - - in - -# 2420 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 17069 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 17079 "parsing/parser.ml" - - in - -# 2421 "parsing/parser.mly" - ( Ppat_constraint(pat, cty) ) -# 17085 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_pat_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1059 "parsing/parser.mly" - ( mkpat ~loc:_sloc _1 ) -# 17095 "parsing/parser.ml" - - in - -# 2422 "parsing/parser.mly" - ( _1 ) -# 17101 "parsing/parser.ml" - - in - -# 2375 "parsing/parser.mly" - ( (Nolabel, None, _2) ) -# 17107 "parsing/parser.ml" + let _startpos = _startpos_pat_ in + let _endpos = _endpos_exp_ in + let _v : (Parsetree.pattern * Parsetree.expression) = +# 2934 "parsing/parser.mly" + ( let loc = (_startpos_pat_, _endpos_typ_) in + (ghpat ~loc (Ppat_constraint(pat, typ)), exp) ) +# 17650 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17115,21 +17658,34 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = exp; + MenhirLib.EngineTypes.startp = _startpos_exp_; + MenhirLib.EngineTypes.endp = _endpos_exp_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = pat; + MenhirLib.EngineTypes.startp = _startpos_pat_; + MenhirLib.EngineTypes.endp = _endpos_pat_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : (Asttypes.label) = Obj.magic _1 in + let exp : (Parsetree.expression) = Obj.magic exp in + let _2 : unit = Obj.magic _2 in + let pat : (Parsetree.pattern) = Obj.magic pat in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.attribute) = let _loc__1_ = (_startpos__1_, _endpos__1_) in - -# 3333 "parsing/parser.mly" - ( check_layout _loc__1_ _1 ) -# 17133 "parsing/parser.ml" + let _startpos = _startpos_pat_ in + let _endpos = _endpos_exp_ in + let _v : (Parsetree.pattern * Parsetree.expression) = +# 2937 "parsing/parser.mly" + ( (pat, exp) ) +# 17689 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17142,19 +17698,20 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = body; + MenhirLib.EngineTypes.startp = _startpos_body_; + MenhirLib.EngineTypes.endp = _endpos_body_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.pattern * Parsetree.expression) = Obj.magic _1 in + let body : (Parsetree.pattern * Parsetree.expression) = Obj.magic body in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern * Parsetree.expression * bool) = -# 2815 "parsing/parser.mly" - ( let p,e = _1 in (p,e,false) ) -# 17158 "parsing/parser.ml" + let _startpos = _startpos_body_ in + let _endpos = _endpos_body_ in + let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = +# 2941 "parsing/parser.mly" + ( let let_pat, let_exp = body in + let_pat, let_exp, [] ) +# 17715 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17166,23 +17723,73 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = body; + MenhirLib.EngineTypes.startp = _startpos_body_; + MenhirLib.EngineTypes.endp = _endpos_body_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = bindings; + MenhirLib.EngineTypes.startp = _startpos_bindings_; + MenhirLib.EngineTypes.endp = _endpos_bindings_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : (Asttypes.label) = Obj.magic _1 in + let body : (Parsetree.pattern * Parsetree.expression) = Obj.magic body in + let _1 : ( +# 891 "parsing/parser.mly" + (string) +# 17749 "parsing/parser.ml" + ) = Obj.magic _1 in + let bindings : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = Obj.magic bindings in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern * Parsetree.expression * bool) = let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in + let _startpos = _startpos_bindings_ in + let _endpos = _endpos_body_ in + let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = let pbop_op = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 17762 "parsing/parser.ml" + + in + let _endpos = _endpos_body_ in + let _symbolstartpos = _startpos_bindings_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2818 "parsing/parser.mly" - ( (mkpatvar ~loc:_loc _1, mkexpvar ~loc:_loc _1, true) ) -# 17186 "parsing/parser.ml" +# 2944 "parsing/parser.mly" + ( let let_pat, let_exp, rev_ands = bindings in + let pbop_pat, pbop_exp = body in + let pbop_loc = make_loc _sloc in + let and_ = {pbop_op; pbop_pat; pbop_exp; pbop_loc} in + let_pat, let_exp, and_ :: rev_ands ) +# 17775 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.class_declaration list) = +# 211 "" + ( [] ) +# 17793 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17195,36 +17802,116 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = body; + MenhirLib.EngineTypes.startp = _startpos_body_; + MenhirLib.EngineTypes.endp = _endpos_body_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = params; + MenhirLib.EngineTypes.startp = _startpos_params_; + MenhirLib.EngineTypes.endp = _endpos_params_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = virt; + MenhirLib.EngineTypes.startp = _startpos_virt_; + MenhirLib.EngineTypes.endp = _endpos_virt_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; }; } = _menhir_stack in - let _2 : (Parsetree.expression) = Obj.magic _2 in - let _1 : (Asttypes.label) = Obj.magic _1 in + let xs : (Parsetree.class_declaration list) = Obj.magic xs in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let body : (Parsetree.class_expr) = Obj.magic body in + let _1_inlined2 : ( +# 909 "parsing/parser.mly" + (string) +# 17859 "parsing/parser.ml" + ) = Obj.magic _1_inlined2 in + let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in + let virt : (Asttypes.virtual_flag) = Obj.magic virt in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.pattern * Parsetree.expression) = let _1 = - let _endpos = _endpos__1_ in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.class_declaration list) = let x = + let attrs2 = + let _1 = _1_inlined3 in + +# 4365 "parsing/parser.mly" + ( _1 ) +# 17874 "parsing/parser.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 17886 "parsing/parser.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 17894 "parsing/parser.ml" + + in + let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2763 "parsing/parser.mly" - ( mkpatvar ~loc:_sloc _1 ) -# 17222 "parsing/parser.ml" +# 2067 "parsing/parser.mly" + ( + let attrs = attrs1 @ attrs2 in + let loc = make_loc _sloc in + let docs = symbol_docs _sloc in + let text = symbol_text _symbolstartpos in + Ci.mk id body ~virt ~params ~attrs ~loc ~text ~docs + ) +# 17909 "parsing/parser.ml" in -# 2767 "parsing/parser.mly" - ( (_1, _2) ) -# 17228 "parsing/parser.ml" +# 213 "" + ( x :: xs ) +# 17915 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17235,86 +17922,14 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - } = _menhir_stack in - let _5 : (Parsetree.expression) = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.core_type option * Parsetree.core_type option) = Obj.magic _3 in - let _1 : (Asttypes.label) = Obj.magic _1 in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Parsetree.pattern * Parsetree.expression) = let _2 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2763 "parsing/parser.mly" - ( mkpatvar ~loc:_sloc _1 ) -# 17278 "parsing/parser.ml" - - in - let _startpos__2_ = _startpos__1_ in - let _1 = -# 3700 "parsing/parser.mly" - ( false ) -# 17285 "parsing/parser.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in - let _endpos = _endpos__5_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - let _sloc = (_symbolstartpos, _endpos) in - -# 2769 "parsing/parser.mly" - ( let v = _2 in (* PR#7344 *) - let t = - match _3 with - Some t, None -> t - | _, Some t -> t - | _ -> assert false - in - let loc = Location.(t.ptyp_loc.loc_start, t.ptyp_loc.loc_end) in - let local_loc = _loc__1_ in - let typ = ghtyp ~loc (Ptyp_poly([],t)) in - let patloc = (_startpos__2_, _endpos__3_) in - let pat = - mkpat_local_if _1 (ghpat ~loc:patloc (Ppat_constraint(v, typ))) - local_loc - in - let exp = - mkexp_local_if _1 ~loc:_sloc ~kwd_loc:(_loc__1_) - (wrap_exp_local_if _1 (mkexp_constraint ~loc:_sloc _5 _3) - local_loc) - in - (pat, exp) ) -# 17318 "parsing/parser.ml" + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.class_description list) = +# 211 "" + ( [] ) +# 17933 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17327,91 +17942,141 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = cty; + MenhirLib.EngineTypes.startp = _startpos_cty_; + MenhirLib.EngineTypes.endp = _endpos_cty_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = params; + MenhirLib.EngineTypes.startp = _startpos_params_; + MenhirLib.EngineTypes.endp = _endpos_params_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = virt; + MenhirLib.EngineTypes.startp = _startpos_virt_; + MenhirLib.EngineTypes.endp = _endpos_virt_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; }; }; }; } = _menhir_stack in - let _5 : (Parsetree.expression) = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.core_type option * Parsetree.core_type option) = Obj.magic _3 in - let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in + let xs : (Parsetree.class_description list) = Obj.magic xs in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let cty : (Parsetree.class_type) = Obj.magic cty in + let _6 : unit = Obj.magic _6 in + let _1_inlined2 : ( +# 909 "parsing/parser.mly" + (string) +# 18006 "parsing/parser.ml" + ) = Obj.magic _1_inlined2 in + let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in + let virt : (Asttypes.virtual_flag) = Obj.magic virt in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Parsetree.pattern * Parsetree.expression) = let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.class_description list) = let x = + let attrs2 = + let _1 = _1_inlined3 in + +# 4365 "parsing/parser.mly" + ( _1 ) +# 18021 "parsing/parser.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 18033 "parsing/parser.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 18041 "parsing/parser.ml" + + in + let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2763 "parsing/parser.mly" - ( mkpatvar ~loc:_sloc _1 ) -# 17376 "parsing/parser.ml" +# 2358 "parsing/parser.mly" + ( + let attrs = attrs1 @ attrs2 in + let loc = make_loc _sloc in + let docs = symbol_docs _sloc in + let text = symbol_text _symbolstartpos in + Ci.mk id cty ~virt ~params ~attrs ~loc ~text ~docs + ) +# 18056 "parsing/parser.ml" in - let _startpos__2_ = _startpos__1_inlined1_ in - let _1 = -# 3702 "parsing/parser.mly" - ( true ) -# 17383 "parsing/parser.ml" - in - let _endpos = _endpos__5_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - let _sloc = (_symbolstartpos, _endpos) in -# 2769 "parsing/parser.mly" - ( let v = _2 in (* PR#7344 *) - let t = - match _3 with - Some t, None -> t - | _, Some t -> t - | _ -> assert false - in - let loc = Location.(t.ptyp_loc.loc_start, t.ptyp_loc.loc_end) in - let local_loc = _loc__1_ in - let typ = ghtyp ~loc (Ptyp_poly([],t)) in - let patloc = (_startpos__2_, _endpos__3_) in - let pat = - mkpat_local_if _1 (ghpat ~loc:patloc (Ppat_constraint(v, typ))) - local_loc - in - let exp = - mkexp_local_if _1 ~loc:_sloc ~kwd_loc:(_loc__1_) - (wrap_exp_local_if _1 (mkexp_constraint ~loc:_sloc _5 _3) - local_loc) - in - (pat, exp) ) -# 17415 "parsing/parser.ml" +# 213 "" + ( x :: xs ) +# 18062 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.class_type_declaration list) = +# 211 "" + ( [] ) +# 18080 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17424,40 +18089,52 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3_inlined1; - MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__3_inlined1_; + MenhirLib.EngineTypes.semv = csig; + MenhirLib.EngineTypes.startp = _startpos_csig_; + MenhirLib.EngineTypes.endp = _endpos_csig_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = params; + MenhirLib.EngineTypes.startp = _startpos_params_; + MenhirLib.EngineTypes.endp = _endpos_params_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = virt; + MenhirLib.EngineTypes.startp = _startpos_virt_; + MenhirLib.EngineTypes.endp = _endpos_virt_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; }; @@ -17465,81 +18142,88 @@ module Tables = struct }; }; } = _menhir_stack in - let _6 : (Parsetree.expression) = Obj.magic _6 in - let _5 : unit = Obj.magic _5 in - let _3_inlined1 : (Parsetree.core_type) = Obj.magic _3_inlined1 in - let _2 : unit = Obj.magic _2 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in - let _3 : unit = Obj.magic _3 in - let _1 : (Asttypes.label) = Obj.magic _1 in + let xs : (Parsetree.class_type_declaration list) = Obj.magic xs in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let csig : (Parsetree.class_type) = Obj.magic csig in + let _6 : unit = Obj.magic _6 in + let _1_inlined2 : ( +# 909 "parsing/parser.mly" + (string) +# 18153 "parsing/parser.ml" + ) = Obj.magic _1_inlined2 in + let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in + let virt : (Asttypes.virtual_flag) = Obj.magic virt in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__6_ in - let _v : (Parsetree.pattern * Parsetree.expression) = let _4 = - let _3 = _3_inlined1 in - let _1 = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 17486 "parsing/parser.ml" - in - -# 1126 "parsing/parser.mly" - ( xs ) -# 17491 "parsing/parser.ml" - - in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.class_type_declaration list) = let x = + let attrs2 = + let _1 = _1_inlined3 in -# 3595 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 17497 "parsing/parser.ml" +# 18168 "parsing/parser.ml" in - -# 3599 "parsing/parser.mly" - ( Ptyp_poly(_1, _3) ) -# 17503 "parsing/parser.ml" - - in - let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in - let _2 = - let _endpos = _endpos__1_ in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 18180 "parsing/parser.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 18188 "parsing/parser.ml" + + in + let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2763 "parsing/parser.mly" - ( mkpatvar ~loc:_sloc _1 ) -# 17514 "parsing/parser.ml" +# 2397 "parsing/parser.mly" + ( + let attrs = attrs1 @ attrs2 in + let loc = make_loc _sloc in + let docs = symbol_docs _sloc in + let text = symbol_text _symbolstartpos in + Ci.mk id csig ~virt ~params ~attrs ~loc ~text ~docs + ) +# 18203 "parsing/parser.ml" in - let _startpos__2_ = _startpos__1_ in - let _1 = -# 3700 "parsing/parser.mly" - ( false ) -# 17521 "parsing/parser.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in - let _endpos = _endpos__6_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _loc__4_ = (_startpos__4_, _endpos__4_) in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - let _sloc = (_symbolstartpos, _endpos) in -# 2791 "parsing/parser.mly" - ( let patloc = (_startpos__2_, _endpos__4_) in - let pat = - mkpat_local_if _1 - (ghpat ~loc:patloc - (Ppat_constraint(_2, ghtyp ~loc:(_loc__4_) _4))) - _loc__1_ - in - let exp = mkexp_local_if _1 ~loc:_sloc ~kwd_loc:(_loc__1_) _6 in - (pat, exp) ) -# 17543 "parsing/parser.ml" +# 213 "" + ( x :: xs ) +# 18209 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.module_binding list) = +# 211 "" + ( [] ) +# 18227 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17552,129 +18236,116 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3_inlined1; - MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__3_inlined1_; + MenhirLib.EngineTypes.semv = body; + MenhirLib.EngineTypes.startp = _startpos_body_; + MenhirLib.EngineTypes.endp = _endpos_body_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; }; } = _menhir_stack in - let _6 : (Parsetree.expression) = Obj.magic _6 in - let _5 : unit = Obj.magic _5 in - let _3_inlined1 : (Parsetree.core_type) = Obj.magic _3_inlined1 in - let _2 : unit = Obj.magic _2 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in - let _3 : unit = Obj.magic _3 in - let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in + let xs : (Parsetree.module_binding list) = Obj.magic xs in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let body : (Parsetree.module_expr) = Obj.magic body in + let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__6_ in - let _v : (Parsetree.pattern * Parsetree.expression) = let _4 = - let _3 = _3_inlined1 in - let _1 = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 17621 "parsing/parser.ml" - in - -# 1126 "parsing/parser.mly" - ( xs ) -# 17626 "parsing/parser.ml" - - in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.module_binding list) = let x = + let attrs2 = + let _1 = _1_inlined3 in -# 3595 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 17632 "parsing/parser.ml" +# 18290 "parsing/parser.ml" in - -# 3599 "parsing/parser.mly" - ( Ptyp_poly(_1, _3) ) -# 17638 "parsing/parser.ml" - - in - let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in - let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let name = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 18302 "parsing/parser.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 18310 "parsing/parser.ml" + + in + let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2763 "parsing/parser.mly" - ( mkpatvar ~loc:_sloc _1 ) -# 17650 "parsing/parser.ml" +# 1714 "parsing/parser.mly" + ( + let loc = make_loc _sloc in + let attrs = attrs1 @ attrs2 in + let docs = symbol_docs _sloc in + let text = symbol_text _symbolstartpos in + Mb.mk name body ~attrs ~loc ~text ~docs + ) +# 18325 "parsing/parser.ml" in - let _startpos__2_ = _startpos__1_inlined1_ in - let _1 = -# 3702 "parsing/parser.mly" - ( true ) -# 17657 "parsing/parser.ml" - in - let _endpos = _endpos__6_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - _startpos__2_ in - let _loc__4_ = (_startpos__4_, _endpos__4_) in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - let _sloc = (_symbolstartpos, _endpos) in -# 2791 "parsing/parser.mly" - ( let patloc = (_startpos__2_, _endpos__4_) in - let pat = - mkpat_local_if _1 - (ghpat ~loc:patloc - (Ppat_constraint(_2, ghtyp ~loc:(_loc__4_) _4))) - _loc__1_ - in - let exp = mkexp_local_if _1 ~loc:_sloc ~kwd_loc:(_loc__1_) _6 in - (pat, exp) ) -# 17678 "parsing/parser.ml" +# 213 "" + ( x :: xs ) +# 18331 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.module_declaration list) = +# 211 "" + ( [] ) +# 18349 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17687,46 +18358,40 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _8; - MenhirLib.EngineTypes.startp = _startpos__8_; - MenhirLib.EngineTypes.endp = _endpos__8_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = mty; + MenhirLib.EngineTypes.startp = _startpos_mty_; + MenhirLib.EngineTypes.endp = _endpos_mty_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; @@ -17734,42 +18399,64 @@ module Tables = struct }; }; } = _menhir_stack in - let _8 : (Parsetree.expression) = Obj.magic _8 in - let _7 : unit = Obj.magic _7 in - let _6 : (Parsetree.core_type) = Obj.magic _6 in - let _5 : unit = Obj.magic _5 in - let xs : (string Asttypes.loc list) = Obj.magic xs in - let _3 : unit = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (Asttypes.label) = Obj.magic _1 in + let xs : (Parsetree.module_declaration list) = Obj.magic xs in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let mty : (Parsetree.module_type) = Obj.magic mty in + let _4 : unit = Obj.magic _4 in + let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__8_ in - let _v : (Parsetree.pattern * Parsetree.expression) = let _4 = -# 2760 "parsing/parser.mly" - ( xs ) -# 17752 "parsing/parser.ml" - in - let _1 = - let _endpos = _endpos__1_ in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.module_declaration list) = let x = + let attrs2 = + let _1 = _1_inlined3 in + +# 4365 "parsing/parser.mly" + ( _1 ) +# 18419 "parsing/parser.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let name = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 18431 "parsing/parser.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 18439 "parsing/parser.ml" + + in + let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2763 "parsing/parser.mly" - ( mkpatvar ~loc:_sloc _1 ) -# 17761 "parsing/parser.ml" +# 2008 "parsing/parser.mly" + ( + let attrs = attrs1 @ attrs2 in + let docs = symbol_docs _sloc in + let loc = make_loc _sloc in + let text = symbol_text _symbolstartpos in + Md.mk name mty ~attrs ~loc ~text ~docs + ) +# 18454 "parsing/parser.ml" in - let _endpos = _endpos__8_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2801 "parsing/parser.mly" - ( let exp, poly = - wrap_type_annotation ~loc:_sloc _4 _6 _8 in - let loc = (_startpos__1_, _endpos__6_) in - (ghpat ~loc (Ppat_constraint(_1, poly)), exp) ) -# 17773 "parsing/parser.ml" +# 213 "" + ( x :: xs ) +# 18460 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17780,35 +18467,14 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : (Parsetree.expression) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.pattern) = Obj.magic _1 in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern * Parsetree.expression) = -# 2806 "parsing/parser.mly" - ( (_1, _3) ) -# 17812 "parsing/parser.ml" + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.attributes) = +# 211 "" + ( [] ) +# 18478 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17821,48 +18487,44 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _5 : (Parsetree.expression) = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.core_type) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.pattern) = Obj.magic _1 in + let xs : (Parsetree.attributes) = Obj.magic xs in + let x : (Parsetree.attribute) = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Parsetree.pattern * Parsetree.expression) = -# 2808 "parsing/parser.mly" - ( let loc = (_startpos__1_, _endpos__3_) in - (ghpat ~loc (Ppat_constraint(_1, _3)), _5) ) -# 17866 "parsing/parser.ml" + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.attributes) = +# 213 "" + ( x :: xs ) +# 18510 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.type_declaration list) = +# 211 "" + ( [] ) +# 18528 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17875,48 +18537,162 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs_inlined1; + MenhirLib.EngineTypes.startp = _startpos_xs_inlined1_; + MenhirLib.EngineTypes.endp = _endpos_xs_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = kind_priv_manifest; + MenhirLib.EngineTypes.startp = _startpos_kind_priv_manifest_; + MenhirLib.EngineTypes.endp = _endpos_kind_priv_manifest_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = layout; + MenhirLib.EngineTypes.startp = _startpos_layout_; + MenhirLib.EngineTypes.endp = _endpos_layout_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = params; + MenhirLib.EngineTypes.startp = _startpos_params_; + MenhirLib.EngineTypes.endp = _endpos_params_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; }; }; } = _menhir_stack in - let _3 : (Parsetree.expression) = Obj.magic _3 in - let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in + let xs : (Parsetree.type_declaration list) = Obj.magic xs in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let xs_inlined1 : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs_inlined1 in + let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in + let layout : (Parsetree.attribute option) = Obj.magic layout in + let _1_inlined2 : ( +# 909 "parsing/parser.mly" + (string) +# 18602 "parsing/parser.ml" + ) = Obj.magic _1_inlined2 in + let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern * Parsetree.expression) = let _2 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.type_declaration list) = let x = + let xs = xs_inlined1 in + let attrs2 = + let _1 = _1_inlined3 in + +# 4365 "parsing/parser.mly" + ( _1 ) +# 18617 "parsing/parser.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let cstrs = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 18626 "parsing/parser.ml" + in + +# 1179 "parsing/parser.mly" + ( xs ) +# 18631 "parsing/parser.ml" + + in + +# 3377 "parsing/parser.mly" + ( _1 ) +# 18637 "parsing/parser.ml" + + in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 18648 "parsing/parser.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 18656 "parsing/parser.ml" + + in + let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2763 "parsing/parser.mly" - ( mkpatvar ~loc:_sloc _1 ) -# 17910 "parsing/parser.ml" +# 3366 "parsing/parser.mly" + ( + let (kind, priv, manifest) = kind_priv_manifest in + let docs = symbol_docs _sloc in + let attrs = attrs1 @ attrs2 in + let loc = make_loc _sloc in + let text = symbol_text _symbolstartpos in + Type.mk id ~params ?layout ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text + ) +# 18672 "parsing/parser.ml" in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - let _sloc = (_symbolstartpos, _endpos) in -# 2811 "parsing/parser.mly" - ( (_2, mkexp_stack ~loc:_sloc ~kwd_loc:(_loc__1_) _3) ) -# 17920 "parsing/parser.ml" +# 213 "" + ( x :: xs ) +# 18678 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.type_declaration list) = +# 211 "" + ( [] ) +# 18696 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17929,84 +18705,174 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = body; - MenhirLib.EngineTypes.startp = _startpos_body_; - MenhirLib.EngineTypes.endp = _endpos_body_; + MenhirLib.EngineTypes.semv = _1_inlined4; + MenhirLib.EngineTypes.startp = _startpos__1_inlined4_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = rec_flag; - MenhirLib.EngineTypes.startp = _startpos_rec_flag_; - MenhirLib.EngineTypes.endp = _endpos_rec_flag_; + MenhirLib.EngineTypes.semv = xs_inlined1; + MenhirLib.EngineTypes.startp = _startpos_xs_inlined1_; + MenhirLib.EngineTypes.endp = _endpos_xs_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ext; - MenhirLib.EngineTypes.startp = _startpos_ext_; - MenhirLib.EngineTypes.endp = _endpos_ext_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = layout; + MenhirLib.EngineTypes.startp = _startpos_layout_; + MenhirLib.EngineTypes.endp = _endpos_layout_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = params; + MenhirLib.EngineTypes.startp = _startpos_params_; + MenhirLib.EngineTypes.endp = _endpos_params_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; }; }; }; }; } = _menhir_stack in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let body : (Parsetree.pattern * Parsetree.expression * bool) = Obj.magic body in - let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in + let xs : (Parsetree.type_declaration list) = Obj.magic xs in + let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in + let xs_inlined1 : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs_inlined1 in + let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in + let _1_inlined3 : unit = Obj.magic _1_inlined3 in + let layout : (Parsetree.attribute option) = Obj.magic layout in + let _1_inlined2 : ( +# 909 "parsing/parser.mly" + (string) +# 18777 "parsing/parser.ml" + ) = Obj.magic _1_inlined2 in + let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined2_ in - let _v : (let_bindings) = let _1 = + let _endpos = _endpos_xs_ in + let _v : (Parsetree.type_declaration list) = let x = + let xs = xs_inlined1 in let attrs2 = - let _1 = _1_inlined2 in + let _1 = _1_inlined4 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 17983 "parsing/parser.ml" +# 18792 "parsing/parser.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined4_ in + let cstrs = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 18801 "parsing/parser.ml" + in + +# 1179 "parsing/parser.mly" + ( xs ) +# 18806 "parsing/parser.ml" + + in + +# 3377 "parsing/parser.mly" + ( _1 ) +# 18812 "parsing/parser.ml" + + in + let kind_priv_manifest = +# 3412 "parsing/parser.mly" + ( _2 ) +# 18818 "parsing/parser.ml" + in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 18828 "parsing/parser.ml" in - let _endpos_attrs2_ = _endpos__1_inlined2_ in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 17992 "parsing/parser.ml" +# 18836 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2838 "parsing/parser.mly" +# 3366 "parsing/parser.mly" ( + let (kind, priv, manifest) = kind_priv_manifest in + let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in - mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) + let loc = make_loc _sloc in + let text = symbol_text _symbolstartpos in + Type.mk id ~params ?layout ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text ) -# 18004 "parsing/parser.ml" +# 18852 "parsing/parser.ml" in -# 2828 "parsing/parser.mly" - ( _1 ) -# 18010 "parsing/parser.ml" +# 213 "" + ( x :: xs ) +# 18858 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.attributes) = +# 211 "" + ( [] ) +# 18876 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18019,26 +18885,26 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : (let_binding) = Obj.magic _2 in - let _1 : (let_bindings) = Obj.magic _1 in + let xs : (Parsetree.attributes) = Obj.magic xs in + let x : (Parsetree.attribute) = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (let_bindings) = -# 2829 "parsing/parser.mly" - ( addlb _1 _2 ) -# 18042 "parsing/parser.ml" + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.attributes) = +# 213 "" + ( x :: xs ) +# 18908 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18049,84 +18915,14 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = body; - MenhirLib.EngineTypes.startp = _startpos_body_; - MenhirLib.EngineTypes.endp = _endpos_body_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = rec_flag; - MenhirLib.EngineTypes.startp = _startpos_rec_flag_; - MenhirLib.EngineTypes.endp = _endpos_rec_flag_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - } = _menhir_stack in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let body : (Parsetree.pattern * Parsetree.expression * bool) = Obj.magic body in - let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined2_ in - let _v : (let_bindings) = let _1 = - let attrs2 = - let _1 = _1_inlined2 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 18098 "parsing/parser.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 18107 "parsing/parser.ml" - - in - let ext = -# 4235 "parsing/parser.mly" - ( None ) -# 18113 "parsing/parser.ml" - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2838 "parsing/parser.mly" - ( - let attrs = attrs1 @ attrs2 in - mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) - ) -# 18124 "parsing/parser.ml" - - in - -# 2828 "parsing/parser.mly" - ( _1 ) -# 18130 "parsing/parser.ml" + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.signature_item list list) = +# 211 "" + ( [] ) +# 18926 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18139,102 +18935,41 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = body; - MenhirLib.EngineTypes.startp = _startpos_body_; - MenhirLib.EngineTypes.endp = _endpos_body_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = rec_flag; - MenhirLib.EngineTypes.startp = _startpos_rec_flag_; - MenhirLib.EngineTypes.endp = _endpos_rec_flag_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let body : (Parsetree.pattern * Parsetree.expression * bool) = Obj.magic body in - let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _2 : (string Asttypes.loc) = Obj.magic _2 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let xs : (Parsetree.signature_item list list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined3_ in - let _v : (let_bindings) = let _1 = - let attrs2 = - let _1 = _1_inlined3 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 18200 "parsing/parser.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let attrs1 = - let _1 = _1_inlined2 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 18209 "parsing/parser.ml" - - in - let ext = - let _startpos__1_ = _startpos__1_inlined1_ in - let _endpos = _endpos__2_ in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.signature_item list list) = let x = + let _1 = let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in -# 4237 "parsing/parser.mly" - ( not_expecting _loc "extension" ) -# 18220 "parsing/parser.ml" +# 1105 "parsing/parser.mly" + ( text_sig _startpos ) +# 18961 "parsing/parser.ml" in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2838 "parsing/parser.mly" - ( - let attrs = attrs1 @ attrs2 in - mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) - ) -# 18232 "parsing/parser.ml" +# 1864 "parsing/parser.mly" + ( _1 ) +# 18967 "parsing/parser.ml" in -# 2828 "parsing/parser.mly" - ( _1 ) -# 18238 "parsing/parser.ml" +# 213 "" + ( x :: xs ) +# 18973 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18247,9 +18982,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -18258,15 +18993,30 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : (let_binding) = Obj.magic _2 in - let _1 : (let_bindings) = Obj.magic _1 in + let xs : (Parsetree.signature_item list list) = Obj.magic xs in + let _1 : (Parsetree.signature_item) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (let_bindings) = -# 2829 "parsing/parser.mly" - ( addlb _1 _2 ) -# 18270 "parsing/parser.ml" + let _endpos = _endpos_xs_ in + let _v : (Parsetree.signature_item list list) = let x = + let _1 = + let _startpos = _startpos__1_ in + +# 1103 "parsing/parser.mly" + ( text_sig _startpos @ [_1] ) +# 19008 "parsing/parser.ml" + + in + +# 1864 "parsing/parser.mly" + ( _1 ) +# 19014 "parsing/parser.ml" + + in + +# 213 "" + ( x :: xs ) +# 19020 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18277,21 +19027,14 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Parsetree.pattern) = Obj.magic _1 in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern) = -# 2408 "parsing/parser.mly" - ( _1 ) -# 18295 "parsing/parser.ml" + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.structure_item list list) = +# 211 "" + ( [] ) +# 19038 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18304,49 +19047,60 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _3 : (Parsetree.core_type) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.pattern) = Obj.magic _1 in + let xs : (Parsetree.structure_item list list) = Obj.magic xs in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _1 = - let _1 = -# 2410 "parsing/parser.mly" - ( Ppat_constraint(_1, _3) ) -# 18335 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.structure_item list list) = let x = + let _1 = + let ys = + let items = +# 1165 "parsing/parser.mly" + ( [] ) +# 19073 "parsing/parser.ml" + in + +# 1594 "parsing/parser.mly" + ( items ) +# 19078 "parsing/parser.ml" + + in + let xs = + let _startpos = _startpos__1_ in + +# 1101 "parsing/parser.mly" + ( text_str _startpos ) +# 19086 "parsing/parser.ml" + + in + +# 267 "" + ( xs @ ys ) +# 19092 "parsing/parser.ml" + + in -# 1059 "parsing/parser.mly" - ( mkpat ~loc:_sloc _1 ) -# 18344 "parsing/parser.ml" +# 1610 "parsing/parser.mly" + ( _1 ) +# 19098 "parsing/parser.ml" in -# 2411 "parsing/parser.mly" - ( _1 ) -# 18350 "parsing/parser.ml" +# 213 "" + ( x :: xs ) +# 19104 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18359,109 +19113,109 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let ty : (Parsetree.core_type) = Obj.magic ty in - let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in - let _2 : unit = Obj.magic _2 in - let pat : (Parsetree.pattern) = Obj.magic pat in + let xs : (Parsetree.structure_item list list) = Obj.magic xs in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let e : (Parsetree.expression) = Obj.magic e in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_pat_ in - let _endpos = _endpos_ty_ in - let _v : (Parsetree.pattern) = let _1 = + let _startpos = _startpos__1_ in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.structure_item list list) = let x = let _1 = - let _1 = - let cty = - let _1 = - let vars = + let ys = + let (_endpos__1_, _1) = (_endpos__1_inlined1_, _1_inlined1) in + let items = + let x = + let _1 = let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 18410 "parsing/parser.ml" + let attrs = +# 4365 "parsing/parser.mly" + ( _1 ) +# 19158 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" - ( xs ) -# 18415 "parsing/parser.ml" +# 1601 "parsing/parser.mly" + ( mkstrexp e attrs ) +# 19163 "parsing/parser.ml" in + let _startpos__1_ = _startpos_e_ in + let _startpos = _startpos__1_ in -# 3595 "parsing/parser.mly" - ( _1 ) -# 18421 "parsing/parser.ml" +# 1099 "parsing/parser.mly" + ( text_str _startpos @ [_1] ) +# 19171 "parsing/parser.ml" in + let _startpos__1_ = _startpos_e_ in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in -# 2420 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 18427 "parsing/parser.ml" +# 1118 "parsing/parser.mly" + ( mark_rhs_docs _startpos _endpos; + _1 ) +# 19181 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 18437 "parsing/parser.ml" +# 1167 "parsing/parser.mly" + ( x ) +# 19187 "parsing/parser.ml" in -# 2421 "parsing/parser.mly" - ( Ppat_constraint(pat, cty) ) -# 18443 "parsing/parser.ml" +# 1594 "parsing/parser.mly" + ( items ) +# 19193 "parsing/parser.ml" + + in + let xs = + let _startpos = _startpos__1_ in + +# 1101 "parsing/parser.mly" + ( text_str _startpos ) +# 19201 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_pat_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" - ( mkpat ~loc:_sloc _1 ) -# 18453 "parsing/parser.ml" +# 267 "" + ( xs @ ys ) +# 19207 "parsing/parser.ml" in -# 2422 "parsing/parser.mly" +# 1610 "parsing/parser.mly" ( _1 ) -# 18459 "parsing/parser.ml" +# 19213 "parsing/parser.ml" in -# 2413 "parsing/parser.mly" - ( _1 ) -# 18465 "parsing/parser.ml" +# 213 "" + ( x :: xs ) +# 19219 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18474,9 +19228,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = exp; - MenhirLib.EngineTypes.startp = _startpos_exp_; - MenhirLib.EngineTypes.endp = _endpos_exp_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -18485,25 +19239,30 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let exp : (Parsetree.expression) = Obj.magic exp in - let _1 : (Asttypes.label) = Obj.magic _1 in + let xs : (Parsetree.structure_item list list) = Obj.magic xs in + let _1 : (Parsetree.structure_item) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_exp_ in - let _v : (Parsetree.pattern * Parsetree.expression) = let pat = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.structure_item list list) = let x = + let _1 = + let _startpos = _startpos__1_ in + +# 1099 "parsing/parser.mly" + ( text_str _startpos @ [_1] ) +# 19254 "parsing/parser.ml" + + in -# 2763 "parsing/parser.mly" - ( mkpatvar ~loc:_sloc _1 ) -# 18501 "parsing/parser.ml" +# 1610 "parsing/parser.mly" + ( _1 ) +# 19260 "parsing/parser.ml" in -# 2855 "parsing/parser.mly" - ( (pat, exp) ) -# 18507 "parsing/parser.ml" +# 213 "" + ( x :: xs ) +# 19266 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18514,24 +19273,14 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Asttypes.label) = Obj.magic _1 in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.pattern * Parsetree.expression) = let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in - -# 2858 "parsing/parser.mly" - ( (mkpatvar ~loc:_loc _1, mkexpvar ~loc:_loc _1) ) -# 18535 "parsing/parser.ml" + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.class_type_field list list) = +# 211 "" + ( [] ) +# 19284 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18544,48 +19293,52 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = exp; - MenhirLib.EngineTypes.startp = _startpos_exp_; - MenhirLib.EngineTypes.endp = _endpos_exp_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = typ; - MenhirLib.EngineTypes.startp = _startpos_typ_; - MenhirLib.EngineTypes.endp = _endpos_typ_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let exp : (Parsetree.expression) = Obj.magic exp in - let _4 : unit = Obj.magic _4 in - let typ : (Parsetree.core_type) = Obj.magic typ in - let _2 : unit = Obj.magic _2 in - let pat : (Parsetree.pattern) = Obj.magic pat in + let xs : (Parsetree.class_type_field list list) = Obj.magic xs in + let _1 : (Parsetree.class_type_field) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_pat_ in - let _endpos = _endpos_exp_ in - let _v : (Parsetree.pattern * Parsetree.expression) = -# 2860 "parsing/parser.mly" - ( let loc = (_startpos_pat_, _endpos_typ_) in - (ghpat ~loc (Ppat_constraint(pat, typ)), exp) ) -# 18589 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.class_type_field list list) = let x = + let _startpos = _startpos__1_ in + +# 1113 "parsing/parser.mly" + ( text_csig _startpos @ [_1] ) +# 19318 "parsing/parser.ml" + + in + +# 213 "" + ( x :: xs ) +# 19324 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.class_field list list) = +# 211 "" + ( [] ) +# 19342 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18598,33 +19351,34 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = exp; - MenhirLib.EngineTypes.startp = _startpos_exp_; - MenhirLib.EngineTypes.endp = _endpos_exp_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let exp : (Parsetree.expression) = Obj.magic exp in - let _2 : unit = Obj.magic _2 in - let pat : (Parsetree.pattern) = Obj.magic pat in + let xs : (Parsetree.class_field list list) = Obj.magic xs in + let _1 : (Parsetree.class_field) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_pat_ in - let _endpos = _endpos_exp_ in - let _v : (Parsetree.pattern * Parsetree.expression) = -# 2863 "parsing/parser.mly" - ( (pat, exp) ) -# 18628 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.class_field list list) = let x = + let _startpos = _startpos__1_ in + +# 1111 "parsing/parser.mly" + ( text_cstr _startpos @ [_1] ) +# 19376 "parsing/parser.ml" + + in + +# 213 "" + ( x :: xs ) +# 19382 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18635,22 +19389,14 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = body; - MenhirLib.EngineTypes.startp = _startpos_body_; - MenhirLib.EngineTypes.endp = _endpos_body_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let body : (Parsetree.pattern * Parsetree.expression) = Obj.magic body in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_body_ in - let _endpos = _endpos_body_ in - let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = -# 2867 "parsing/parser.mly" - ( let let_pat, let_exp = body in - let_pat, let_exp, [] ) -# 18654 "parsing/parser.ml" + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.structure_item list list) = +# 211 "" + ( [] ) +# 19400 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18663,54 +19409,34 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = body; - MenhirLib.EngineTypes.startp = _startpos_body_; - MenhirLib.EngineTypes.endp = _endpos_body_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = bindings; - MenhirLib.EngineTypes.startp = _startpos_bindings_; - MenhirLib.EngineTypes.endp = _endpos_bindings_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let body : (Parsetree.pattern * Parsetree.expression) = Obj.magic body in - let _1 : ( -# 820 "parsing/parser.mly" - (string) -# 18688 "parsing/parser.ml" - ) = Obj.magic _1 in - let bindings : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = Obj.magic bindings in + let xs : (Parsetree.structure_item list list) = Obj.magic xs in + let _1 : (Parsetree.structure_item) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_bindings_ in - let _endpos = _endpos_body_ in - let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = let pbop_op = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _startpos = _startpos__1_ in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.structure_item list list) = let x = + let _startpos = _startpos__1_ in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 18701 "parsing/parser.ml" +# 1099 "parsing/parser.mly" + ( text_str _startpos @ [_1] ) +# 19434 "parsing/parser.ml" in - let _endpos = _endpos_body_ in - let _symbolstartpos = _startpos_bindings_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2870 "parsing/parser.mly" - ( let let_pat, let_exp, rev_ands = bindings in - let pbop_pat, pbop_exp = body in - let pbop_loc = make_loc _sloc in - let and_ = {pbop_op; pbop_pat; pbop_exp; pbop_loc} in - let_pat, let_exp, and_ :: rev_ands ) -# 18714 "parsing/parser.ml" +# 213 "" + ( x :: xs ) +# 19440 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18725,10 +19451,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : (Parsetree.class_declaration list) = + let _v : (Parsetree.toplevel_phrase list list) = # 211 "" ( [] ) -# 18732 "parsing/parser.ml" +# 19458 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18745,130 +19471,48 @@ module Tables = struct MenhirLib.EngineTypes.startp = _startpos_xs_; MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = body; - MenhirLib.EngineTypes.startp = _startpos_body_; - MenhirLib.EngineTypes.endp = _endpos_body_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = params; - MenhirLib.EngineTypes.startp = _startpos_params_; - MenhirLib.EngineTypes.endp = _endpos_params_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = virt; - MenhirLib.EngineTypes.startp = _startpos_virt_; - MenhirLib.EngineTypes.endp = _endpos_virt_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : (Parsetree.class_declaration list) = Obj.magic xs in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let body : (Parsetree.class_expr) = Obj.magic body in - let _1_inlined2 : ( -# 838 "parsing/parser.mly" - (string) -# 18798 "parsing/parser.ml" - ) = Obj.magic _1_inlined2 in - let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in - let virt : (Asttypes.virtual_flag) = Obj.magic virt in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let xs : (Parsetree.toplevel_phrase list list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.class_declaration list) = let x = - let attrs2 = - let _1 = _1_inlined3 in - -# 4224 "parsing/parser.mly" + let _v : (Parsetree.toplevel_phrase list list) = let x = + let _1 = + let x = + let _1 = +# 1165 "parsing/parser.mly" + ( [] ) +# 19493 "parsing/parser.ml" + in + +# 1397 "parsing/parser.mly" ( _1 ) -# 18813 "parsing/parser.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 18825 "parsing/parser.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in +# 19498 "parsing/parser.ml" + + in -# 4228 "parsing/parser.mly" - ( _1 ) -# 18833 "parsing/parser.ml" +# 183 "" + ( x ) +# 19504 "parsing/parser.ml" in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1996 "parsing/parser.mly" - ( - let attrs = attrs1 @ attrs2 in - let loc = make_loc _sloc in - let docs = symbol_docs _sloc in - let text = symbol_text _symbolstartpos in - Ci.mk id body ~virt ~params ~attrs ~loc ~text ~docs - ) -# 18848 "parsing/parser.ml" +# 1409 "parsing/parser.mly" + ( _1 ) +# 19510 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 18854 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Parsetree.class_description list) = -# 211 "" - ( [] ) -# 18872 "parsing/parser.ml" +# 19516 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18886,118 +19530,144 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = cty; - MenhirLib.EngineTypes.startp = _startpos_cty_; - MenhirLib.EngineTypes.endp = _endpos_cty_; + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = params; - MenhirLib.EngineTypes.startp = _startpos_params_; - MenhirLib.EngineTypes.endp = _endpos_params_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = virt; - MenhirLib.EngineTypes.startp = _startpos_virt_; - MenhirLib.EngineTypes.endp = _endpos_virt_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let xs : (Parsetree.class_description list) = Obj.magic xs in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let cty : (Parsetree.class_type) = Obj.magic cty in - let _6 : unit = Obj.magic _6 in - let _1_inlined2 : ( -# 838 "parsing/parser.mly" - (string) -# 18945 "parsing/parser.ml" - ) = Obj.magic _1_inlined2 in - let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in - let virt : (Asttypes.virtual_flag) = Obj.magic virt in + let xs : (Parsetree.toplevel_phrase list list) = Obj.magic xs in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let e : (Parsetree.expression) = Obj.magic e in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_xs_ in - let _v : (Parsetree.class_description list) = let x = - let attrs2 = - let _1 = _1_inlined3 in - -# 4224 "parsing/parser.mly" + let _v : (Parsetree.toplevel_phrase list list) = let x = + let _1 = + let x = + let _1 = _1_inlined1 in + let _1 = + let x = + let _1 = + let _1 = + let attrs = +# 4365 "parsing/parser.mly" ( _1 ) -# 18960 "parsing/parser.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in +# 19570 "parsing/parser.ml" + in + +# 1601 "parsing/parser.mly" + ( mkstrexp e attrs ) +# 19575 "parsing/parser.ml" + + in + +# 1109 "parsing/parser.mly" + ( Ptop_def [_1] ) +# 19581 "parsing/parser.ml" + + in + let _startpos__1_ = _startpos_e_ in + let _startpos = _startpos__1_ in + +# 1107 "parsing/parser.mly" + ( text_def _startpos @ [_1] ) +# 19589 "parsing/parser.ml" + + in + +# 1167 "parsing/parser.mly" + ( x ) +# 19595 "parsing/parser.ml" + + in + +# 1397 "parsing/parser.mly" + ( _1 ) +# 19601 "parsing/parser.ml" + + in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 18972 "parsing/parser.ml" +# 183 "" + ( x ) +# 19607 "parsing/parser.ml" in - let attrs1 = - let _1 = _1_inlined1 in + +# 1409 "parsing/parser.mly" + ( _1 ) +# 19613 "parsing/parser.ml" + + in + +# 213 "" + ( x :: xs ) +# 19619 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let xs : (Parsetree.toplevel_phrase list list) = Obj.magic xs in + let _1 : (Parsetree.structure_item) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.toplevel_phrase list list) = let x = + let _1 = + let _1 = +# 1109 "parsing/parser.mly" + ( Ptop_def [_1] ) +# 19653 "parsing/parser.ml" + in + let _startpos = _startpos__1_ in -# 4228 "parsing/parser.mly" - ( _1 ) -# 18980 "parsing/parser.ml" +# 1107 "parsing/parser.mly" + ( text_def _startpos @ [_1] ) +# 19659 "parsing/parser.ml" in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2287 "parsing/parser.mly" - ( - let attrs = attrs1 @ attrs2 in - let loc = make_loc _sloc in - let docs = symbol_docs _sloc in - let text = symbol_text _symbolstartpos in - Ci.mk id cty ~virt ~params ~attrs ~loc ~text ~docs - ) -# 18995 "parsing/parser.ml" +# 1409 "parsing/parser.mly" + ( _1 ) +# 19665 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 19001 "parsing/parser.ml" +# 19671 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19008,14 +19678,53 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let xs : (Parsetree.toplevel_phrase list list) = Obj.magic xs in + let _1 : (Parsetree.toplevel_phrase) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Parsetree.class_type_declaration list) = -# 211 "" - ( [] ) -# 19019 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.toplevel_phrase list list) = let x = + let _1 = + let _1 = + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + +# 1118 "parsing/parser.mly" + ( mark_rhs_docs _startpos _endpos; + _1 ) +# 19709 "parsing/parser.ml" + + in + let _startpos = _startpos__1_ in + +# 1107 "parsing/parser.mly" + ( text_def _startpos @ [_1] ) +# 19716 "parsing/parser.ml" + + in + +# 1409 "parsing/parser.mly" + ( _1 ) +# 19722 "parsing/parser.ml" + + in + +# 213 "" + ( x :: xs ) +# 19728 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19028,123 +19737,71 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = opat; + MenhirLib.EngineTypes.startp = _startpos_opat_; + MenhirLib.EngineTypes.endp = _endpos_opat_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = octy; + MenhirLib.EngineTypes.startp = _startpos_octy_; + MenhirLib.EngineTypes.endp = _endpos_octy_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = csig; - MenhirLib.EngineTypes.startp = _startpos_csig_; - MenhirLib.EngineTypes.endp = _endpos_csig_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = params; - MenhirLib.EngineTypes.startp = _startpos_params_; - MenhirLib.EngineTypes.endp = _endpos_params_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = virt; - MenhirLib.EngineTypes.startp = _startpos_virt_; - MenhirLib.EngineTypes.endp = _endpos_virt_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let xs : (Parsetree.class_type_declaration list) = Obj.magic xs in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let csig : (Parsetree.class_type) = Obj.magic csig in - let _6 : unit = Obj.magic _6 in - let _1_inlined2 : ( -# 838 "parsing/parser.mly" - (string) -# 19092 "parsing/parser.ml" - ) = Obj.magic _1_inlined2 in - let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in - let virt : (Asttypes.virtual_flag) = Obj.magic virt in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let opat : (Parsetree.pattern option) = Obj.magic opat in + let octy : (Parsetree.core_type option) = Obj.magic octy in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.class_type_declaration list) = let x = - let attrs2 = - let _1 = _1_inlined3 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 19107 "parsing/parser.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos_opat_ in + let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let _2 = +# 124 "" + ( None ) +# 19767 "parsing/parser.ml" + in + let x = + let label = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 19119 "parsing/parser.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 19127 "parsing/parser.ml" +# 19777 "parsing/parser.ml" in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in + let _startpos_label_ = _startpos__1_ in + let _endpos = _endpos_opat_ in + let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 2326 "parsing/parser.mly" - ( - let attrs = attrs1 @ attrs2 in - let loc = make_loc _sloc in - let docs = symbol_docs _sloc in - let text = symbol_text _symbolstartpos in - Ci.mk id csig ~virt ~params ~attrs ~loc ~text ~docs +# 3250 "parsing/parser.mly" + ( let constraint_loc, label, pat = + match opat with + | None -> + (* No pattern; this is a pun. Desugar it. + But that the pattern was there and the label reconstructed (which + piece of AST is marked as ghost is important for warning + emission). *) + _sloc, make_ghost label, pat_of_label label + | Some pat -> + (_startpos_octy_, _endpos), label, pat + in + label, mkpat_opt_constraint ~loc:constraint_loc pat octy ) -# 19142 "parsing/parser.ml" +# 19799 "parsing/parser.ml" in -# 213 "" - ( x :: xs ) -# 19148 "parsing/parser.ml" +# 1334 "parsing/parser.mly" + ( [x], None ) +# 19805 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19155,14 +19812,80 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = opat; + MenhirLib.EngineTypes.startp = _startpos_opat_; + MenhirLib.EngineTypes.endp = _endpos_opat_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = octy; + MenhirLib.EngineTypes.startp = _startpos_octy_; + MenhirLib.EngineTypes.endp = _endpos_octy_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let x : unit = Obj.magic x in + let opat : (Parsetree.pattern option) = Obj.magic opat in + let octy : (Parsetree.core_type option) = Obj.magic octy in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Parsetree.module_binding list) = -# 211 "" - ( [] ) -# 19166 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos_x_ in + let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let _2 = +# 126 "" + ( Some x ) +# 19851 "parsing/parser.ml" + in + let x = + let label = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 19861 "parsing/parser.ml" + + in + let _startpos_label_ = _startpos__1_ in + let _endpos = _endpos_opat_ in + let _symbolstartpos = _startpos_label_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3250 "parsing/parser.mly" + ( let constraint_loc, label, pat = + match opat with + | None -> + (* No pattern; this is a pun. Desugar it. + But that the pattern was there and the label reconstructed (which + piece of AST is marked as ghost is important for warning + emission). *) + _sloc, make_ghost label, pat_of_label label + | Some pat -> + (_startpos_octy_, _endpos), label, pat + in + label, mkpat_opt_constraint ~loc:constraint_loc pat octy + ) +# 19883 "parsing/parser.ml" + + in + +# 1334 "parsing/parser.mly" + ( [x], None ) +# 19889 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19175,29 +19898,29 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = y; + MenhirLib.EngineTypes.startp = _startpos_y_; + MenhirLib.EngineTypes.endp = _endpos_y_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = body; - MenhirLib.EngineTypes.startp = _startpos_body_; - MenhirLib.EngineTypes.endp = _endpos_body_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = opat; + MenhirLib.EngineTypes.startp = _startpos_opat_; + MenhirLib.EngineTypes.endp = _endpos_opat_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = octy; + MenhirLib.EngineTypes.startp = _startpos_octy_; + MenhirLib.EngineTypes.endp = _endpos_octy_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -19210,81 +19933,52 @@ module Tables = struct }; }; } = _menhir_stack in - let xs : (Parsetree.module_binding list) = Obj.magic xs in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let body : (Parsetree.module_expr) = Obj.magic body in - let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let _4 : (unit option) = Obj.magic _4 in + let y : unit = Obj.magic y in + let _2 : unit = Obj.magic _2 in + let opat : (Parsetree.pattern option) = Obj.magic opat in + let octy : (Parsetree.core_type option) = Obj.magic octy in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.module_binding list) = let x = - let attrs2 = - let _1 = _1_inlined3 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 19229 "parsing/parser.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let name = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__4_ in + let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let x = + let label = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 19241 "parsing/parser.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 19249 "parsing/parser.ml" +# 19954 "parsing/parser.ml" in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in + let _startpos_label_ = _startpos__1_ in + let _endpos = _endpos_opat_ in + let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 1643 "parsing/parser.mly" - ( - let loc = make_loc _sloc in - let attrs = attrs1 @ attrs2 in - let docs = symbol_docs _sloc in - let text = symbol_text _symbolstartpos in - Mb.mk name body ~attrs ~loc ~text ~docs - ) -# 19264 "parsing/parser.ml" +# 3250 "parsing/parser.mly" + ( let constraint_loc, label, pat = + match opat with + | None -> + (* No pattern; this is a pun. Desugar it. + But that the pattern was there and the label reconstructed (which + piece of AST is marked as ghost is important for warning + emission). *) + _sloc, make_ghost label, pat_of_label label + | Some pat -> + (_startpos_octy_, _endpos), label, pat + in + label, mkpat_opt_constraint ~loc:constraint_loc pat octy + ) +# 19976 "parsing/parser.ml" in -# 213 "" - ( x :: xs ) -# 19270 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Parsetree.module_declaration list) = -# 211 "" - ( [] ) -# 19288 "parsing/parser.ml" +# 1336 "parsing/parser.mly" + ( [x], Some y ) +# 19982 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19297,105 +19991,148 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = tail; + MenhirLib.EngineTypes.startp = _startpos_tail_; + MenhirLib.EngineTypes.endp = _endpos_tail_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = mty; - MenhirLib.EngineTypes.startp = _startpos_mty_; - MenhirLib.EngineTypes.endp = _endpos_mty_; + MenhirLib.EngineTypes.semv = opat; + MenhirLib.EngineTypes.startp = _startpos_opat_; + MenhirLib.EngineTypes.endp = _endpos_opat_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = octy; + MenhirLib.EngineTypes.startp = _startpos_octy_; + MenhirLib.EngineTypes.endp = _endpos_octy_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in - let xs : (Parsetree.module_declaration list) = Obj.magic xs in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let mty : (Parsetree.module_type) = Obj.magic mty in - let _4 : unit = Obj.magic _4 in - let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let tail : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = Obj.magic tail in + let _2 : unit = Obj.magic _2 in + let opat : (Parsetree.pattern option) = Obj.magic opat in + let octy : (Parsetree.core_type option) = Obj.magic octy in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.module_declaration list) = let x = - let attrs2 = - let _1 = _1_inlined3 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 19358 "parsing/parser.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let name = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos_tail_ in + let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let x = + let label = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 19370 "parsing/parser.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 19378 "parsing/parser.ml" +# 20040 "parsing/parser.ml" in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in + let _startpos_label_ = _startpos__1_ in + let _endpos = _endpos_opat_ in + let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 1937 "parsing/parser.mly" - ( - let attrs = attrs1 @ attrs2 in - let docs = symbol_docs _sloc in - let loc = make_loc _sloc in - let text = symbol_text _symbolstartpos in - Md.mk name mty ~attrs ~loc ~text ~docs - ) -# 19393 "parsing/parser.ml" +# 3250 "parsing/parser.mly" + ( let constraint_loc, label, pat = + match opat with + | None -> + (* No pattern; this is a pun. Desugar it. + But that the pattern was there and the label reconstructed (which + piece of AST is marked as ghost is important for warning + emission). *) + _sloc, make_ghost label, pat_of_label label + | Some pat -> + (_startpos_octy_, _endpos), label, pat + in + label, mkpat_opt_constraint ~loc:constraint_loc pat octy + ) +# 20062 "parsing/parser.ml" in -# 213 "" - ( x :: xs ) -# 19399 "parsing/parser.ml" +# 1340 "parsing/parser.mly" + ( let xs, y = tail in + x :: xs, y ) +# 20069 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Parsetree.expression) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.expression) = +# 2968 "parsing/parser.mly" + ( _1 ) +# 20094 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : (Parsetree.expression) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (Parsetree.core_type option * Parsetree.core_type option) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Parsetree.expression) = let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2970 "parsing/parser.mly" + ( wrap_exp_stack (mkexp_constraint ~loc:_sloc _3 _1) (make_loc _sloc) ) +# 20136 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19406,14 +20143,28 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : (Parsetree.expression) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Parsetree.attributes) = -# 211 "" - ( [] ) -# 19417 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Parsetree.expression) = +# 2974 "parsing/parser.mly" + ( _2 ) +# 20168 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19426,26 +20177,29 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : (Parsetree.attributes) = Obj.magic xs in - let x : (Parsetree.attribute) = Obj.magic x in + let _2 : (Parsetree.expression) = Obj.magic _2 in + let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.attributes) = -# 213 "" - ( x :: xs ) -# 19449 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Parsetree.expression) = let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2976 "parsing/parser.mly" + ( let (l, o, p) = _1 in ghexp ~loc:_sloc (Pexp_fun(l, o, p, _2)) ) +# 20203 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19456,14 +20210,52 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let _5 : (Parsetree.expression) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _3 : ((string Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Parsetree.type_declaration list) = -# 211 "" - ( [] ) -# 19467 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v : (Parsetree.expression) = let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2978 "parsing/parser.mly" + ( mk_newtypes ~loc:_sloc _3 _5 ) +# 20259 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19476,46 +20268,40 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs_inlined1; - MenhirLib.EngineTypes.startp = _startpos_xs_inlined1_; - MenhirLib.EngineTypes.endp = _endpos_xs_inlined1_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = kind_priv_manifest; - MenhirLib.EngineTypes.startp = _startpos_kind_priv_manifest_; - MenhirLib.EngineTypes.endp = _endpos_kind_priv_manifest_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = params; - MenhirLib.EngineTypes.startp = _startpos_params_; - MenhirLib.EngineTypes.endp = _endpos_params_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; @@ -19523,90 +20309,38 @@ module Tables = struct }; }; } = _menhir_stack in - let xs : (Parsetree.type_declaration list) = Obj.magic xs in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let xs_inlined1 : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs_inlined1 in - let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in - let _1_inlined2 : ( -# 838 "parsing/parser.mly" + let _7 : (Parsetree.expression) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _5 : (Asttypes.layout_annotation) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _1_inlined1 : ( +# 909 "parsing/parser.mly" (string) -# 19534 "parsing/parser.ml" - ) = Obj.magic _1_inlined2 in - let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in +# 20320 "parsing/parser.ml" + ) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.type_declaration list) = let x = - let xs = xs_inlined1 in - let attrs2 = - let _1 = _1_inlined3 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 19549 "parsing/parser.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let cstrs = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 19558 "parsing/parser.ml" - in - -# 1108 "parsing/parser.mly" - ( xs ) -# 19563 "parsing/parser.ml" - - in - -# 3284 "parsing/parser.mly" - ( _1 ) -# 19569 "parsing/parser.ml" - - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 19580 "parsing/parser.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 19588 "parsing/parser.ml" - - in - let _endpos = _endpos_attrs2_ in + let _endpos = _endpos__7_ in + let _v : (Parsetree.expression) = let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3273 "parsing/parser.mly" - ( - let (kind, priv, manifest) = kind_priv_manifest in - let docs = symbol_docs _sloc in - let attrs = attrs1 @ attrs2 in - let loc = make_loc _sloc in - let text = symbol_text _symbolstartpos in - Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text - ) -# 19604 "parsing/parser.ml" +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 20335 "parsing/parser.ml" in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 213 "" - ( x :: xs ) -# 19610 "parsing/parser.ml" +# 2980 "parsing/parser.mly" + ( mk_newtypes ~loc:_sloc [_3, Some _5] _7 ) +# 20344 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19617,14 +20351,35 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : (Parsetree.expression) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Parsetree.type_declaration list) = -# 211 "" - ( [] ) -# 19628 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Parsetree.case) = +# 2988 "parsing/parser.mly" + ( Exp.case _1 _3 ) +# 20383 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19637,167 +20392,47 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined4; - MenhirLib.EngineTypes.startp = _startpos__1_inlined4_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs_inlined1; - MenhirLib.EngineTypes.startp = _startpos_xs_inlined1_; - MenhirLib.EngineTypes.endp = _endpos_xs_inlined1_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = params; - MenhirLib.EngineTypes.startp = _startpos_params_; - MenhirLib.EngineTypes.endp = _endpos_params_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in - let xs : (Parsetree.type_declaration list) = Obj.magic xs in - let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let xs_inlined1 : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs_inlined1 in - let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in - let _1_inlined3 : unit = Obj.magic _1_inlined3 in - let _1_inlined2 : ( -# 838 "parsing/parser.mly" - (string) -# 19702 "parsing/parser.ml" - ) = Obj.magic _1_inlined2 in - let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let _5 : (Parsetree.expression) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.expression) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.type_declaration list) = let x = - let xs = xs_inlined1 in - let attrs2 = - let _1 = _1_inlined4 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 19717 "parsing/parser.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined4_ in - let cstrs = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 19726 "parsing/parser.ml" - in - -# 1108 "parsing/parser.mly" - ( xs ) -# 19731 "parsing/parser.ml" - - in - -# 3284 "parsing/parser.mly" - ( _1 ) -# 19737 "parsing/parser.ml" - - in - let kind_priv_manifest = -# 3319 "parsing/parser.mly" - ( _2 ) -# 19743 "parsing/parser.ml" - in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 19753 "parsing/parser.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 19761 "parsing/parser.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3273 "parsing/parser.mly" - ( - let (kind, priv, manifest) = kind_priv_manifest in - let docs = symbol_docs _sloc in - let attrs = attrs1 @ attrs2 in - let loc = make_loc _sloc in - let text = symbol_text _symbolstartpos in - Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text - ) -# 19777 "parsing/parser.ml" - - in - -# 213 "" - ( x :: xs ) -# 19783 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Parsetree.attributes) = -# 211 "" - ( [] ) -# 19801 "parsing/parser.ml" + let _endpos = _endpos__5_ in + let _v : (Parsetree.case) = +# 2990 "parsing/parser.mly" + ( Exp.case _1 ~guard:_3 _5 ) +# 20436 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19810,26 +20445,34 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let xs : (Parsetree.attributes) = Obj.magic xs in - let x : (Parsetree.attribute) = Obj.magic x in + let _3 : unit = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_x_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.attributes) = -# 213 "" - ( x :: xs ) -# 19833 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Parsetree.case) = let _loc__3_ = (_startpos__3_, _endpos__3_) in + +# 2992 "parsing/parser.mly" + ( Exp.case _1 (Exp.unreachable ~loc:(make_loc _loc__3_) ()) ) +# 20476 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19840,14 +20483,124 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = tail; + MenhirLib.EngineTypes.startp = _startpos_tail_; + MenhirLib.EngineTypes.endp = _endpos_tail_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let tail : (Parsetree.object_field list * Asttypes.closed_flag) = Obj.magic tail in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let _5 : unit = Obj.magic _5 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _1 : ( +# 909 "parsing/parser.mly" + (string) +# 20539 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Parsetree.signature_item list list) = -# 211 "" - ( [] ) -# 19851 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos_tail_ in + let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = + let _6 = + let _1 = _1_inlined3 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 20550 "parsing/parser.ml" + + in + let _endpos__6_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 20559 "parsing/parser.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _3 = + let _1 = _1_inlined1 in + +# 3722 "parsing/parser.mly" + ( _1 ) +# 20568 "parsing/parser.ml" + + in + let _1 = + let _1 = +# 4007 "parsing/parser.mly" + ( _1 ) +# 20575 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 20583 "parsing/parser.ml" + + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3992 "parsing/parser.mly" + ( let info = + match rhs_info _endpos__4_ with + | Some _ as info_before_semi -> info_before_semi + | None -> symbol_info _endpos + in + let attrs = add_info_attrs info (_4 @ _6) in + Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) +# 20598 "parsing/parser.ml" + + in + +# 3973 "parsing/parser.mly" + ( let (f, c) = tail in (head :: f, c) ) +# 20604 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19860,41 +20613,43 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = tail; + MenhirLib.EngineTypes.startp = _startpos_tail_; + MenhirLib.EngineTypes.endp = _endpos_tail_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let xs : (Parsetree.signature_item list list) = Obj.magic xs in - let _1 : unit = Obj.magic _1 in + let tail : (Parsetree.object_field list * Asttypes.closed_flag) = Obj.magic tail in + let _2 : unit = Obj.magic _2 in + let ty : (Parsetree.core_type) = Obj.magic ty in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.signature_item list list) = let x = - let _1 = - let _startpos = _startpos__1_ in - -# 1034 "parsing/parser.mly" - ( text_sig _startpos ) -# 19886 "parsing/parser.ml" - - in + let _startpos = _startpos_ty_ in + let _endpos = _endpos_tail_ in + let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = + let _endpos = _endpos_ty_ in + let _symbolstartpos = _startpos_ty_ in + let _sloc = (_symbolstartpos, _endpos) in -# 1793 "parsing/parser.mly" - ( _1 ) -# 19892 "parsing/parser.ml" +# 4003 "parsing/parser.mly" + ( Of.inherit_ ~loc:(make_loc _sloc) ty ) +# 20647 "parsing/parser.ml" in -# 213 "" - ( x :: xs ) -# 19898 "parsing/parser.ml" +# 3973 "parsing/parser.mly" + ( let (f, c) = tail in (head :: f, c) ) +# 20653 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19907,59 +20662,115 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; } = _menhir_stack in - let xs : (Parsetree.signature_item list list) = Obj.magic xs in - let _1 : (Parsetree.signature_item) = Obj.magic _1 in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let _5 : unit = Obj.magic _5 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _1 : ( +# 909 "parsing/parser.mly" + (string) +# 20709 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.signature_item list list) = let x = + let _endpos = _endpos__1_inlined3_ in + let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = + let _6 = + let _1 = _1_inlined3 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 20720 "parsing/parser.ml" + + in + let _endpos__6_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 20729 "parsing/parser.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _3 = + let _1 = _1_inlined1 in + +# 3722 "parsing/parser.mly" + ( _1 ) +# 20738 "parsing/parser.ml" + + in let _1 = - let _startpos = _startpos__1_ in + let _1 = +# 4007 "parsing/parser.mly" + ( _1 ) +# 20745 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 1032 "parsing/parser.mly" - ( text_sig _startpos @ [_1] ) -# 19933 "parsing/parser.ml" +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 20753 "parsing/parser.ml" in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 1793 "parsing/parser.mly" - ( _1 ) -# 19939 "parsing/parser.ml" +# 3992 "parsing/parser.mly" + ( let info = + match rhs_info _endpos__4_ with + | Some _ as info_before_semi -> info_before_semi + | None -> symbol_info _endpos + in + let attrs = add_info_attrs info (_4 @ _6) in + Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) +# 20768 "parsing/parser.ml" in -# 213 "" - ( x :: xs ) -# 19945 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Parsetree.structure_item list list) = -# 211 "" - ( [] ) -# 19963 "parsing/parser.ml" +# 3976 "parsing/parser.mly" + ( [head], Closed ) +# 20774 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19972,60 +20783,36 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let xs : (Parsetree.structure_item list list) = Obj.magic xs in - let _1 : unit = Obj.magic _1 in + let _2 : unit = Obj.magic _2 in + let ty : (Parsetree.core_type) = Obj.magic ty in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.structure_item list list) = let x = - let _1 = - let ys = - let items = -# 1094 "parsing/parser.mly" - ( [] ) -# 19998 "parsing/parser.ml" - in - -# 1523 "parsing/parser.mly" - ( items ) -# 20003 "parsing/parser.ml" - - in - let xs = - let _startpos = _startpos__1_ in - -# 1030 "parsing/parser.mly" - ( text_str _startpos ) -# 20011 "parsing/parser.ml" - - in - -# 267 "" - ( xs @ ys ) -# 20017 "parsing/parser.ml" - - in + let _startpos = _startpos_ty_ in + let _endpos = _endpos__2_ in + let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = + let _endpos = _endpos_ty_ in + let _symbolstartpos = _startpos_ty_ in + let _sloc = (_symbolstartpos, _endpos) in -# 1539 "parsing/parser.mly" - ( _1 ) -# 20023 "parsing/parser.ml" +# 4003 "parsing/parser.mly" + ( Of.inherit_ ~loc:(make_loc _sloc) ty ) +# 20810 "parsing/parser.ml" in -# 213 "" - ( x :: xs ) -# 20029 "parsing/parser.ml" +# 3976 "parsing/parser.mly" + ( [head], Closed ) +# 20816 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20038,9 +20825,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined1; @@ -20048,9 +20835,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -20061,86 +20848,65 @@ module Tables = struct }; }; } = _menhir_stack in - let xs : (Parsetree.structure_item list list) = Obj.magic xs in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let e : (Parsetree.expression) = Obj.magic e in - let _1 : unit = Obj.magic _1 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _1 : ( +# 909 "parsing/parser.mly" + (string) +# 20858 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.structure_item list list) = let x = - let _1 = - let ys = - let (_endpos__1_, _1) = (_endpos__1_inlined1_, _1_inlined1) in - let items = - let x = - let _1 = - let _1 = - let attrs = -# 4224 "parsing/parser.mly" + let _endpos = _endpos__1_inlined2_ in + let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = + let _4 = + let _1 = _1_inlined2 in + +# 4369 "parsing/parser.mly" ( _1 ) -# 20083 "parsing/parser.ml" - in - -# 1530 "parsing/parser.mly" - ( mkstrexp e attrs ) -# 20088 "parsing/parser.ml" - - in - let _startpos__1_ = _startpos_e_ in - let _startpos = _startpos__1_ in - -# 1028 "parsing/parser.mly" - ( text_str _startpos @ [_1] ) -# 20096 "parsing/parser.ml" - - in - let _startpos__1_ = _startpos_e_ in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - -# 1047 "parsing/parser.mly" - ( mark_rhs_docs _startpos _endpos; - _1 ) -# 20106 "parsing/parser.ml" - - in - -# 1096 "parsing/parser.mly" - ( x ) -# 20112 "parsing/parser.ml" - - in - -# 1523 "parsing/parser.mly" - ( items ) -# 20118 "parsing/parser.ml" - - in - let xs = - let _startpos = _startpos__1_ in - -# 1030 "parsing/parser.mly" - ( text_str _startpos ) -# 20126 "parsing/parser.ml" - - in +# 20869 "parsing/parser.ml" -# 267 "" - ( xs @ ys ) -# 20132 "parsing/parser.ml" + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _3 = + let _1 = _1_inlined1 in + +# 3722 "parsing/parser.mly" + ( _1 ) +# 20878 "parsing/parser.ml" + + in + let _1 = + let _1 = +# 4007 "parsing/parser.mly" + ( _1 ) +# 20885 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 20893 "parsing/parser.ml" in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 1539 "parsing/parser.mly" - ( _1 ) -# 20138 "parsing/parser.ml" +# 3985 "parsing/parser.mly" + ( let info = symbol_info _endpos in + let attrs = add_info_attrs info _4 in + Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) +# 20904 "parsing/parser.ml" in -# 213 "" - ( x :: xs ) -# 20144 "parsing/parser.ml" +# 3979 "parsing/parser.mly" + ( [head], Closed ) +# 20910 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20152,42 +20918,30 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let xs : (Parsetree.structure_item list list) = Obj.magic xs in - let _1 : (Parsetree.structure_item) = Obj.magic _1 in + let ty : (Parsetree.core_type) = Obj.magic ty in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.structure_item list list) = let x = - let _1 = - let _startpos = _startpos__1_ in - -# 1028 "parsing/parser.mly" - ( text_str _startpos @ [_1] ) -# 20179 "parsing/parser.ml" - - in + let _startpos = _startpos_ty_ in + let _endpos = _endpos_ty_ in + let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = + let _endpos = _endpos_ty_ in + let _symbolstartpos = _startpos_ty_ in + let _sloc = (_symbolstartpos, _endpos) in -# 1539 "parsing/parser.mly" - ( _1 ) -# 20185 "parsing/parser.ml" +# 4003 "parsing/parser.mly" + ( Of.inherit_ ~loc:(make_loc _sloc) ty ) +# 20939 "parsing/parser.ml" in -# 213 "" - ( x :: xs ) -# 20191 "parsing/parser.ml" +# 3979 "parsing/parser.mly" + ( [head], Closed ) +# 20945 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20198,14 +20952,21 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Parsetree.class_type_field list list) = -# 211 "" - ( [] ) -# 20209 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.object_field list * Asttypes.closed_flag) = +# 3981 "parsing/parser.mly" + ( [], Open ) +# 20970 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20218,52 +20979,87 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = private_; + MenhirLib.EngineTypes.startp = _startpos_private__; + MenhirLib.EngineTypes.endp = _endpos_private__; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let xs : (Parsetree.class_type_field list list) = Obj.magic xs in - let _1 : (Parsetree.class_type_field) = Obj.magic _1 in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _5 : unit = Obj.magic _5 in + let _1_inlined1 : ( +# 909 "parsing/parser.mly" + (string) +# 21017 "parsing/parser.ml" + ) = Obj.magic _1_inlined1 in + let private_ : (Asttypes.private_flag) = Obj.magic private_ in + let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.class_type_field list list) = let x = - let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined2_ in + let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * + Parsetree.class_field_kind) * + Parsetree.attributes) = let ty = + let _1 = _1_inlined2 in -# 1042 "parsing/parser.mly" - ( text_csig _startpos @ [_1] ) -# 20243 "parsing/parser.ml" +# 3718 "parsing/parser.mly" + ( _1 ) +# 21031 "parsing/parser.ml" in - -# 213 "" - ( x :: xs ) -# 20249 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Parsetree.class_field list list) = -# 211 "" - ( [] ) -# 20267 "parsing/parser.ml" + let label = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = +# 4007 "parsing/parser.mly" + ( _1 ) +# 21039 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 21047 "parsing/parser.ml" + + in + let attrs = +# 4369 "parsing/parser.mly" + ( _1 ) +# 21053 "parsing/parser.ml" + in + let _1 = +# 4266 "parsing/parser.mly" + ( Fresh ) +# 21058 "parsing/parser.ml" + in + +# 2205 "parsing/parser.mly" + ( (label, private_, Cfk_virtual ty), attrs ) +# 21063 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20276,52 +21072,75 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let xs : (Parsetree.class_field list list) = Obj.magic xs in - let _1 : (Parsetree.class_field) = Obj.magic _1 in + let _5 : (Parsetree.expression) = Obj.magic _5 in + let _1_inlined1 : ( +# 909 "parsing/parser.mly" + (string) +# 21103 "parsing/parser.ml" + ) = Obj.magic _1_inlined1 in + let _3 : (Asttypes.private_flag) = Obj.magic _3 in + let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.class_field list list) = let x = - let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * + Parsetree.class_field_kind) * + Parsetree.attributes) = let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = +# 4007 "parsing/parser.mly" + ( _1 ) +# 21117 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 1040 "parsing/parser.mly" - ( text_cstr _startpos @ [_1] ) -# 20301 "parsing/parser.ml" +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 21125 "parsing/parser.ml" in - -# 213 "" - ( x :: xs ) -# 20307 "parsing/parser.ml" + let _2 = +# 4369 "parsing/parser.mly" + ( _1 ) +# 21131 "parsing/parser.ml" in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Parsetree.structure_item list list) = -# 211 "" - ( [] ) -# 20325 "parsing/parser.ml" + let _1 = +# 4269 "parsing/parser.mly" + ( Fresh ) +# 21136 "parsing/parser.ml" + in + +# 2207 "parsing/parser.mly" + ( let e = _5 in + let loc = Location.(e.pexp_loc.loc_start, e.pexp_loc.loc_end) in + (_4, _3, + Cfk_concrete (_1, ghexp ~loc (Pexp_poly (e, None)))), _2 ) +# 21144 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20334,34 +21153,85 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let xs : (Parsetree.structure_item list list) = Obj.magic xs in - let _1 : (Parsetree.structure_item) = Obj.magic _1 in + let _5 : (Parsetree.expression) = Obj.magic _5 in + let _1_inlined2 : ( +# 909 "parsing/parser.mly" + (string) +# 21190 "parsing/parser.ml" + ) = Obj.magic _1_inlined2 in + let _3 : (Asttypes.private_flag) = Obj.magic _3 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.structure_item list list) = let x = - let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * + Parsetree.class_field_kind) * + Parsetree.attributes) = let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = +# 4007 "parsing/parser.mly" + ( _1 ) +# 21205 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 1028 "parsing/parser.mly" - ( text_str _startpos @ [_1] ) -# 20359 "parsing/parser.ml" +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 21213 "parsing/parser.ml" + + in + let _2 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 21221 "parsing/parser.ml" in + let _1 = +# 4270 "parsing/parser.mly" + ( Override ) +# 21227 "parsing/parser.ml" + in -# 213 "" - ( x :: xs ) -# 20365 "parsing/parser.ml" +# 2207 "parsing/parser.mly" + ( let e = _5 in + let loc = Location.(e.pexp_loc.loc_start, e.pexp_loc.loc_end) in + (_4, _3, + Cfk_concrete (_1, ghexp ~loc (Pexp_poly (e, None)))), _2 ) +# 21235 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20372,14 +21242,107 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _8; + MenhirLib.EngineTypes.startp = _startpos__8_; + MenhirLib.EngineTypes.endp = _endpos__8_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _8 : (Parsetree.expression) = Obj.magic _8 in + let _7 : unit = Obj.magic _7 in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _5 : unit = Obj.magic _5 in + let _1_inlined1 : ( +# 909 "parsing/parser.mly" + (string) +# 21296 "parsing/parser.ml" + ) = Obj.magic _1_inlined1 in + let _3 : (Asttypes.private_flag) = Obj.magic _3 in + let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Parsetree.toplevel_phrase list list) = -# 211 "" - ( [] ) -# 20383 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__8_ in + let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * + Parsetree.class_field_kind) * + Parsetree.attributes) = let _6 = + let _1 = _1_inlined2 in + +# 3718 "parsing/parser.mly" + ( _1 ) +# 21310 "parsing/parser.ml" + + in + let _startpos__6_ = _startpos__1_inlined2_ in + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = +# 4007 "parsing/parser.mly" + ( _1 ) +# 21319 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 21327 "parsing/parser.ml" + + in + let _2 = +# 4369 "parsing/parser.mly" + ( _1 ) +# 21333 "parsing/parser.ml" + in + let _1 = +# 4269 "parsing/parser.mly" + ( Fresh ) +# 21338 "parsing/parser.ml" + in + +# 2213 "parsing/parser.mly" + ( let poly_exp = + let loc = (_startpos__6_, _endpos__8_) in + ghexp ~loc (Pexp_poly(_8, Some _6)) in + (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) +# 21346 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20392,52 +21355,115 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _8; + MenhirLib.EngineTypes.startp = _startpos__8_; + MenhirLib.EngineTypes.endp = _endpos__8_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; }; } = _menhir_stack in - let xs : (Parsetree.toplevel_phrase list list) = Obj.magic xs in + let _8 : (Parsetree.expression) = Obj.magic _8 in + let _7 : unit = Obj.magic _7 in + let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in + let _5 : unit = Obj.magic _5 in + let _1_inlined2 : ( +# 909 "parsing/parser.mly" + (string) +# 21413 "parsing/parser.ml" + ) = Obj.magic _1_inlined2 in + let _3 : (Asttypes.private_flag) = Obj.magic _3 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.toplevel_phrase list list) = let x = - let _1 = - let x = - let _1 = -# 1094 "parsing/parser.mly" - ( [] ) -# 20418 "parsing/parser.ml" - in - -# 1326 "parsing/parser.mly" + let _endpos = _endpos__8_ in + let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * + Parsetree.class_field_kind) * + Parsetree.attributes) = let _6 = + let _1 = _1_inlined3 in + +# 3718 "parsing/parser.mly" ( _1 ) -# 20423 "parsing/parser.ml" - - in - -# 183 "" - ( x ) -# 20429 "parsing/parser.ml" - - in +# 21428 "parsing/parser.ml" -# 1338 "parsing/parser.mly" - ( _1 ) -# 20435 "parsing/parser.ml" + in + let _startpos__6_ = _startpos__1_inlined3_ in + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = +# 4007 "parsing/parser.mly" + ( _1 ) +# 21437 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 21445 "parsing/parser.ml" + + in + let _2 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 21453 "parsing/parser.ml" in + let _1 = +# 4270 "parsing/parser.mly" + ( Override ) +# 21459 "parsing/parser.ml" + in -# 213 "" - ( x :: xs ) -# 20441 "parsing/parser.ml" +# 2213 "parsing/parser.mly" + ( let poly_exp = + let loc = (_startpos__6_, _endpos__8_) in + ghexp ~loc (Pexp_poly(_8, Some _6)) in + (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) +# 21467 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20450,97 +21476,138 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _11; + MenhirLib.EngineTypes.startp = _startpos__11_; + MenhirLib.EngineTypes.endp = _endpos__11_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _10; + MenhirLib.EngineTypes.startp = _startpos__10_; + MenhirLib.EngineTypes.endp = _endpos__10_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.semv = _9; + MenhirLib.EngineTypes.startp = _startpos__9_; + MenhirLib.EngineTypes.endp = _endpos__9_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _8; + MenhirLib.EngineTypes.startp = _startpos__8_; + MenhirLib.EngineTypes.endp = _endpos__8_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; }; }; }; } = _menhir_stack in - let xs : (Parsetree.toplevel_phrase list list) = Obj.magic xs in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let e : (Parsetree.expression) = Obj.magic e in - let _1 : unit = Obj.magic _1 in + let _11 : (Parsetree.expression) = Obj.magic _11 in + let _10 : unit = Obj.magic _10 in + let _9 : (Parsetree.core_type) = Obj.magic _9 in + let _8 : unit = Obj.magic _8 in + let _7 : ((string Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _5 : unit = Obj.magic _5 in + let _1_inlined1 : ( +# 909 "parsing/parser.mly" + (string) +# 21549 "parsing/parser.ml" + ) = Obj.magic _1_inlined1 in + let _3 : (Asttypes.private_flag) = Obj.magic _3 in + let _1 : (Parsetree.attributes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.toplevel_phrase list list) = let x = - let _1 = - let x = - let _1 = _1_inlined1 in - let _1 = - let x = - let _1 = - let _1 = - let attrs = -# 4224 "parsing/parser.mly" - ( _1 ) -# 20495 "parsing/parser.ml" - in - -# 1530 "parsing/parser.mly" - ( mkstrexp e attrs ) -# 20500 "parsing/parser.ml" - - in - -# 1038 "parsing/parser.mly" - ( Ptop_def [_1] ) -# 20506 "parsing/parser.ml" - - in - let _startpos__1_ = _startpos_e_ in - let _startpos = _startpos__1_ in - -# 1036 "parsing/parser.mly" - ( text_def _startpos @ [_1] ) -# 20514 "parsing/parser.ml" - - in - -# 1096 "parsing/parser.mly" - ( x ) -# 20520 "parsing/parser.ml" - - in - -# 1326 "parsing/parser.mly" - ( _1 ) -# 20526 "parsing/parser.ml" - - in - -# 183 "" - ( x ) -# 20532 "parsing/parser.ml" - - in + let _endpos = _endpos__11_ in + let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * + Parsetree.class_field_kind) * + Parsetree.attributes) = let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _1 = +# 4007 "parsing/parser.mly" + ( _1 ) +# 21563 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 1338 "parsing/parser.mly" - ( _1 ) -# 20538 "parsing/parser.ml" +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 21571 "parsing/parser.ml" in + let _startpos__4_ = _startpos__1_inlined1_ in + let _2 = +# 4369 "parsing/parser.mly" + ( _1 ) +# 21578 "parsing/parser.ml" + in + let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in + let _1 = +# 4269 "parsing/parser.mly" + ( Fresh ) +# 21584 "parsing/parser.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in + let _endpos = _endpos__11_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + if _startpos__2_ != _endpos__2_ then + _startpos__2_ + else + if _startpos__3_ != _endpos__3_ then + _startpos__3_ + else + _startpos__4_ in + let _sloc = (_symbolstartpos, _endpos) in -# 213 "" - ( x :: xs ) -# 20544 "parsing/parser.ml" +# 2219 "parsing/parser.mly" + ( let poly_exp_loc = (_startpos__7_, _endpos__11_) in + let poly_exp = + let exp, poly = + (* it seems odd to use the global ~loc here while poly_exp_loc + is tighter, but this is what ocamlyacc does; + TODO improve parser.mly *) + wrap_type_annotation ~loc:_sloc _7 _9 _11 in + ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in + (_4, _3, + Cfk_concrete (_1, poly_exp)), _2 ) +# 21611 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20553,46 +21620,147 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _11; + MenhirLib.EngineTypes.startp = _startpos__11_; + MenhirLib.EngineTypes.endp = _endpos__11_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _10; + MenhirLib.EngineTypes.startp = _startpos__10_; + MenhirLib.EngineTypes.endp = _endpos__10_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _9; + MenhirLib.EngineTypes.startp = _startpos__9_; + MenhirLib.EngineTypes.endp = _endpos__9_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _8; + MenhirLib.EngineTypes.startp = _startpos__8_; + MenhirLib.EngineTypes.endp = _endpos__8_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + }; + }; + }; }; } = _menhir_stack in - let xs : (Parsetree.toplevel_phrase list list) = Obj.magic xs in - let _1 : (Parsetree.structure_item) = Obj.magic _1 in + let _11 : (Parsetree.expression) = Obj.magic _11 in + let _10 : unit = Obj.magic _10 in + let _9 : (Parsetree.core_type) = Obj.magic _9 in + let _8 : unit = Obj.magic _8 in + let _7 : ((string Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _5 : unit = Obj.magic _5 in + let _1_inlined2 : ( +# 909 "parsing/parser.mly" + (string) +# 21699 "parsing/parser.ml" + ) = Obj.magic _1_inlined2 in + let _3 : (Asttypes.private_flag) = Obj.magic _3 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.toplevel_phrase list list) = let x = - let _1 = - let _1 = -# 1038 "parsing/parser.mly" - ( Ptop_def [_1] ) -# 20578 "parsing/parser.ml" - in - let _startpos = _startpos__1_ in - -# 1036 "parsing/parser.mly" - ( text_def _startpos @ [_1] ) -# 20584 "parsing/parser.ml" - - in + let _endpos = _endpos__11_ in + let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * + Parsetree.class_field_kind) * + Parsetree.attributes) = let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = +# 4007 "parsing/parser.mly" + ( _1 ) +# 21714 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 1338 "parsing/parser.mly" - ( _1 ) -# 20590 "parsing/parser.ml" +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 21722 "parsing/parser.ml" + + in + let _startpos__4_ = _startpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 21731 "parsing/parser.ml" in + let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in + let _1 = +# 4270 "parsing/parser.mly" + ( Override ) +# 21738 "parsing/parser.ml" + in + let _endpos = _endpos__11_ in + let _symbolstartpos = if _startpos__1_ != _endpos__1_ then + _startpos__1_ + else + if _startpos__2_ != _endpos__2_ then + _startpos__2_ + else + if _startpos__3_ != _endpos__3_ then + _startpos__3_ + else + _startpos__4_ in + let _sloc = (_symbolstartpos, _endpos) in -# 213 "" - ( x :: xs ) -# 20596 "parsing/parser.ml" +# 2219 "parsing/parser.mly" + ( let poly_exp_loc = (_startpos__7_, _endpos__11_) in + let poly_exp = + let exp, poly = + (* it seems odd to use the global ~loc here while poly_exp_loc + is tighter, but this is what ocamlyacc does; + TODO improve parser.mly *) + wrap_type_annotation ~loc:_sloc _7 _9 _11 in + ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in + (_4, _3, + Cfk_concrete (_1, poly_exp)), _2 ) +# 21764 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20604,52 +21772,24 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let xs : (Parsetree.toplevel_phrase list list) = Obj.magic xs in - let _1 : (Parsetree.toplevel_phrase) = Obj.magic _1 in + let _1 : ( +# 909 "parsing/parser.mly" + (string) +# 21785 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.toplevel_phrase list list) = let x = - let _1 = - let _1 = - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - -# 1047 "parsing/parser.mly" - ( mark_rhs_docs _startpos _endpos; - _1 ) -# 20634 "parsing/parser.ml" - - in - let _startpos = _startpos__1_ in - -# 1036 "parsing/parser.mly" - ( text_def _startpos @ [_1] ) -# 20641 "parsing/parser.ml" - - in - -# 1338 "parsing/parser.mly" - ( _1 ) -# 20647 "parsing/parser.ml" - - in - -# 213 "" - ( x :: xs ) -# 20653 "parsing/parser.ml" + let _endpos = _endpos__1_ in + let _v : (Longident.t) = +# 4104 "parsing/parser.mly" + ( Lident _1 ) +# 21793 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20662,14 +21802,14 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = opat; - MenhirLib.EngineTypes.startp = _startpos_opat_; - MenhirLib.EngineTypes.endp = _endpos_opat_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = octy; - MenhirLib.EngineTypes.startp = _startpos_octy_; - MenhirLib.EngineTypes.endp = _endpos_octy_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -20679,54 +21819,20 @@ module Tables = struct }; }; } = _menhir_stack in - let opat : (Parsetree.pattern option) = Obj.magic opat in - let octy : (Parsetree.core_type option) = Obj.magic octy in + let _3 : ( +# 909 "parsing/parser.mly" + (string) +# 21826 "parsing/parser.ml" + ) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_opat_ in - let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let _2 = -# 124 "" - ( None ) -# 20692 "parsing/parser.ml" - in - let x = - let label = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 20702 "parsing/parser.ml" - - in - let _startpos_label_ = _startpos__1_ in - let _endpos = _endpos_opat_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3159 "parsing/parser.mly" - ( let constraint_loc, label, pat = - match opat with - | None -> - (* No pattern; this is a pun. Desugar it. - But that the pattern was there and the label reconstructed (which - piece of AST is marked as ghost is important for warning - emission). *) - _sloc, make_ghost label, pat_of_label label - | Some pat -> - (_startpos_octy_, _endpos), label, pat - in - label, mkpat_opt_constraint ~loc:constraint_loc pat octy - ) -# 20724 "parsing/parser.ml" - - in - -# 1263 "parsing/parser.mly" - ( [x], None ) -# 20730 "parsing/parser.ml" + let _endpos = _endpos__3_ in + let _v : (Longident.t) = +# 4105 "parsing/parser.mly" + ( Ldot(_1,_3) ) +# 21836 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20738,172 +21844,24 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = opat; - MenhirLib.EngineTypes.startp = _startpos_opat_; - MenhirLib.EngineTypes.endp = _endpos_opat_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = octy; - MenhirLib.EngineTypes.startp = _startpos_octy_; - MenhirLib.EngineTypes.endp = _endpos_octy_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - } = _menhir_stack in - let x : unit = Obj.magic x in - let opat : (Parsetree.pattern option) = Obj.magic opat in - let octy : (Parsetree.core_type option) = Obj.magic octy in - let _1 : (Longident.t) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos_x_ in - let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let _2 = -# 126 "" - ( Some x ) -# 20776 "parsing/parser.ml" - in - let x = - let label = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 20786 "parsing/parser.ml" - - in - let _startpos_label_ = _startpos__1_ in - let _endpos = _endpos_opat_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3159 "parsing/parser.mly" - ( let constraint_loc, label, pat = - match opat with - | None -> - (* No pattern; this is a pun. Desugar it. - But that the pattern was there and the label reconstructed (which - piece of AST is marked as ghost is important for warning - emission). *) - _sloc, make_ghost label, pat_of_label label - | Some pat -> - (_startpos_octy_, _endpos), label, pat - in - label, mkpat_opt_constraint ~loc:constraint_loc pat octy - ) -# 20808 "parsing/parser.ml" - - in - -# 1263 "parsing/parser.mly" - ( [x], None ) -# 20814 "parsing/parser.ml" - in - { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = y; - MenhirLib.EngineTypes.startp = _startpos_y_; - MenhirLib.EngineTypes.endp = _endpos_y_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = opat; - MenhirLib.EngineTypes.startp = _startpos_opat_; - MenhirLib.EngineTypes.endp = _endpos_opat_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = octy; - MenhirLib.EngineTypes.startp = _startpos_octy_; - MenhirLib.EngineTypes.endp = _endpos_octy_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; } = _menhir_stack in - let _4 : (unit option) = Obj.magic _4 in - let y : unit = Obj.magic y in - let _2 : unit = Obj.magic _2 in - let opat : (Parsetree.pattern option) = Obj.magic opat in - let octy : (Parsetree.core_type option) = Obj.magic octy in - let _1 : (Longident.t) = Obj.magic _1 in + let _1 : ( +# 962 "parsing/parser.mly" + (string) +# 21857 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let x = - let label = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 20879 "parsing/parser.ml" - - in - let _startpos_label_ = _startpos__1_ in - let _endpos = _endpos_opat_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3159 "parsing/parser.mly" - ( let constraint_loc, label, pat = - match opat with - | None -> - (* No pattern; this is a pun. Desugar it. - But that the pattern was there and the label reconstructed (which - piece of AST is marked as ghost is important for warning - emission). *) - _sloc, make_ghost label, pat_of_label label - | Some pat -> - (_startpos_octy_, _endpos), label, pat - in - label, mkpat_opt_constraint ~loc:constraint_loc pat octy - ) -# 20901 "parsing/parser.ml" - - in - -# 1265 "parsing/parser.mly" - ( [x], Some y ) -# 20907 "parsing/parser.ml" + let _endpos = _endpos__1_ in + let _v : (Longident.t) = +# 4104 "parsing/parser.mly" + ( Lident _1 ) +# 21865 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20916,81 +21874,37 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = tail; - MenhirLib.EngineTypes.startp = _startpos_tail_; - MenhirLib.EngineTypes.endp = _endpos_tail_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = opat; - MenhirLib.EngineTypes.startp = _startpos_opat_; - MenhirLib.EngineTypes.endp = _endpos_opat_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = octy; - MenhirLib.EngineTypes.startp = _startpos_octy_; - MenhirLib.EngineTypes.endp = _endpos_octy_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - } = _menhir_stack in - let tail : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = Obj.magic tail in - let _2 : unit = Obj.magic _2 in - let opat : (Parsetree.pattern option) = Obj.magic opat in - let octy : (Parsetree.core_type option) = Obj.magic octy in - let _1 : (Longident.t) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos_tail_ in - let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let x = - let label = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 20965 "parsing/parser.ml" - - in - let _startpos_label_ = _startpos__1_ in - let _endpos = _endpos_opat_ in - let _symbolstartpos = _startpos_label_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3159 "parsing/parser.mly" - ( let constraint_loc, label, pat = - match opat with - | None -> - (* No pattern; this is a pun. Desugar it. - But that the pattern was there and the label reconstructed (which - piece of AST is marked as ghost is important for warning - emission). *) - _sloc, make_ghost label, pat_of_label label - | Some pat -> - (_startpos_octy_, _endpos), label, pat - in - label, mkpat_opt_constraint ~loc:constraint_loc pat octy - ) -# 20987 "parsing/parser.ml" - - in - -# 1269 "parsing/parser.mly" - ( let xs, y = tail in - x :: xs, y ) -# 20994 "parsing/parser.ml" + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : ( +# 962 "parsing/parser.mly" + (string) +# 21898 "parsing/parser.ml" + ) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (Longident.t) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Longident.t) = +# 4105 "parsing/parser.mly" + ( Ldot(_1,_3) ) +# 21908 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21008,14 +21922,19 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Parsetree.expression) = Obj.magic _1 in + let _1 : (Asttypes.label) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.expression) = -# 2892 "parsing/parser.mly" - ( _1 ) -# 21019 "parsing/parser.ml" + let _v : (Longident.t) = let _1 = +# 4149 "parsing/parser.mly" + ( _1 ) +# 21933 "parsing/parser.ml" + in + +# 4104 "parsing/parser.mly" + ( Lident _1 ) +# 21938 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21045,19 +21964,28 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : (Parsetree.expression) = Obj.magic _3 in + let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.core_type option * Parsetree.core_type option) = Obj.magic _1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.expression) = let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _v : (Longident.t) = let _1 = + let _1 = +# 4084 "parsing/parser.mly" + ( "::" ) +# 21978 "parsing/parser.ml" + in + +# 4149 "parsing/parser.mly" + ( _1 ) +# 21983 "parsing/parser.ml" + + in -# 2894 "parsing/parser.mly" - ( wrap_exp_stack (mkexp_constraint ~loc:_sloc _3 _1) (make_loc _sloc) ) -# 21061 "parsing/parser.ml" +# 4104 "parsing/parser.mly" + ( Lident _1 ) +# 21989 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21069,27 +21997,25 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : (Parsetree.expression) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _1 : (Asttypes.label) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.expression) = -# 2898 "parsing/parser.mly" - ( _2 ) -# 21093 "parsing/parser.ml" + let _endpos = _endpos__1_ in + let _v : (Longident.t) = let _1 = +# 4149 "parsing/parser.mly" + ( _1 ) +# 22014 "parsing/parser.ml" + in + +# 4104 "parsing/parser.mly" + ( Lident _1 ) +# 22019 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21102,29 +22028,41 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : (Parsetree.expression) = Obj.magic _2 in - let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _1 in + let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.expression) = let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos__1_inlined1_ in + let _v : (Longident.t) = let _3 = + let _1 = _1_inlined1 in + +# 4149 "parsing/parser.mly" + ( _1 ) +# 22060 "parsing/parser.ml" + + in -# 2900 "parsing/parser.mly" - ( let (l, o, p) = _1 in ghexp ~loc:_sloc (Pexp_fun(l, o, p, _2)) ) -# 21128 "parsing/parser.ml" +# 4105 "parsing/parser.mly" + ( Ldot(_1,_3) ) +# 22066 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21137,19 +22075,19 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -21166,26 +22104,30 @@ module Tables = struct }; }; } = _menhir_stack in - let _5 : (Parsetree.expression) = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let xs : (string Asttypes.loc list) = Obj.magic xs in + let _3 : unit = Obj.magic _3 in + let _2_inlined1 : unit = Obj.magic _2_inlined1 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _3 = -# 2760 "parsing/parser.mly" - ( xs ) -# 21181 "parsing/parser.ml" - in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos__3_ in + let _v : (Longident.t) = let _3 = + let _1 = +# 4084 "parsing/parser.mly" + ( "::" ) +# 22120 "parsing/parser.ml" + in + +# 4149 "parsing/parser.mly" + ( _1 ) +# 22125 "parsing/parser.ml" + + in -# 2902 "parsing/parser.mly" - ( mk_newtypes ~loc:_sloc _3 _5 ) -# 21189 "parsing/parser.ml" +# 4105 "parsing/parser.mly" + ( Ldot(_1,_3) ) +# 22131 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21198,9 +22140,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -21215,16 +22157,24 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : (Parsetree.expression) = Obj.magic _3 in + let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.pattern) = Obj.magic _1 in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.case) = -# 2910 "parsing/parser.mly" - ( Exp.case _1 _3 ) -# 21228 "parsing/parser.ml" + let _endpos = _endpos__1_inlined1_ in + let _v : (Longident.t) = let _3 = + let _1 = _1_inlined1 in + +# 4149 "parsing/parser.mly" + ( _1 ) +# 22172 "parsing/parser.ml" + + in + +# 4105 "parsing/parser.mly" + ( Ldot(_1,_3) ) +# 22178 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21236,48 +22186,20 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _5 : (Parsetree.expression) = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.expression) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.pattern) = Obj.magic _1 in + let _1 : (Asttypes.label) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Parsetree.case) = -# 2912 "parsing/parser.mly" - ( Exp.case _1 ~guard:_3 _5 ) -# 21281 "parsing/parser.ml" + let _endpos = _endpos__1_ in + let _v : (Longident.t) = +# 4104 "parsing/parser.mly" + ( Lident _1 ) +# 22203 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21307,17 +22229,45 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in + let _3 : (Asttypes.label) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.pattern) = Obj.magic _1 in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.case) = let _loc__3_ = (_startpos__3_, _endpos__3_) in - -# 2914 "parsing/parser.mly" - ( Exp.case _1 (Exp.unreachable ~loc:(make_loc _loc__3_) ()) ) -# 21321 "parsing/parser.ml" + let _v : (Longident.t) = +# 4105 "parsing/parser.mly" + ( Ldot(_1,_3) ) +# 22242 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 909 "parsing/parser.mly" + (string) +# 22263 "parsing/parser.ml" + ) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Longident.t) = +# 4104 "parsing/parser.mly" + ( Lident _1 ) +# 22271 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21330,122 +22280,66 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = tail; - MenhirLib.EngineTypes.startp = _startpos_tail_; - MenhirLib.EngineTypes.endp = _endpos_tail_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let tail : (Parsetree.object_field list * Asttypes.closed_flag) = Obj.magic tail in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _5 : unit = Obj.magic _5 in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in + let _3 : ( +# 909 "parsing/parser.mly" + (string) +# 22304 "parsing/parser.ml" + ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in + let _1 : (Longident.t) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Longident.t) = +# 4105 "parsing/parser.mly" + ( Ldot(_1,_3) ) +# 22314 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in let _1 : ( -# 838 "parsing/parser.mly" +# 962 "parsing/parser.mly" (string) -# 21384 "parsing/parser.ml" +# 22335 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_tail_ in - let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = - let _6 = - let _1 = _1_inlined3 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 21395 "parsing/parser.ml" - - in - let _endpos__6_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 21404 "parsing/parser.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _3 = - let _1 = _1_inlined1 in - -# 3613 "parsing/parser.mly" - ( _1 ) -# 21413 "parsing/parser.ml" - - in - let _1 = - let _1 = -# 3873 "parsing/parser.mly" - ( _1 ) -# 21420 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 21428 "parsing/parser.ml" - - in - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3858 "parsing/parser.mly" - ( let info = - match rhs_info _endpos__4_ with - | Some _ as info_before_semi -> info_before_semi - | None -> symbol_info _endpos - in - let attrs = add_info_attrs info (_4 @ _6) in - Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 21443 "parsing/parser.ml" - - in - -# 3839 "parsing/parser.mly" - ( let (f, c) = tail in (head :: f, c) ) -# 21449 "parsing/parser.ml" + let _endpos = _endpos__1_ in + let _v : (Longident.t) = +# 4104 "parsing/parser.mly" + ( Lident _1 ) +# 22343 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21458,9 +22352,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = tail; - MenhirLib.EngineTypes.startp = _startpos_tail_; - MenhirLib.EngineTypes.endp = _endpos_tail_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -21468,33 +22362,52 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let tail : (Parsetree.object_field list * Asttypes.closed_flag) = Obj.magic tail in + let _3 : ( +# 962 "parsing/parser.mly" + (string) +# 22376 "parsing/parser.ml" + ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let ty : (Parsetree.core_type) = Obj.magic ty in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_ty_ in - let _endpos = _endpos_tail_ in - let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = - let _endpos = _endpos_ty_ in - let _symbolstartpos = _startpos_ty_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3869 "parsing/parser.mly" - ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 21492 "parsing/parser.ml" - - in - -# 3839 "parsing/parser.mly" - ( let (f, c) = tail in (head :: f, c) ) -# 21498 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Longident.t) = +# 4105 "parsing/parser.mly" + ( Ldot(_1,_3) ) +# 22386 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Asttypes.label) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Longident.t) = +# 4104 "parsing/parser.mly" + ( Lident _1 ) +# 22411 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21507,115 +22420,33 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let _5 : unit = Obj.magic _5 in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in + let _3 : (Asttypes.label) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let _1 : ( -# 838 "parsing/parser.mly" - (string) -# 21554 "parsing/parser.ml" - ) = Obj.magic _1 in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = - let _6 = - let _1 = _1_inlined3 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 21565 "parsing/parser.ml" - - in - let _endpos__6_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 21574 "parsing/parser.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _3 = - let _1 = _1_inlined1 in - -# 3613 "parsing/parser.mly" - ( _1 ) -# 21583 "parsing/parser.ml" - - in - let _1 = - let _1 = -# 3873 "parsing/parser.mly" - ( _1 ) -# 21590 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 21598 "parsing/parser.ml" - - in - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3858 "parsing/parser.mly" - ( let info = - match rhs_info _endpos__4_ with - | Some _ as info_before_semi -> info_before_semi - | None -> symbol_info _endpos - in - let attrs = add_info_attrs info (_4 @ _6) in - Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 21613 "parsing/parser.ml" - - in - -# 3842 "parsing/parser.mly" - ( [head], Closed ) -# 21619 "parsing/parser.ml" + let _endpos = _endpos__3_ in + let _v : (Longident.t) = +# 4105 "parsing/parser.mly" + ( Ldot(_1,_3) ) +# 22450 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21627,37 +22458,20 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : unit = Obj.magic _2 in - let ty : (Parsetree.core_type) = Obj.magic ty in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_ty_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = - let _endpos = _endpos_ty_ in - let _symbolstartpos = _startpos_ty_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3869 "parsing/parser.mly" - ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 21655 "parsing/parser.ml" - - in - -# 3842 "parsing/parser.mly" - ( [head], Closed ) -# 21661 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Longident.t) = +# 4127 "parsing/parser.mly" + ( _1 ) +# 22475 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21670,14 +22484,14 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -21693,65 +22507,20 @@ module Tables = struct }; }; } = _menhir_stack in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in + let _4 : unit = Obj.magic _4 in + let _3 : (Longident.t) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let _1 : ( -# 838 "parsing/parser.mly" - (string) -# 21703 "parsing/parser.ml" - ) = Obj.magic _1 in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = - let _4 = - let _1 = _1_inlined2 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 21714 "parsing/parser.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _3 = - let _1 = _1_inlined1 in - -# 3613 "parsing/parser.mly" - ( _1 ) -# 21723 "parsing/parser.ml" - - in - let _1 = - let _1 = -# 3873 "parsing/parser.mly" - ( _1 ) -# 21730 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 21738 "parsing/parser.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3851 "parsing/parser.mly" - ( let info = symbol_info _endpos in - let attrs = add_info_attrs info _4 in - Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 21749 "parsing/parser.ml" - - in + let _endpos = _endpos__4_ in + let _v : (Longident.t) = let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3845 "parsing/parser.mly" - ( [head], Closed ) -# 21755 "parsing/parser.ml" +# 4129 "parsing/parser.mly" + ( lapply ~loc:_sloc _1 _3 ) +# 22524 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21763,30 +22532,35 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let ty : (Parsetree.core_type) = Obj.magic ty in + let _3 : unit = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_ty_ in - let _endpos = _endpos_ty_ in - let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head = - let _endpos = _endpos_ty_ in - let _symbolstartpos = _startpos_ty_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3869 "parsing/parser.mly" - ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 21784 "parsing/parser.ml" - - in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Longident.t) = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3845 "parsing/parser.mly" - ( [head], Closed ) -# 21790 "parsing/parser.ml" +# 4131 "parsing/parser.mly" + ( expecting _loc__3_ "module path" ) +# 22564 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21804,14 +22578,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : unit = Obj.magic _1 in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.object_field list * Asttypes.closed_flag) = -# 3847 "parsing/parser.mly" - ( [], Open ) -# 21815 "parsing/parser.ml" + let _v : (Longident.t) = +# 4124 "parsing/parser.mly" + ( _1 ) +# 22589 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21824,87 +22598,26 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = me; + MenhirLib.EngineTypes.startp = _startpos_me_; + MenhirLib.EngineTypes.endp = _endpos_me_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = private_; - MenhirLib.EngineTypes.startp = _startpos_private__; - MenhirLib.EngineTypes.endp = _endpos_private__; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in - let _5 : unit = Obj.magic _5 in - let _1_inlined1 : ( -# 838 "parsing/parser.mly" - (string) -# 21862 "parsing/parser.ml" - ) = Obj.magic _1_inlined1 in - let private_ : (Asttypes.private_flag) = Obj.magic private_ in - let _1 : (Parsetree.attributes) = Obj.magic _1 in + let me : (Parsetree.module_expr) = Obj.magic me in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined2_ in - let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * - Parsetree.class_field_kind) * - Parsetree.attributes) = let ty = - let _1 = _1_inlined2 in - -# 3609 "parsing/parser.mly" - ( _1 ) -# 21876 "parsing/parser.ml" - - in - let label = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = -# 3873 "parsing/parser.mly" - ( _1 ) -# 21884 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 21892 "parsing/parser.ml" - - in - let attrs = -# 4228 "parsing/parser.mly" - ( _1 ) -# 21898 "parsing/parser.ml" - in - let _1 = -# 4125 "parsing/parser.mly" - ( Fresh ) -# 21903 "parsing/parser.ml" - in - -# 2134 "parsing/parser.mly" - ( (label, private_, Cfk_virtual ty), attrs ) -# 21908 "parsing/parser.ml" + let _endpos = _endpos_me_ in + let _v : (Parsetree.module_expr) = +# 1673 "parsing/parser.mly" + ( me ) +# 22621 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21917,19 +22630,19 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = me; + MenhirLib.EngineTypes.startp = _startpos_me_; + MenhirLib.EngineTypes.endp = _endpos_me_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = mty; + MenhirLib.EngineTypes.startp = _startpos_mty_; + MenhirLib.EngineTypes.endp = _endpos_mty_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -21940,52 +22653,33 @@ module Tables = struct }; }; } = _menhir_stack in - let _5 : (Parsetree.expression) = Obj.magic _5 in - let _1_inlined1 : ( -# 838 "parsing/parser.mly" - (string) -# 21948 "parsing/parser.ml" - ) = Obj.magic _1_inlined1 in - let _3 : (Asttypes.private_flag) = Obj.magic _3 in - let _1 : (Parsetree.attributes) = Obj.magic _1 in + let me : (Parsetree.module_expr) = Obj.magic me in + let _3 : unit = Obj.magic _3 in + let mty : (Parsetree.module_type) = Obj.magic mty in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * - Parsetree.class_field_kind) * - Parsetree.attributes) = let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos_me_ in + let _v : (Parsetree.module_expr) = let _1 = let _1 = -# 3873 "parsing/parser.mly" - ( _1 ) -# 21962 "parsing/parser.ml" +# 1676 "parsing/parser.mly" + ( Pmod_constraint(me, mty) ) +# 22668 "parsing/parser.ml" in + let _endpos__1_ = _endpos_me_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 21970 "parsing/parser.ml" +# 1138 "parsing/parser.mly" + ( mkmod ~loc:_sloc _1 ) +# 22677 "parsing/parser.ml" in - let _2 = -# 4228 "parsing/parser.mly" - ( _1 ) -# 21976 "parsing/parser.ml" - in - let _1 = -# 4128 "parsing/parser.mly" - ( Fresh ) -# 21981 "parsing/parser.ml" - in -# 2136 "parsing/parser.mly" - ( let e = _5 in - let loc = Location.(e.pexp_loc.loc_start, e.pexp_loc.loc_end) in - (_4, _3, - Cfk_concrete (_1, ghexp ~loc (Pexp_poly (e, None)))), _2 ) -# 21989 "parsing/parser.ml" +# 1680 "parsing/parser.mly" + ( _1 ) +# 22683 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21998,85 +22692,43 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = body; + MenhirLib.EngineTypes.startp = _startpos_body_; + MenhirLib.EngineTypes.endp = _endpos_body_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = arg_and_pos; + MenhirLib.EngineTypes.startp = _startpos_arg_and_pos_; + MenhirLib.EngineTypes.endp = _endpos_arg_and_pos_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _5 : (Parsetree.expression) = Obj.magic _5 in - let _1_inlined2 : ( -# 838 "parsing/parser.mly" - (string) -# 22035 "parsing/parser.ml" - ) = Obj.magic _1_inlined2 in - let _3 : (Asttypes.private_flag) = Obj.magic _3 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let body : (Parsetree.module_expr) = Obj.magic body in + let arg_and_pos : (Lexing.position * Parsetree.functor_parameter) = Obj.magic arg_and_pos in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * - Parsetree.class_field_kind) * - Parsetree.attributes) = let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _startpos = _startpos_arg_and_pos_ in + let _endpos = _endpos_body_ in + let _v : (Parsetree.module_expr) = let _1 = let _1 = -# 3873 "parsing/parser.mly" - ( _1 ) -# 22050 "parsing/parser.ml" +# 1678 "parsing/parser.mly" + ( let (_, arg) = arg_and_pos in + Pmod_functor(arg, body) ) +# 22717 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 22058 "parsing/parser.ml" - - in - let _2 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 22066 "parsing/parser.ml" +# 1138 "parsing/parser.mly" + ( mkmod ~loc:_sloc _1 ) +# 22726 "parsing/parser.ml" in - let _1 = -# 4129 "parsing/parser.mly" - ( Override ) -# 22072 "parsing/parser.ml" - in -# 2136 "parsing/parser.mly" - ( let e = _5 in - let loc = Location.(e.pexp_loc.loc_start, e.pexp_loc.loc_end) in - (_4, _3, - Cfk_concrete (_1, ghexp ~loc (Pexp_poly (e, None)))), _2 ) -# 22080 "parsing/parser.ml" +# 1680 "parsing/parser.mly" + ( _1 ) +# 22732 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22089,105 +22741,75 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _8; - MenhirLib.EngineTypes.startp = _startpos__8_; - MenhirLib.EngineTypes.endp = _endpos__8_; + MenhirLib.EngineTypes.semv = mty; + MenhirLib.EngineTypes.startp = _startpos_mty_; + MenhirLib.EngineTypes.endp = _endpos_mty_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _8 : (Parsetree.expression) = Obj.magic _8 in - let _7 : unit = Obj.magic _7 in - let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in - let _5 : unit = Obj.magic _5 in - let _1_inlined1 : ( -# 838 "parsing/parser.mly" - (string) -# 22141 "parsing/parser.ml" - ) = Obj.magic _1_inlined1 in - let _3 : (Asttypes.private_flag) = Obj.magic _3 in - let _1 : (Parsetree.attributes) = Obj.magic _1 in + let mty : (Parsetree.module_type) = Obj.magic mty in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__8_ in - let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * - Parsetree.class_field_kind) * - Parsetree.attributes) = let _6 = - let _1 = _1_inlined2 in - -# 3609 "parsing/parser.mly" - ( _1 ) -# 22155 "parsing/parser.ml" - - in - let _startpos__6_ = _startpos__1_inlined2_ in - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos_mty_ in + let _v : (Parsetree.module_type) = +# 1934 "parsing/parser.mly" + ( mty ) +# 22764 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = body; + MenhirLib.EngineTypes.startp = _startpos_body_; + MenhirLib.EngineTypes.endp = _endpos_body_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = arg_and_pos; + MenhirLib.EngineTypes.startp = _startpos_arg_and_pos_; + MenhirLib.EngineTypes.endp = _endpos_arg_and_pos_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let body : (Parsetree.module_type) = Obj.magic body in + let arg_and_pos : (Lexing.position * Parsetree.functor_parameter) = Obj.magic arg_and_pos in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_arg_and_pos_ in + let _endpos = _endpos_body_ in + let _v : (Parsetree.module_type) = let _1 = let _1 = -# 3873 "parsing/parser.mly" - ( _1 ) -# 22164 "parsing/parser.ml" +# 1937 "parsing/parser.mly" + ( let (_, arg) = arg_and_pos in + Pmty_functor(arg, body) ) +# 22798 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 22172 "parsing/parser.ml" +# 1140 "parsing/parser.mly" + ( mkmty ~loc:_sloc _1 ) +# 22807 "parsing/parser.ml" in - let _2 = -# 4228 "parsing/parser.mly" - ( _1 ) -# 22178 "parsing/parser.ml" - in - let _1 = -# 4128 "parsing/parser.mly" - ( Fresh ) -# 22183 "parsing/parser.ml" - in -# 2142 "parsing/parser.mly" - ( let poly_exp = - let loc = (_startpos__6_, _endpos__8_) in - ghexp ~loc (Pexp_poly(_8, Some _6)) in - (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 22191 "parsing/parser.ml" +# 1940 "parsing/parser.mly" + ( _1 ) +# 22813 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22200,115 +22822,51 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _8; - MenhirLib.EngineTypes.startp = _startpos__8_; - MenhirLib.EngineTypes.endp = _endpos__8_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.semv = s; + MenhirLib.EngineTypes.startp = _startpos_s_; + MenhirLib.EngineTypes.endp = _endpos_s_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let _8 : (Parsetree.expression) = Obj.magic _8 in - let _7 : unit = Obj.magic _7 in - let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in - let _5 : unit = Obj.magic _5 in - let _1_inlined2 : ( -# 838 "parsing/parser.mly" - (string) -# 22258 "parsing/parser.ml" - ) = Obj.magic _1_inlined2 in - let _3 : (Asttypes.private_flag) = Obj.magic _3 in + let _4 : unit = Obj.magic _4 in + let s : (Parsetree.structure) = Obj.magic s in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__8_ in - let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * - Parsetree.class_field_kind) * - Parsetree.attributes) = let _6 = - let _1 = _1_inlined3 in - -# 3609 "parsing/parser.mly" - ( _1 ) -# 22273 "parsing/parser.ml" - - in - let _startpos__6_ = _startpos__1_inlined3_ in - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = -# 3873 "parsing/parser.mly" - ( _1 ) -# 22282 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 22290 "parsing/parser.ml" - - in - let _2 = + let _endpos = _endpos__4_ in + let _v : (Parsetree.module_expr) = let attrs = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 22298 "parsing/parser.ml" +# 22861 "parsing/parser.ml" in - let _1 = -# 4129 "parsing/parser.mly" - ( Override ) -# 22304 "parsing/parser.ml" - in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2142 "parsing/parser.mly" - ( let poly_exp = - let loc = (_startpos__6_, _endpos__8_) in - ghexp ~loc (Pexp_poly(_8, Some _6)) in - (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 22312 "parsing/parser.ml" +# 1509 "parsing/parser.mly" + ( mkmod ~loc:_sloc ~attrs (Pmod_structure s) ) +# 22870 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22321,144 +22879,50 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _11; - MenhirLib.EngineTypes.startp = _startpos__11_; - MenhirLib.EngineTypes.endp = _endpos__11_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _10; - MenhirLib.EngineTypes.startp = _startpos__10_; - MenhirLib.EngineTypes.endp = _endpos__10_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _9; - MenhirLib.EngineTypes.startp = _startpos__9_; - MenhirLib.EngineTypes.endp = _endpos__9_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _8; - MenhirLib.EngineTypes.startp = _startpos__8_; - MenhirLib.EngineTypes.endp = _endpos__8_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let _11 : (Parsetree.expression) = Obj.magic _11 in - let _10 : unit = Obj.magic _10 in - let _9 : (Parsetree.core_type) = Obj.magic _9 in - let _8 : unit = Obj.magic _8 in - let xs : (string Asttypes.loc list) = Obj.magic xs in - let _6 : unit = Obj.magic _6 in - let _5 : unit = Obj.magic _5 in - let _1_inlined1 : ( -# 838 "parsing/parser.mly" - (string) -# 22394 "parsing/parser.ml" - ) = Obj.magic _1_inlined1 in - let _3 : (Asttypes.private_flag) = Obj.magic _3 in - let _1 : (Parsetree.attributes) = Obj.magic _1 in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.structure) = Obj.magic _3 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__11_ in - let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * - Parsetree.class_field_kind) * - Parsetree.attributes) = let _7 = -# 2760 "parsing/parser.mly" - ( xs ) -# 22406 "parsing/parser.ml" - in - let _startpos__7_ = _startpos_xs_ in - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _1 = -# 3873 "parsing/parser.mly" - ( _1 ) -# 22414 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos__4_ in + let _v : (Parsetree.module_expr) = let _2 = + let _1 = _1_inlined1 in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 22422 "parsing/parser.ml" +# 4369 "parsing/parser.mly" + ( _1 ) +# 22918 "parsing/parser.ml" in - let _startpos__4_ = _startpos__1_inlined1_ in - let _2 = -# 4228 "parsing/parser.mly" - ( _1 ) -# 22429 "parsing/parser.ml" - in - let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in - let _1 = -# 4128 "parsing/parser.mly" - ( Fresh ) -# 22435 "parsing/parser.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in - let _endpos = _endpos__11_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - if _startpos__2_ != _endpos__2_ then - _startpos__2_ - else - if _startpos__3_ != _endpos__3_ then - _startpos__3_ - else - _startpos__4_ in - let _sloc = (_symbolstartpos, _endpos) in + let _loc__4_ = (_startpos__4_, _endpos__4_) in + let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2148 "parsing/parser.mly" - ( let poly_exp_loc = (_startpos__7_, _endpos__11_) in - let poly_exp = - let exp, poly = - (* it seems odd to use the global ~loc here while poly_exp_loc - is tighter, but this is what ocamlyacc does; - TODO improve parser.mly *) - wrap_type_annotation ~loc:_sloc _7 _9 _11 in - ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in - (_4, _3, - Cfk_concrete (_1, poly_exp)), _2 ) -# 22462 "parsing/parser.ml" +# 1511 "parsing/parser.mly" + ( unclosed "struct" _loc__1_ "end" _loc__4_ ) +# 22926 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22471,153 +22935,127 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _11; - MenhirLib.EngineTypes.startp = _startpos__11_; - MenhirLib.EngineTypes.endp = _endpos__11_; + MenhirLib.EngineTypes.semv = me; + MenhirLib.EngineTypes.startp = _startpos_me_; + MenhirLib.EngineTypes.endp = _endpos_me_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _10; - MenhirLib.EngineTypes.startp = _startpos__10_; - MenhirLib.EngineTypes.endp = _endpos__10_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _9; - MenhirLib.EngineTypes.startp = _startpos__9_; - MenhirLib.EngineTypes.endp = _endpos__9_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _8; - MenhirLib.EngineTypes.startp = _startpos__8_; - MenhirLib.EngineTypes.endp = _endpos__8_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in - let _11 : (Parsetree.expression) = Obj.magic _11 in - let _10 : unit = Obj.magic _10 in - let _9 : (Parsetree.core_type) = Obj.magic _9 in - let _8 : unit = Obj.magic _8 in - let xs : (string Asttypes.loc list) = Obj.magic xs in - let _6 : unit = Obj.magic _6 in - let _5 : unit = Obj.magic _5 in - let _1_inlined2 : ( -# 838 "parsing/parser.mly" - (string) -# 22550 "parsing/parser.ml" - ) = Obj.magic _1_inlined2 in - let _3 : (Asttypes.private_flag) = Obj.magic _3 in + let me : (Parsetree.module_expr) = Obj.magic me in + let _4 : unit = Obj.magic _4 in + let _1_inlined2 : ((Lexing.position * Parsetree.functor_parameter) list) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__11_ in - let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * - Parsetree.class_field_kind) * - Parsetree.attributes) = let _7 = -# 2760 "parsing/parser.mly" - ( xs ) -# 22563 "parsing/parser.ml" - in - let _startpos__7_ = _startpos_xs_ in - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = -# 3873 "parsing/parser.mly" - ( _1 ) -# 22571 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos_me_ in + let _v : (Parsetree.module_expr) = let args = + let _1 = _1_inlined2 in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 22579 "parsing/parser.ml" +# 1475 "parsing/parser.mly" + ( _1 ) +# 22981 "parsing/parser.ml" in - let _startpos__4_ = _startpos__1_inlined2_ in - let _2 = + let attrs = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 22588 "parsing/parser.ml" +# 22989 "parsing/parser.ml" in - let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in - let _1 = -# 4129 "parsing/parser.mly" - ( Override ) -# 22595 "parsing/parser.ml" - in - let _endpos = _endpos__11_ in - let _symbolstartpos = if _startpos__1_ != _endpos__1_ then - _startpos__1_ - else - if _startpos__2_ != _endpos__2_ then - _startpos__2_ - else - if _startpos__3_ != _endpos__3_ then - _startpos__3_ - else - _startpos__4_ in + let _endpos = _endpos_me_ in + let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2148 "parsing/parser.mly" - ( let poly_exp_loc = (_startpos__7_, _endpos__11_) in - let poly_exp = - let exp, poly = - (* it seems odd to use the global ~loc here while poly_exp_loc - is tighter, but this is what ocamlyacc does; - TODO improve parser.mly *) - wrap_type_annotation ~loc:_sloc _7 _9 _11 in - ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in - (_4, _3, - Cfk_concrete (_1, poly_exp)), _2 ) -# 22621 "parsing/parser.ml" +# 1513 "parsing/parser.mly" + ( wrap_mod_attrs ~loc:_sloc attrs ( + List.fold_left (fun acc (startpos, arg) -> + mkmod ~loc:(startpos, _endpos) (Pmod_functor (arg, acc)) + ) me args + ) ) +# 23002 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = me; + MenhirLib.EngineTypes.startp = _startpos_me_; + MenhirLib.EngineTypes.endp = _endpos_me_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let me : (Parsetree.module_expr) = Obj.magic me in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_me_ in + let _endpos = _endpos_me_ in + let _v : (Parsetree.module_expr) = +# 1519 "parsing/parser.mly" + ( me ) +# 23027 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = attr; + MenhirLib.EngineTypes.startp = _startpos_attr_; + MenhirLib.EngineTypes.endp = _endpos_attr_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = me; + MenhirLib.EngineTypes.startp = _startpos_me_; + MenhirLib.EngineTypes.endp = _endpos_me_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let attr : (Parsetree.attribute) = Obj.magic attr in + let me : (Parsetree.module_expr) = Obj.magic me in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_me_ in + let _endpos = _endpos_attr_ in + let _v : (Parsetree.module_expr) = +# 1521 "parsing/parser.mly" + ( Mod.attr me attr ) +# 23059 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22635,18 +23073,89 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ( -# 838 "parsing/parser.mly" - (string) -# 22642 "parsing/parser.ml" - ) = Obj.magic _1 in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Longident.t) = -# 3970 "parsing/parser.mly" - ( Lident _1 ) -# 22650 "parsing/parser.ml" + let _v : (Parsetree.module_expr) = let _1 = + let _1 = + let x = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 23090 "parsing/parser.ml" + + in + +# 1525 "parsing/parser.mly" + ( Pmod_ident x ) +# 23096 "parsing/parser.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1138 "parsing/parser.mly" + ( mkmod ~loc:_sloc _1 ) +# 23105 "parsing/parser.ml" + + in + +# 1537 "parsing/parser.mly" + ( _1 ) +# 23111 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = me2; + MenhirLib.EngineTypes.startp = _startpos_me2_; + MenhirLib.EngineTypes.endp = _endpos_me2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = me1; + MenhirLib.EngineTypes.startp = _startpos_me1_; + MenhirLib.EngineTypes.endp = _endpos_me1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let me2 : (Parsetree.module_expr) = Obj.magic me2 in + let me1 : (Parsetree.module_expr) = Obj.magic me1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_me1_ in + let _endpos = _endpos_me2_ in + let _v : (Parsetree.module_expr) = let _1 = + let _1 = +# 1528 "parsing/parser.mly" + ( Pmod_apply(me1, me2) ) +# 23144 "parsing/parser.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_me2_, _startpos_me1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1138 "parsing/parser.mly" + ( mkmod ~loc:_sloc _1 ) +# 23153 "parsing/parser.ml" + + in + +# 1537 "parsing/parser.mly" + ( _1 ) +# 23159 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22669,27 +23178,45 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = me1; + MenhirLib.EngineTypes.startp = _startpos_me1_; + MenhirLib.EngineTypes.endp = _endpos_me1_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _3 : ( -# 838 "parsing/parser.mly" - (string) -# 22683 "parsing/parser.ml" - ) = Obj.magic _3 in + let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let _1 : (Longident.t) = Obj.magic _1 in + let me1 : (Parsetree.module_expr) = Obj.magic me1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in + let _startpos = _startpos_me1_ in let _endpos = _endpos__3_ in - let _v : (Longident.t) = -# 3971 "parsing/parser.mly" - ( Ldot(_1,_3) ) -# 22693 "parsing/parser.ml" + let _v : (Parsetree.module_expr) = let _1 = + let _1 = + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos_me1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1531 "parsing/parser.mly" + ( (* TODO review mkmod location *) + Pmod_apply(me1, mkmod ~loc:_sloc (Pmod_structure [])) ) +# 23204 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_me1_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1138 "parsing/parser.mly" + ( mkmod ~loc:_sloc _1 ) +# 23214 "parsing/parser.ml" + + in + +# 1537 "parsing/parser.mly" + ( _1 ) +# 23220 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22702,23 +23229,35 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = ex; + MenhirLib.EngineTypes.startp = _startpos_ex_; + MenhirLib.EngineTypes.endp = _endpos_ex_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : ( -# 891 "parsing/parser.mly" - (string) -# 22714 "parsing/parser.ml" - ) = Obj.magic _1 in + let ex : (Parsetree.extension) = Obj.magic ex in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Longident.t) = -# 3970 "parsing/parser.mly" - ( Lident _1 ) -# 22722 "parsing/parser.ml" + let _startpos = _startpos_ex_ in + let _endpos = _endpos_ex_ in + let _v : (Parsetree.module_expr) = let _1 = + let _1 = +# 1535 "parsing/parser.mly" + ( Pmod_extension ex ) +# 23246 "parsing/parser.ml" + in + let (_endpos__1_, _startpos__1_) = (_endpos_ex_, _startpos_ex_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1138 "parsing/parser.mly" + ( mkmod ~loc:_sloc _1 ) +# 23255 "parsing/parser.ml" + + in + +# 1537 "parsing/parser.mly" + ( _1 ) +# 23261 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22730,38 +23269,24 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _3 : ( -# 891 "parsing/parser.mly" + let x : ( +# 962 "parsing/parser.mly" (string) -# 22755 "parsing/parser.ml" - ) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (Longident.t) = Obj.magic _1 in +# 23282 "parsing/parser.ml" + ) = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Longident.t) = -# 3971 "parsing/parser.mly" - ( Ldot(_1,_3) ) -# 22765 "parsing/parser.ml" + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : (string option) = +# 1492 "parsing/parser.mly" + ( Some x ) +# 23290 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22779,19 +23304,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Asttypes.label) = Obj.magic _1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Longident.t) = let _1 = -# 4008 "parsing/parser.mly" - ( _1 ) -# 22790 "parsing/parser.ml" - in - -# 3970 "parsing/parser.mly" - ( Lident _1 ) -# 22795 "parsing/parser.ml" + let _v : (string option) = +# 1495 "parsing/parser.mly" + ( None ) +# 23315 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22804,45 +23324,112 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _1_inlined4; + MenhirLib.EngineTypes.startp = _startpos__1_inlined4_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ext; + MenhirLib.EngineTypes.startp = _startpos_ext_; + MenhirLib.EngineTypes.endp = _endpos_ext_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; }; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in + let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in + let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in + let _5 : unit = Obj.magic _5 in + let _1_inlined2 : ( +# 962 "parsing/parser.mly" + (string) +# 23375 "parsing/parser.ml" + ) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let ext : (string Asttypes.loc option) = Obj.magic ext in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Longident.t) = let _1 = - let _1 = -# 3950 "parsing/parser.mly" - ( "::" ) -# 22835 "parsing/parser.ml" - in + let _endpos = _endpos__1_inlined4_ in + let _v : (Parsetree.module_substitution * string Asttypes.loc option) = let attrs2 = + let _1 = _1_inlined4 in -# 4008 "parsing/parser.mly" - ( _1 ) -# 22840 "parsing/parser.ml" +# 4365 "parsing/parser.mly" + ( _1 ) +# 23388 "parsing/parser.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined4_ in + let body = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 23400 "parsing/parser.ml" + + in + let uid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 23411 "parsing/parser.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 23419 "parsing/parser.ml" in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3970 "parsing/parser.mly" - ( Lident _1 ) -# 22846 "parsing/parser.ml" +# 1970 "parsing/parser.mly" + ( + let attrs = attrs1 @ attrs2 in + let loc = make_loc _sloc in + let docs = symbol_docs _sloc in + Ms.mk uid body ~attrs ~loc ~docs, ext + ) +# 23433 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22854,25 +23441,79 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; } = _menhir_stack in - let _1 : (Asttypes.label) = Obj.magic _1 in + let _6 : unit = Obj.magic _6 in + let _5 : unit = Obj.magic _5 in + let _1_inlined2 : ( +# 962 "parsing/parser.mly" + (string) +# 23486 "parsing/parser.ml" + ) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _2 : (string Asttypes.loc option) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Longident.t) = let _1 = -# 4008 "parsing/parser.mly" - ( _1 ) -# 22871 "parsing/parser.ml" - in + let _endpos = _endpos__6_ in + let _v : (Parsetree.module_substitution * string Asttypes.loc option) = let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 23502 "parsing/parser.ml" + + in + let _3 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 23510 "parsing/parser.ml" + + in + let _loc__6_ = (_startpos__6_, _endpos__6_) in -# 3970 "parsing/parser.mly" - ( Lident _1 ) -# 22876 "parsing/parser.ml" +# 1977 "parsing/parser.mly" + ( expecting _loc__6_ "module path" ) +# 23517 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22885,41 +23526,51 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = s; + MenhirLib.EngineTypes.startp = _startpos_s_; + MenhirLib.EngineTypes.endp = _endpos_s_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; } = _menhir_stack in - let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in - let _1 : (Longident.t) = Obj.magic _1 in + let _4 : unit = Obj.magic _4 in + let s : (Parsetree.signature) = Obj.magic s in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Longident.t) = let _3 = + let _endpos = _endpos__4_ in + let _v : (Parsetree.module_type) = let attrs = let _1 = _1_inlined1 in -# 4008 "parsing/parser.mly" - ( _1 ) -# 22917 "parsing/parser.ml" +# 4369 "parsing/parser.mly" + ( _1 ) +# 23565 "parsing/parser.ml" in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3971 "parsing/parser.mly" - ( Ldot(_1,_3) ) -# 22923 "parsing/parser.ml" +# 1817 "parsing/parser.mly" + ( mkmty ~loc:_sloc ~attrs (Pmty_signature s) ) +# 23574 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22932,59 +23583,50 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined1; MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in - let _1 : (Longident.t) = Obj.magic _1 in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.signature) = Obj.magic _3 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Longident.t) = let _3 = - let _1 = -# 3950 "parsing/parser.mly" - ( "::" ) -# 22977 "parsing/parser.ml" - in + let _endpos = _endpos__4_ in + let _v : (Parsetree.module_type) = let _2 = + let _1 = _1_inlined1 in -# 4008 "parsing/parser.mly" - ( _1 ) -# 22982 "parsing/parser.ml" +# 4369 "parsing/parser.mly" + ( _1 ) +# 23622 "parsing/parser.ml" in + let _loc__4_ = (_startpos__4_, _endpos__4_) in + let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3971 "parsing/parser.mly" - ( Ldot(_1,_3) ) -# 22988 "parsing/parser.ml" +# 1819 "parsing/parser.mly" + ( unclosed "sig" _loc__1_ "end" _loc__4_ ) +# 23630 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22997,41 +23639,70 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = mty; + MenhirLib.EngineTypes.startp = _startpos_mty_; + MenhirLib.EngineTypes.endp = _endpos_mty_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; } = _menhir_stack in - let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in - let _1 : (Longident.t) = Obj.magic _1 in + let mty : (Parsetree.module_type) = Obj.magic mty in + let _4 : unit = Obj.magic _4 in + let _1_inlined2 : ((Lexing.position * Parsetree.functor_parameter) list) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Longident.t) = let _3 = + let _endpos = _endpos_mty_ in + let _v : (Parsetree.module_type) = let args = + let _1 = _1_inlined2 in + +# 1475 "parsing/parser.mly" + ( _1 ) +# 23685 "parsing/parser.ml" + + in + let attrs = let _1 = _1_inlined1 in -# 4008 "parsing/parser.mly" - ( _1 ) -# 23029 "parsing/parser.ml" +# 4369 "parsing/parser.mly" + ( _1 ) +# 23693 "parsing/parser.ml" in + let _endpos = _endpos_mty_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3971 "parsing/parser.mly" - ( Ldot(_1,_3) ) -# 23035 "parsing/parser.ml" +# 1823 "parsing/parser.mly" + ( wrap_mty_attrs ~loc:_sloc attrs ( + List.fold_left (fun acc (startpos, arg) -> + mkmty ~loc:(startpos, _endpos) (Pmty_functor (arg, acc)) + ) mty args + ) ) +# 23706 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23043,20 +23714,59 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; } = _menhir_stack in - let _1 : (Asttypes.label) = Obj.magic _1 in + let _5 : (Parsetree.module_expr) = Obj.magic _5 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _3 : unit = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Longident.t) = -# 3970 "parsing/parser.mly" - ( Lident _1 ) -# 23060 "parsing/parser.ml" + let _endpos = _endpos__5_ in + let _v : (Parsetree.module_type) = let _4 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 23761 "parsing/parser.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1829 "parsing/parser.mly" + ( mkmty ~loc:_sloc ~attrs:_4 (Pmty_typeof _5) ) +# 23770 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23086,45 +23796,16 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : (Asttypes.label) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (Longident.t) = Obj.magic _1 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.module_type) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Longident.t) = -# 3971 "parsing/parser.mly" - ( Ldot(_1,_3) ) -# 23099 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : ( -# 838 "parsing/parser.mly" - (string) -# 23120 "parsing/parser.ml" - ) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Longident.t) = -# 3970 "parsing/parser.mly" - ( Lident _1 ) -# 23128 "parsing/parser.ml" + let _v : (Parsetree.module_type) = +# 1831 "parsing/parser.mly" + ( _2 ) +# 23809 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23154,49 +23835,18 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : ( -# 838 "parsing/parser.mly" - (string) -# 23161 "parsing/parser.ml" - ) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (Longident.t) = Obj.magic _1 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.module_type) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Longident.t) = -# 3971 "parsing/parser.mly" - ( Ldot(_1,_3) ) -# 23171 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : ( -# 891 "parsing/parser.mly" - (string) -# 23192 "parsing/parser.ml" - ) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Longident.t) = -# 3970 "parsing/parser.mly" - ( Lident _1 ) -# 23200 "parsing/parser.ml" + let _v : (Parsetree.module_type) = let _loc__3_ = (_startpos__3_, _endpos__3_) in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + +# 1833 "parsing/parser.mly" + ( unclosed "(" _loc__1_ ")" _loc__3_ ) +# 23850 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23209,37 +23859,26 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _3 : ( -# 891 "parsing/parser.mly" - (string) -# 23233 "parsing/parser.ml" - ) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (Longident.t) = Obj.magic _1 in + let _2 : (Parsetree.attribute) = Obj.magic _2 in + let _1 : (Parsetree.module_type) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Longident.t) = -# 3971 "parsing/parser.mly" - ( Ldot(_1,_3) ) -# 23243 "parsing/parser.ml" + let _endpos = _endpos__2_ in + let _v : (Parsetree.module_type) = +# 1835 "parsing/parser.mly" + ( Mty.attr _1 _2 ) +# 23882 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23257,14 +23896,41 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Asttypes.label) = Obj.magic _1 in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Longident.t) = -# 3970 "parsing/parser.mly" - ( Lident _1 ) -# 23268 "parsing/parser.ml" + let _v : (Parsetree.module_type) = let _1 = + let _1 = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 23913 "parsing/parser.ml" + + in + +# 1838 "parsing/parser.mly" + ( Pmty_ident _1 ) +# 23919 "parsing/parser.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1140 "parsing/parser.mly" + ( mkmty ~loc:_sloc _1 ) +# 23928 "parsing/parser.ml" + + in + +# 1849 "parsing/parser.mly" + ( _1 ) +# 23934 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23294,90 +23960,32 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : (Asttypes.label) = Obj.magic _3 in + let _3 : (Parsetree.module_type) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let _1 : (Longident.t) = Obj.magic _1 in + let _1 : (Parsetree.module_type) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Longident.t) = -# 3971 "parsing/parser.mly" - ( Ldot(_1,_3) ) -# 23307 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Longident.t) = -# 3986 "parsing/parser.mly" - ( _1 ) -# 23332 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let _3 : (Longident.t) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (Longident.t) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Longident.t) = let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _v : (Parsetree.module_type) = let _1 = + let _1 = +# 1841 "parsing/parser.mly" + ( Pmty_functor(Named (mknoloc None, _1), _3) ) +# 23974 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1140 "parsing/parser.mly" + ( mkmty ~loc:_sloc _1 ) +# 23983 "parsing/parser.ml" + + in -# 3988 "parsing/parser.mly" - ( lapply ~loc:_sloc _1 _3 ) -# 23381 "parsing/parser.ml" +# 1849 "parsing/parser.mly" + ( _1 ) +# 23989 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23390,9 +23998,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -23407,17 +24015,46 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in + let xs : (Parsetree.with_constraint list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in - let _1 : (Longident.t) = Obj.magic _1 in + let _1 : (Parsetree.module_type) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Longident.t) = let _loc__3_ = (_startpos__3_, _endpos__3_) in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.module_type) = let _1 = + let _1 = + let _3 = + let xs = +# 253 "" + ( List.rev xs ) +# 24031 "parsing/parser.ml" + in + +# 1229 "parsing/parser.mly" + ( xs ) +# 24036 "parsing/parser.ml" + + in + +# 1843 "parsing/parser.mly" + ( Pmty_with(_1, _3) ) +# 24042 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1140 "parsing/parser.mly" + ( mkmty ~loc:_sloc _1 ) +# 24052 "parsing/parser.ml" + + in -# 3990 "parsing/parser.mly" - ( expecting _loc__3_ "module path" ) -# 23421 "parsing/parser.ml" +# 1849 "parsing/parser.mly" + ( _1 ) +# 24058 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23435,14 +24072,29 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in + let _1 : (Parsetree.extension) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Longident.t) = -# 3983 "parsing/parser.mly" - ( _1 ) -# 23446 "parsing/parser.ml" + let _v : (Parsetree.module_type) = let _1 = + let _1 = +# 1847 "parsing/parser.mly" + ( Pmty_extension _1 ) +# 24084 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1140 "parsing/parser.mly" + ( mkmty ~loc:_sloc _1 ) +# 24092 "parsing/parser.ml" + + in + +# 1849 "parsing/parser.mly" + ( _1 ) +# 24098 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23455,26 +24107,97 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = me; - MenhirLib.EngineTypes.startp = _startpos_me_; - MenhirLib.EngineTypes.endp = _endpos_me_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = typ; + MenhirLib.EngineTypes.startp = _startpos_typ_; + MenhirLib.EngineTypes.endp = _endpos_typ_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ext; + MenhirLib.EngineTypes.startp = _startpos_ext_; + MenhirLib.EngineTypes.endp = _endpos_ext_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; }; } = _menhir_stack in - let me : (Parsetree.module_expr) = Obj.magic me in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let typ : (Parsetree.module_type option) = Obj.magic typ in + let _1_inlined2 : (Asttypes.label) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let ext : (string Asttypes.loc option) = Obj.magic ext in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_me_ in - let _v : (Parsetree.module_expr) = -# 1602 "parsing/parser.mly" - ( me ) -# 23478 "parsing/parser.ml" + let _endpos = _endpos__1_inlined3_ in + let _v : (Parsetree.module_type_declaration * string Asttypes.loc option) = let attrs2 = + let _1 = _1_inlined3 in + +# 4365 "parsing/parser.mly" + ( _1 ) +# 24167 "parsing/parser.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 24179 "parsing/parser.ml" + + in + let attrs1 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" + ( _1 ) +# 24187 "parsing/parser.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1763 "parsing/parser.mly" + ( + let attrs = attrs1 @ attrs2 in + let loc = make_loc _sloc in + let docs = symbol_docs _sloc in + Mtd.mk id ?typ ~attrs ~loc ~docs, ext + ) +# 24201 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23487,56 +24210,104 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = me; - MenhirLib.EngineTypes.startp = _startpos_me_; - MenhirLib.EngineTypes.endp = _endpos_me_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = typ; + MenhirLib.EngineTypes.startp = _startpos_typ_; + MenhirLib.EngineTypes.endp = _endpos_typ_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = mty; - MenhirLib.EngineTypes.startp = _startpos_mty_; - MenhirLib.EngineTypes.endp = _endpos_mty_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ext; + MenhirLib.EngineTypes.startp = _startpos_ext_; + MenhirLib.EngineTypes.endp = _endpos_ext_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; }; }; }; } = _menhir_stack in - let me : (Parsetree.module_expr) = Obj.magic me in - let _3 : unit = Obj.magic _3 in - let mty : (Parsetree.module_type) = Obj.magic mty in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let typ : (Parsetree.module_type) = Obj.magic typ in + let _6 : unit = Obj.magic _6 in + let _1_inlined2 : (Asttypes.label) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let ext : (string Asttypes.loc option) = Obj.magic ext in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_me_ in - let _v : (Parsetree.module_expr) = let _1 = - let _1 = -# 1605 "parsing/parser.mly" - ( Pmod_constraint(me, mty) ) -# 23525 "parsing/parser.ml" - in - let _endpos__1_ = _endpos_me_ in + let _endpos = _endpos__1_inlined3_ in + let _v : (Parsetree.module_type_declaration * string Asttypes.loc option) = let attrs2 = + let _1 = _1_inlined3 in + +# 4365 "parsing/parser.mly" + ( _1 ) +# 24277 "parsing/parser.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1067 "parsing/parser.mly" - ( mkmod ~loc:_sloc _1 ) -# 23534 "parsing/parser.ml" +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 24289 "parsing/parser.ml" in - -# 1609 "parsing/parser.mly" + let attrs1 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" ( _1 ) -# 23540 "parsing/parser.ml" +# 24297 "parsing/parser.ml" + + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2026 "parsing/parser.mly" + ( + let attrs = attrs1 @ attrs2 in + let loc = make_loc _sloc in + let docs = symbol_docs _sloc in + Mtd.mk id ~typ ~attrs ~loc ~docs, ext + ) +# 24311 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23548,44 +24319,38 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = body; - MenhirLib.EngineTypes.startp = _startpos_body_; - MenhirLib.EngineTypes.endp = _endpos_body_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = arg_and_pos; - MenhirLib.EngineTypes.startp = _startpos_arg_and_pos_; - MenhirLib.EngineTypes.endp = _endpos_arg_and_pos_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let body : (Parsetree.module_expr) = Obj.magic body in - let arg_and_pos : (Lexing.position * Parsetree.functor_parameter) = Obj.magic arg_and_pos in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_arg_and_pos_ in - let _endpos = _endpos_body_ in - let _v : (Parsetree.module_expr) = let _1 = - let _1 = -# 1607 "parsing/parser.mly" - ( let (_, arg) = arg_and_pos in - Pmod_functor(arg, body) ) -# 23574 "parsing/parser.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1067 "parsing/parser.mly" - ( mkmod ~loc:_sloc _1 ) -# 23583 "parsing/parser.ml" - - in - -# 1609 "parsing/parser.mly" - ( _1 ) -# 23589 "parsing/parser.ml" + let _1 : (Longident.t) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Longident.t) = +# 4134 "parsing/parser.mly" + ( _1 ) +# 24336 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Asttypes.mutable_flag) = +# 4215 "parsing/parser.mly" + ( Immutable ) +# 24354 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23597,27 +24362,20 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = mty; - MenhirLib.EngineTypes.startp = _startpos_mty_; - MenhirLib.EngineTypes.endp = _endpos_mty_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let mty : (Parsetree.module_type) = Obj.magic mty in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_mty_ in - let _v : (Parsetree.module_type) = -# 1863 "parsing/parser.mly" - ( mty ) -# 23621 "parsing/parser.ml" + let _endpos = _endpos__1_ in + let _v : (Asttypes.mutable_flag) = +# 4216 "parsing/parser.mly" + ( Mutable ) +# 24379 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23628,45 +24386,14 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = body; - MenhirLib.EngineTypes.startp = _startpos_body_; - MenhirLib.EngineTypes.endp = _endpos_body_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = arg_and_pos; - MenhirLib.EngineTypes.startp = _startpos_arg_and_pos_; - MenhirLib.EngineTypes.endp = _endpos_arg_and_pos_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let body : (Parsetree.module_type) = Obj.magic body in - let arg_and_pos : (Lexing.position * Parsetree.functor_parameter) = Obj.magic arg_and_pos in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_arg_and_pos_ in - let _endpos = _endpos_body_ in - let _v : (Parsetree.module_type) = let _1 = - let _1 = -# 1866 "parsing/parser.mly" - ( let (_, arg) = arg_and_pos in - Pmty_functor(arg, body) ) -# 23655 "parsing/parser.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1069 "parsing/parser.mly" - ( mkmty ~loc:_sloc _1 ) -# 23664 "parsing/parser.ml" - - in - -# 1869 "parsing/parser.mly" - ( _1 ) -# 23670 "parsing/parser.ml" + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Asttypes.mutable_flag * Asttypes.global_flag) = +# 4219 "parsing/parser.mly" + ( Immutable, Nothing ) +# 24397 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23678,52 +24405,20 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = s; - MenhirLib.EngineTypes.startp = _startpos_s_; - MenhirLib.EngineTypes.endp = _endpos_s_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let s : (Parsetree.structure) = Obj.magic s in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Parsetree.module_expr) = let attrs = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 23718 "parsing/parser.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1438 "parsing/parser.mly" - ( mkmod ~loc:_sloc ~attrs (Pmod_structure s) ) -# 23727 "parsing/parser.ml" + let _endpos = _endpos__1_ in + let _v : (Asttypes.mutable_flag * Asttypes.global_flag) = +# 4220 "parsing/parser.mly" + ( Mutable, Nothing ) +# 24422 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23735,51 +24430,20 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.structure) = Obj.magic _3 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Parsetree.module_expr) = let _2 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 23775 "parsing/parser.ml" - - in - let _loc__4_ = (_startpos__4_, _endpos__4_) in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - -# 1440 "parsing/parser.mly" - ( unclosed "struct" _loc__1_ "end" _loc__4_ ) -# 23783 "parsing/parser.ml" + let _endpos = _endpos__1_ in + let _v : (Asttypes.mutable_flag * Asttypes.global_flag) = +# 4221 "parsing/parser.mly" + ( Immutable, Global ) +# 24447 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23791,71 +24455,20 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = me; - MenhirLib.EngineTypes.startp = _startpos_me_; - MenhirLib.EngineTypes.endp = _endpos_me_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let me : (Parsetree.module_expr) = Obj.magic me in - let _4 : unit = Obj.magic _4 in - let _1_inlined2 : ((Lexing.position * Parsetree.functor_parameter) list) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_me_ in - let _v : (Parsetree.module_expr) = let args = - let _1 = _1_inlined2 in - -# 1404 "parsing/parser.mly" - ( _1 ) -# 23838 "parsing/parser.ml" - - in - let attrs = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 23846 "parsing/parser.ml" - - in - let _endpos = _endpos_me_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1442 "parsing/parser.mly" - ( wrap_mod_attrs ~loc:_sloc attrs ( - List.fold_left (fun acc (startpos, arg) -> - mkmod ~loc:(startpos, _endpos) (Pmod_functor (arg, acc)) - ) me args - ) ) -# 23859 "parsing/parser.ml" + let _endpos = _endpos__1_ in + let _v : (Asttypes.mutable_flag * Asttypes.global_flag) = +# 4222 "parsing/parser.mly" + ( Immutable, Nonlocal ) +# 24472 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23866,21 +24479,14 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = me; - MenhirLib.EngineTypes.startp = _startpos_me_; - MenhirLib.EngineTypes.endp = _endpos_me_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let me : (Parsetree.module_expr) = Obj.magic me in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_me_ in - let _endpos = _endpos_me_ in - let _v : (Parsetree.module_expr) = -# 1448 "parsing/parser.mly" - ( me ) -# 23884 "parsing/parser.ml" + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = +# 4235 "parsing/parser.mly" + ( Immutable, Concrete ) +# 24490 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23892,27 +24498,20 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = attr; - MenhirLib.EngineTypes.startp = _startpos_attr_; - MenhirLib.EngineTypes.endp = _endpos_attr_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = me; - MenhirLib.EngineTypes.startp = _startpos_me_; - MenhirLib.EngineTypes.endp = _endpos_me_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let attr : (Parsetree.attribute) = Obj.magic attr in - let me : (Parsetree.module_expr) = Obj.magic me in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_me_ in - let _endpos = _endpos_attr_ in - let _v : (Parsetree.module_expr) = -# 1450 "parsing/parser.mly" - ( Mod.attr me attr ) -# 23916 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = +# 4237 "parsing/parser.mly" + ( Mutable, Concrete ) +# 24515 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23930,41 +24529,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.module_expr) = let _1 = - let _1 = - let x = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 23947 "parsing/parser.ml" - - in - -# 1454 "parsing/parser.mly" - ( Pmod_ident x ) -# 23953 "parsing/parser.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1067 "parsing/parser.mly" - ( mkmod ~loc:_sloc _1 ) -# 23962 "parsing/parser.ml" - - in - -# 1466 "parsing/parser.mly" - ( _1 ) -# 23968 "parsing/parser.ml" + let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = +# 4239 "parsing/parser.mly" + ( Immutable, Virtual ) +# 24540 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23977,42 +24549,26 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = me2; - MenhirLib.EngineTypes.startp = _startpos_me2_; - MenhirLib.EngineTypes.endp = _endpos_me2_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = me1; - MenhirLib.EngineTypes.startp = _startpos_me1_; - MenhirLib.EngineTypes.endp = _endpos_me1_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let me2 : (Parsetree.module_expr) = Obj.magic me2 in - let me1 : (Parsetree.module_expr) = Obj.magic me1 in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_me1_ in - let _endpos = _endpos_me2_ in - let _v : (Parsetree.module_expr) = let _1 = - let _1 = -# 1457 "parsing/parser.mly" - ( Pmod_apply(me1, me2) ) -# 24001 "parsing/parser.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_me2_, _startpos_me1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1067 "parsing/parser.mly" - ( mkmod ~loc:_sloc _1 ) -# 24010 "parsing/parser.ml" - - in - -# 1466 "parsing/parser.mly" - ( _1 ) -# 24016 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = +# 4242 "parsing/parser.mly" + ( Mutable, Virtual ) +# 24572 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24025,55 +24581,58 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = me1; - MenhirLib.EngineTypes.startp = _startpos_me1_; - MenhirLib.EngineTypes.endp = _endpos_me1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let me1 : (Parsetree.module_expr) = Obj.magic me1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_me1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.module_expr) = let _1 = - let _1 = - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos_me1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1460 "parsing/parser.mly" - ( (* TODO review mkmod location *) - Pmod_apply(me1, mkmod ~loc:_sloc (Pmod_structure [])) ) -# 24061 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_me1_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1067 "parsing/parser.mly" - ( mkmod ~loc:_sloc _1 ) -# 24071 "parsing/parser.ml" - - in - -# 1466 "parsing/parser.mly" - ( _1 ) -# 24077 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = +# 4242 "parsing/parser.mly" + ( Mutable, Virtual ) +# 24604 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : (Asttypes.label) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Asttypes.label) = +# 4186 "parsing/parser.mly" + ( _2 ) +# 24636 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24086,35 +24645,33 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ex; - MenhirLib.EngineTypes.startp = _startpos_ex_; - MenhirLib.EngineTypes.endp = _endpos_ex_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let ex : (Parsetree.extension) = Obj.magic ex in + let _1 : ( +# 909 "parsing/parser.mly" + (string) +# 24657 "parsing/parser.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_ex_ in - let _endpos = _endpos_ex_ in - let _v : (Parsetree.module_expr) = let _1 = - let _1 = -# 1464 "parsing/parser.mly" - ( Pmod_extension ex ) -# 24103 "parsing/parser.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_ex_, _startpos_ex_) in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (string Asttypes.loc * Asttypes.layout_annotation option) = let _1 = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1067 "parsing/parser.mly" - ( mkmod ~loc:_sloc _1 ) -# 24112 "parsing/parser.ml" +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 24669 "parsing/parser.ml" in -# 1466 "parsing/parser.mly" - ( _1 ) -# 24118 "parsing/parser.ml" +# 3070 "parsing/parser.mly" + ( _1, None ) +# 24675 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24126,24 +24683,63 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = layout; + MenhirLib.EngineTypes.startp = _startpos_layout_; + MenhirLib.EngineTypes.endp = _endpos_layout_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; } = _menhir_stack in - let x : ( -# 891 "parsing/parser.mly" + let _5 : unit = Obj.magic _5 in + let layout : (Asttypes.layout_annotation) = Obj.magic layout in + let _3 : unit = Obj.magic _3 in + let _1_inlined1 : ( +# 909 "parsing/parser.mly" (string) -# 24139 "parsing/parser.ml" - ) = Obj.magic x in +# 24723 "parsing/parser.ml" + ) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : (string option) = -# 1421 "parsing/parser.mly" - ( Some x ) -# 24147 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v : (string Asttypes.loc * Asttypes.layout_annotation option) = let name = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 24737 "parsing/parser.ml" + + in + +# 3072 "parsing/parser.mly" + ( name, Some layout ) +# 24743 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24161,14 +24757,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : unit = Obj.magic _1 in + let _1 : ((string Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string option) = -# 1424 "parsing/parser.mly" - ( None ) -# 24172 "parsing/parser.ml" + let _v : ((string Asttypes.loc * Asttypes.layout_annotation option) list) = +# 3067 "parsing/parser.mly" + ( _1 ) +# 24768 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24181,112 +24777,33 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined4; - MenhirLib.EngineTypes.startp = _startpos__1_inlined4_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ext; - MenhirLib.EngineTypes.startp = _startpos_ext_; - MenhirLib.EngineTypes.endp = _endpos_ext_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in - let _5 : unit = Obj.magic _5 in - let _1_inlined2 : ( -# 891 "parsing/parser.mly" - (string) -# 24232 "parsing/parser.ml" - ) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.core_type) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.module_substitution * string Asttypes.loc option) = let attrs2 = - let _1 = _1_inlined4 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 24245 "parsing/parser.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined4_ in - let body = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 24257 "parsing/parser.ml" - - in - let uid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 24268 "parsing/parser.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 24276 "parsing/parser.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1899 "parsing/parser.mly" - ( - let attrs = attrs1 @ attrs2 in - let loc = make_loc _sloc in - let docs = symbol_docs _sloc in - Ms.mk uid body ~attrs ~loc ~docs, ext - ) -# 24290 "parsing/parser.ml" + let _endpos = _endpos__3_ in + let _v : (Parsetree.core_type) = +# 3862 "parsing/parser.mly" + ( _2 ) +# 24807 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24299,14 +24816,14 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined2; @@ -24334,43 +24851,51 @@ module Tables = struct }; }; } = _menhir_stack in - let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in - let _1_inlined2 : ( -# 891 "parsing/parser.mly" - (string) -# 24343 "parsing/parser.ml" - ) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _2 : (string Asttypes.loc option) = Obj.magic _2 in + let _1_inlined3 : (Parsetree.module_type) = Obj.magic _1_inlined3 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__6_ in - let _v : (Parsetree.module_substitution * string Asttypes.loc option) = let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__5_ in + let _v : (Parsetree.core_type) = let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 24359 "parsing/parser.ml" +# 3933 "parsing/parser.mly" + ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in + let descr = Ptyp_package (lid, cstrs) in + mktyp ~loc:_sloc ~attrs descr ) +# 24874 "parsing/parser.ml" in let _3 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 4369 "parsing/parser.mly" ( _1 ) -# 24367 "parsing/parser.ml" +# 24884 "parsing/parser.ml" + + in + +# 4382 "parsing/parser.mly" + ( _1, _2 ) +# 24890 "parsing/parser.ml" in - let _loc__6_ = (_startpos__6_, _endpos__6_) in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 1906 "parsing/parser.mly" - ( expecting _loc__6_ "module path" ) -# 24374 "parsing/parser.ml" +# 3864 "parsing/parser.mly" + ( wrap_typ_attrs ~loc:_sloc (reloc_typ ~loc:_sloc _4) _3 ) +# 24899 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24383,51 +24908,42 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = s; - MenhirLib.EngineTypes.startp = _startpos_s_; - MenhirLib.EngineTypes.endp = _endpos_s_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let s : (Parsetree.signature) = Obj.magic s in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _2 : (Asttypes.label) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Parsetree.module_type) = let attrs = - let _1 = _1_inlined1 in + let _endpos = _endpos__2_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = +# 3867 "parsing/parser.mly" + ( Ptyp_var _2 ) +# 24932 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4228 "parsing/parser.mly" - ( _1 ) -# 24422 "parsing/parser.ml" +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 24941 "parsing/parser.ml" in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1746 "parsing/parser.mly" - ( mkmty ~loc:_sloc ~attrs (Pmty_signature s) ) -# 24431 "parsing/parser.ml" +# 3908 "parsing/parser.mly" + ( _1 ) +# 24947 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24439,51 +24955,35 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.signature) = Obj.magic _3 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Parsetree.module_type) = let _2 = - let _1 = _1_inlined1 in + let _endpos = _endpos__1_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = +# 3869 "parsing/parser.mly" + ( Ptyp_any ) +# 24973 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4228 "parsing/parser.mly" - ( _1 ) -# 24479 "parsing/parser.ml" +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 24981 "parsing/parser.ml" in - let _loc__4_ = (_startpos__4_, _endpos__4_) in - let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1748 "parsing/parser.mly" - ( unclosed "sig" _loc__1_ "end" _loc__4_ ) -# 24487 "parsing/parser.ml" +# 3908 "parsing/parser.mly" + ( _1 ) +# 24987 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24495,71 +24995,47 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = mty; - MenhirLib.EngineTypes.startp = _startpos_mty_; - MenhirLib.EngineTypes.endp = _endpos_mty_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let mty : (Parsetree.module_type) = Obj.magic mty in - let _4 : unit = Obj.magic _4 in - let _1_inlined2 : ((Lexing.position * Parsetree.functor_parameter) list) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_mty_ in - let _v : (Parsetree.module_type) = let args = - let _1 = _1_inlined2 in - -# 1404 "parsing/parser.mly" - ( _1 ) -# 24542 "parsing/parser.ml" - - in - let attrs = - let _1 = _1_inlined1 in + let _endpos = _endpos__1_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 25018 "parsing/parser.ml" + + in + +# 3871 "parsing/parser.mly" + ( Ptyp_constr(_1, []) ) +# 25024 "parsing/parser.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4228 "parsing/parser.mly" - ( _1 ) -# 24550 "parsing/parser.ml" +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25033 "parsing/parser.ml" in - let _endpos = _endpos_mty_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1752 "parsing/parser.mly" - ( wrap_mty_attrs ~loc:_sloc attrs ( - List.fold_left (fun acc (startpos, arg) -> - mkmty ~loc:(startpos, _endpos) (Pmty_functor (arg, acc)) - ) mty args - ) ) -# 24563 "parsing/parser.ml" +# 3908 "parsing/parser.mly" + ( _1 ) +# 25039 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24572,58 +25048,59 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _5 : (Parsetree.module_expr) = Obj.magic _5 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _3 : unit = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _1 : (Longident.t) = Obj.magic _1 in + let ty : (Parsetree.core_type) = Obj.magic ty in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Parsetree.module_type) = let _4 = - let _1 = _1_inlined1 in + let _startpos = _startpos_ty_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let tid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 25077 "parsing/parser.ml" + + in + let tys = +# 3928 "parsing/parser.mly" + ( [ty] ) +# 25083 "parsing/parser.ml" + in + +# 3874 "parsing/parser.mly" + ( Ptyp_constr(tid, tys) ) +# 25088 "parsing/parser.ml" + + in + let _startpos__1_ = _startpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4228 "parsing/parser.mly" - ( _1 ) -# 24618 "parsing/parser.ml" +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25098 "parsing/parser.ml" in - let _endpos = _endpos__5_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1758 "parsing/parser.mly" - ( mkmty ~loc:_sloc ~attrs:_4 (Pmty_typeof _5) ) -# 24627 "parsing/parser.ml" +# 3908 "parsing/parser.mly" + ( _1 ) +# 25104 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24636,33 +25113,88 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; } = _menhir_stack in + let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.module_type) = Obj.magic _2 in + let xs : (Parsetree.core_type list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.module_type) = -# 1760 "parsing/parser.mly" - ( _2 ) -# 24666 "parsing/parser.ml" + let _endpos = _endpos__1_inlined1_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let tid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 25157 "parsing/parser.ml" + + in + let tys = + let tys = + let xs = +# 253 "" + ( List.rev xs ) +# 25165 "parsing/parser.ml" + in + +# 1257 "parsing/parser.mly" + ( xs ) +# 25170 "parsing/parser.ml" + + in + +# 3930 "parsing/parser.mly" + ( tys ) +# 25176 "parsing/parser.ml" + + in + +# 3874 "parsing/parser.mly" + ( Ptyp_constr(tid, tys) ) +# 25182 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25192 "parsing/parser.ml" + + in + +# 3908 "parsing/parser.mly" + ( _1 ) +# 25198 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24693,17 +25225,31 @@ module Tables = struct }; } = _menhir_stack in let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.module_type) = Obj.magic _2 in + let _2 : (Parsetree.object_field list * Asttypes.closed_flag) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.module_type) = let _loc__3_ = (_startpos__3_, _endpos__3_) in - let _loc__1_ = (_startpos__1_, _endpos__1_) in + let _v : (Parsetree.core_type) = let _1 = + let _1 = +# 3876 "parsing/parser.mly" + ( let (f, c) = _2 in Ptyp_object (f, c) ) +# 25238 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25247 "parsing/parser.ml" + + in -# 1762 "parsing/parser.mly" - ( unclosed "(" _loc__1_ ")" _loc__3_ ) -# 24707 "parsing/parser.ml" +# 3908 "parsing/parser.mly" + ( _1 ) +# 25253 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24727,15 +25273,31 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : (Parsetree.attribute) = Obj.magic _2 in - let _1 : (Parsetree.module_type) = Obj.magic _1 in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.module_type) = -# 1764 "parsing/parser.mly" - ( Mty.attr _1 _2 ) -# 24739 "parsing/parser.ml" + let _v : (Parsetree.core_type) = let _1 = + let _1 = +# 3878 "parsing/parser.mly" + ( Ptyp_object ([], Closed) ) +# 25286 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25295 "parsing/parser.ml" + + in + +# 3908 "parsing/parser.mly" + ( _1 ) +# 25301 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24747,47 +25309,60 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1; MenhirLib.EngineTypes.startp = _startpos__1_; MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in let _1 : (Longident.t) = Obj.magic _1 in + let _2 : unit = Obj.magic _2 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in + let _startpos = _startpos__2_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.module_type) = let _1 = + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _1 = + let cid = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 24770 "parsing/parser.ml" +# 25339 "parsing/parser.ml" in + let tys = +# 3922 "parsing/parser.mly" + ( [] ) +# 25345 "parsing/parser.ml" + in -# 1767 "parsing/parser.mly" - ( Pmty_ident _1 ) -# 24776 "parsing/parser.ml" +# 3882 "parsing/parser.mly" + ( Ptyp_class(cid, tys) ) +# 25350 "parsing/parser.ml" in + let _startpos__1_ = _startpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1069 "parsing/parser.mly" - ( mkmty ~loc:_sloc _1 ) -# 24785 "parsing/parser.ml" +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25360 "parsing/parser.ml" in -# 1778 "parsing/parser.mly" - ( _1 ) -# 24791 "parsing/parser.ml" +# 3908 "parsing/parser.mly" + ( _1 ) +# 25366 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24800,9 +25375,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -24810,39 +25385,63 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _3 : (Parsetree.module_type) = Obj.magic _3 in + let _1 : (Longident.t) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.module_type) = Obj.magic _1 in + let ty : (Parsetree.core_type) = Obj.magic ty in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.module_type) = let _1 = - let _1 = -# 1770 "parsing/parser.mly" - ( Pmty_functor(Named (mknoloc None, _1), _3) ) -# 24831 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__3_ in + let _startpos = _startpos_ty_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 25411 "parsing/parser.ml" + + in + let tys = + let _1 = +# 3928 "parsing/parser.mly" + ( [ty] ) +# 25418 "parsing/parser.ml" + in + +# 3924 "parsing/parser.mly" + ( _1 ) +# 25423 "parsing/parser.ml" + + in + +# 3882 "parsing/parser.mly" + ( Ptyp_class(cid, tys) ) +# 25429 "parsing/parser.ml" + + in + let _startpos__1_ = _startpos_ty_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1069 "parsing/parser.mly" - ( mkmty ~loc:_sloc _1 ) -# 24840 "parsing/parser.ml" +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25439 "parsing/parser.ml" in -# 1778 "parsing/parser.mly" - ( _1 ) -# 24846 "parsing/parser.ml" +# 3908 "parsing/parser.mly" + ( _1 ) +# 25445 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24855,63 +25454,102 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; MenhirLib.EngineTypes.startp = _startpos__2_; MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; } = _menhir_stack in - let xs : (Parsetree.with_constraint list) = Obj.magic xs in + let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.module_type) = Obj.magic _1 in + let _3 : unit = Obj.magic _3 in + let xs : (Parsetree.core_type list) = Obj.magic xs in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.module_type) = let _1 = + let _endpos = _endpos__1_inlined1_ in + let _v : (Parsetree.core_type) = let _1 = let _1 = - let _3 = - let xs = + let cid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 25505 "parsing/parser.ml" + + in + let tys = + let _1 = + let tys = + let xs = # 253 "" ( List.rev xs ) -# 24888 "parsing/parser.ml" - in - -# 1158 "parsing/parser.mly" +# 25514 "parsing/parser.ml" + in + +# 1257 "parsing/parser.mly" ( xs ) -# 24893 "parsing/parser.ml" +# 25519 "parsing/parser.ml" + + in + +# 3930 "parsing/parser.mly" + ( tys ) +# 25525 "parsing/parser.ml" + + in + +# 3924 "parsing/parser.mly" + ( _1 ) +# 25531 "parsing/parser.ml" in -# 1772 "parsing/parser.mly" - ( Pmty_with(_1, _3) ) -# 24899 "parsing/parser.ml" +# 3882 "parsing/parser.mly" + ( Ptyp_class(cid, tys) ) +# 25537 "parsing/parser.ml" in - let _endpos__1_ = _endpos_xs_ in + let _endpos__1_ = _endpos__1_inlined1_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1069 "parsing/parser.mly" - ( mkmty ~loc:_sloc _1 ) -# 24909 "parsing/parser.ml" +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25547 "parsing/parser.ml" in -# 1778 "parsing/parser.mly" - ( _1 ) -# 24915 "parsing/parser.ml" +# 3908 "parsing/parser.mly" + ( _1 ) +# 25553 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24923,35 +25561,50 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; } = _menhir_stack in - let _1 : (Parsetree.extension) = Obj.magic _1 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.row_field) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.module_type) = let _1 = + let _endpos = _endpos__3_ in + let _v : (Parsetree.core_type) = let _1 = let _1 = -# 1776 "parsing/parser.mly" - ( Pmty_extension _1 ) -# 24941 "parsing/parser.ml" +# 3885 "parsing/parser.mly" + ( Ptyp_variant([_2], Closed, None) ) +# 25593 "parsing/parser.ml" in + let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1069 "parsing/parser.mly" - ( mkmty ~loc:_sloc _1 ) -# 24949 "parsing/parser.ml" +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25602 "parsing/parser.ml" in -# 1778 "parsing/parser.mly" - ( _1 ) -# 24955 "parsing/parser.ml" +# 3908 "parsing/parser.mly" + ( _1 ) +# 25608 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24964,97 +25617,77 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = typ; - MenhirLib.EngineTypes.startp = _startpos_typ_; - MenhirLib.EngineTypes.endp = _endpos_typ_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ext; - MenhirLib.EngineTypes.startp = _startpos_ext_; - MenhirLib.EngineTypes.endp = _endpos_ext_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let typ : (Parsetree.module_type option) = Obj.magic typ in - let _1_inlined2 : (Asttypes.label) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in + let _4 : unit = Obj.magic _4 in + let xs : (Parsetree.row_field list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.module_type_declaration * string Asttypes.loc option) = let attrs2 = - let _1 = _1_inlined3 in - -# 4224 "parsing/parser.mly" + let _endpos = _endpos__4_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let _3 = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 25658 "parsing/parser.ml" + in + +# 1229 "parsing/parser.mly" + ( xs ) +# 25663 "parsing/parser.ml" + + in + +# 3939 "parsing/parser.mly" ( _1 ) -# 25024 "parsing/parser.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in +# 25669 "parsing/parser.ml" + + in + +# 3887 "parsing/parser.mly" + ( Ptyp_variant(_3, Closed, None) ) +# 25675 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__4_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 25036 "parsing/parser.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" - ( _1 ) -# 25044 "parsing/parser.ml" +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25685 "parsing/parser.ml" in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1692 "parsing/parser.mly" - ( - let attrs = attrs1 @ attrs2 in - let loc = make_loc _sloc in - let docs = symbol_docs _sloc in - Mtd.mk id ?typ ~attrs ~loc ~docs, ext - ) -# 25058 "parsing/parser.ml" +# 3908 "parsing/parser.mly" + ( _1 ) +# 25691 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25067,190 +25700,84 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = typ; - MenhirLib.EngineTypes.startp = _startpos_typ_; - MenhirLib.EngineTypes.endp = _endpos_typ_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ext; - MenhirLib.EngineTypes.startp = _startpos_ext_; - MenhirLib.EngineTypes.endp = _endpos_ext_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let typ : (Parsetree.module_type) = Obj.magic typ in - let _6 : unit = Obj.magic _6 in - let _1_inlined2 : (Asttypes.label) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in - let _2 : unit = Obj.magic _2 in + let _5 : unit = Obj.magic _5 in + let xs : (Parsetree.row_field list) = Obj.magic xs in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.row_field) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.module_type_declaration * string Asttypes.loc option) = let attrs2 = - let _1 = _1_inlined3 in - -# 4224 "parsing/parser.mly" - ( _1 ) -# 25134 "parsing/parser.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 25146 "parsing/parser.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 4228 "parsing/parser.mly" + let _endpos = _endpos__5_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let _4 = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 25748 "parsing/parser.ml" + in + +# 1229 "parsing/parser.mly" + ( xs ) +# 25753 "parsing/parser.ml" + + in + +# 3939 "parsing/parser.mly" ( _1 ) -# 25154 "parsing/parser.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1955 "parsing/parser.mly" - ( - let attrs = attrs1 @ attrs2 in - let loc = make_loc _sloc in - let docs = symbol_docs _sloc in - Mtd.mk id ~typ ~attrs ~loc ~docs, ext - ) -# 25168 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Longident.t) = -# 3993 "parsing/parser.mly" - ( _1 ) -# 25193 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Asttypes.mutable_flag) = -# 4074 "parsing/parser.mly" - ( Immutable ) -# 25211 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Asttypes.mutable_flag) = -# 4075 "parsing/parser.mly" - ( Mutable ) -# 25236 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Asttypes.mutable_flag * Asttypes.global_flag) = -# 4078 "parsing/parser.mly" - ( Immutable, Nothing ) -# 25254 "parsing/parser.ml" +# 25759 "parsing/parser.ml" + + in + +# 3889 "parsing/parser.mly" + ( Ptyp_variant(_2 :: _4, Closed, None) ) +# 25765 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25775 "parsing/parser.ml" + + in + +# 3908 "parsing/parser.mly" + ( _1 ) +# 25781 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25262,20 +25789,78 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; } = _menhir_stack in + let _4 : unit = Obj.magic _4 in + let xs : (Parsetree.row_field list) = Obj.magic xs in + let _2 : (unit option) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Asttypes.mutable_flag * Asttypes.global_flag) = -# 4079 "parsing/parser.mly" - ( Mutable, Nothing ) -# 25279 "parsing/parser.ml" + let _endpos = _endpos__4_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let _3 = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 25831 "parsing/parser.ml" + in + +# 1229 "parsing/parser.mly" + ( xs ) +# 25836 "parsing/parser.ml" + + in + +# 3939 "parsing/parser.mly" + ( _1 ) +# 25842 "parsing/parser.ml" + + in + +# 3891 "parsing/parser.mly" + ( Ptyp_variant(_3, Open, None) ) +# 25848 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25858 "parsing/parser.ml" + + in + +# 3908 "parsing/parser.mly" + ( _1 ) +# 25864 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25287,20 +25872,43 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Asttypes.mutable_flag * Asttypes.global_flag) = -# 4080 "parsing/parser.mly" - ( Immutable, Global ) -# 25304 "parsing/parser.ml" + let _endpos = _endpos__2_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = +# 3893 "parsing/parser.mly" + ( Ptyp_variant([], Open, None) ) +# 25897 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25906 "parsing/parser.ml" + + in + +# 3908 "parsing/parser.mly" + ( _1 ) +# 25912 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25312,38 +25920,78 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; } = _menhir_stack in + let _4 : unit = Obj.magic _4 in + let xs : (Parsetree.row_field list) = Obj.magic xs in + let _2 : (unit option) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Asttypes.mutable_flag * Asttypes.global_flag) = -# 4081 "parsing/parser.mly" - ( Immutable, Nonlocal ) -# 25329 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 4094 "parsing/parser.mly" - ( Immutable, Concrete ) -# 25347 "parsing/parser.ml" + let _endpos = _endpos__4_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let _3 = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 25962 "parsing/parser.ml" + in + +# 1229 "parsing/parser.mly" + ( xs ) +# 25967 "parsing/parser.ml" + + in + +# 3939 "parsing/parser.mly" + ( _1 ) +# 25973 "parsing/parser.ml" + + in + +# 3895 "parsing/parser.mly" + ( Ptyp_variant(_3, Closed, Some []) ) +# 25979 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25989 "parsing/parser.ml" + + in + +# 3908 "parsing/parser.mly" + ( _1 ) +# 25995 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25355,20 +26003,112 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs_inlined1; + MenhirLib.EngineTypes.startp = _startpos_xs_inlined1_; + MenhirLib.EngineTypes.endp = _endpos_xs_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; } = _menhir_stack in + let _6 : unit = Obj.magic _6 in + let xs_inlined1 : (Asttypes.label list) = Obj.magic xs_inlined1 in + let _4 : unit = Obj.magic _4 in + let xs : (Parsetree.row_field list) = Obj.magic xs in + let _2 : (unit option) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 4096 "parsing/parser.mly" - ( Mutable, Concrete ) -# 25372 "parsing/parser.ml" + let _endpos = _endpos__6_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let _5 = + let xs = xs_inlined1 in + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 26060 "parsing/parser.ml" + in + +# 1197 "parsing/parser.mly" + ( xs ) +# 26065 "parsing/parser.ml" + + in + +# 3967 "parsing/parser.mly" + ( _1 ) +# 26071 "parsing/parser.ml" + + in + let _3 = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 26079 "parsing/parser.ml" + in + +# 1229 "parsing/parser.mly" + ( xs ) +# 26084 "parsing/parser.ml" + + in + +# 3939 "parsing/parser.mly" + ( _1 ) +# 26090 "parsing/parser.ml" + + in + +# 3897 "parsing/parser.mly" + ( Ptyp_variant(_3, Closed, Some _5) ) +# 26096 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__6_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 26106 "parsing/parser.ml" + + in + +# 3908 "parsing/parser.mly" + ( _1 ) +# 26112 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25386,46 +26126,29 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : unit = Obj.magic _1 in + let _1 : (Parsetree.extension) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 4098 "parsing/parser.mly" - ( Immutable, Virtual ) -# 25397 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _2 : unit = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 4101 "parsing/parser.mly" - ( Mutable, Virtual ) -# 25429 "parsing/parser.ml" + let _v : (Parsetree.core_type) = let _1 = + let _1 = +# 3899 "parsing/parser.mly" + ( Ptyp_extension _1 ) +# 26138 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 26146 "parsing/parser.ml" + + in + +# 3908 "parsing/parser.mly" + ( _1 ) +# 26152 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25438,26 +26161,73 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = lay; + MenhirLib.EngineTypes.startp = _startpos_lay_; + MenhirLib.EngineTypes.endp = _endpos_lay_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = id; + MenhirLib.EngineTypes.startp = _startpos_id_; + MenhirLib.EngineTypes.endp = _endpos_id_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let _2 : unit = Obj.magic _2 in + let _5 : unit = Obj.magic _5 in + let lay : (Parsetree.core_type) = Obj.magic lay in + let _3 : unit = Obj.magic _3 in + let id : ( +# 909 "parsing/parser.mly" + (string) +# 26200 "parsing/parser.ml" + ) = Obj.magic id in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 4101 "parsing/parser.mly" - ( Mutable, Virtual ) -# 25461 "parsing/parser.ml" + let _endpos = _endpos__5_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let _loc_id_ = (_startpos_id_, _endpos_id_) in + +# 3901 "parsing/parser.mly" + ( let loc = _loc_id_ in + Ptyp_layout(mktyp ~loc + (Ptyp_constr(mkrhs (Lident id) loc, [])), + check_layout_from_type lay) ) +# 26215 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 26225 "parsing/parser.ml" + + in + +# 3908 "parsing/parser.mly" + ( _1 ) +# 26231 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25470,26 +26240,63 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = lay; + MenhirLib.EngineTypes.startp = _startpos_lay_; + MenhirLib.EngineTypes.endp = _endpos_lay_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let _2 : (Asttypes.label) = Obj.magic _2 in + let _5 : unit = Obj.magic _5 in + let lay : (Parsetree.core_type) = Obj.magic lay in + let _3 : unit = Obj.magic _3 in + let ty : (Parsetree.core_type) = Obj.magic ty in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Asttypes.label) = -# 4045 "parsing/parser.mly" - ( _2 ) -# 25493 "parsing/parser.ml" + let _endpos = _endpos__5_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = +# 3906 "parsing/parser.mly" + ( Ptyp_layout(ty, check_layout_from_type lay) ) +# 26285 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1132 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 26294 "parsing/parser.ml" + + in + +# 3908 "parsing/parser.mly" + ( _1 ) +# 26300 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25508,9 +26315,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 25514 "parsing/parser.ml" +# 26321 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -25520,15 +26327,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 25526 "parsing/parser.ml" +# 26333 "parsing/parser.ml" in # 221 "" ( [ x ] ) -# 25532 "parsing/parser.ml" +# 26339 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25554,9 +26361,9 @@ module Tables = struct } = _menhir_stack in let xs : (string Asttypes.loc list) = Obj.magic xs in let _1 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 25560 "parsing/parser.ml" +# 26367 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -25566,15 +26373,72 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 25572 "parsing/parser.ml" +# 26379 "parsing/parser.ml" in # 223 "" ( x :: xs ) -# 25578 "parsing/parser.ml" +# 26385 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let x : (string Asttypes.loc * Asttypes.layout_annotation option) = Obj.magic x in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : ((string Asttypes.loc * Asttypes.layout_annotation option) list) = +# 221 "" + ( [ x ] ) +# 26410 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let xs : ((string Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in + let x : (string Asttypes.loc * Asttypes.layout_annotation option) = Obj.magic x in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : ((string Asttypes.loc * Asttypes.layout_annotation option) list) = +# 223 "" + ( x :: xs ) +# 26442 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25593,22 +26457,22 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 878 "parsing/parser.mly" +# 949 "parsing/parser.mly" (string * Location.t * string option) -# 25599 "parsing/parser.ml" +# 26463 "parsing/parser.ml" ) = Obj.magic s in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : (string list) = let x = -# 4041 "parsing/parser.mly" +# 4182 "parsing/parser.mly" ( let body, _, _ = s in body ) -# 25607 "parsing/parser.ml" +# 26471 "parsing/parser.ml" in # 221 "" ( [ x ] ) -# 25612 "parsing/parser.ml" +# 26476 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25634,22 +26498,22 @@ module Tables = struct } = _menhir_stack in let xs : (string list) = Obj.magic xs in let s : ( -# 878 "parsing/parser.mly" +# 949 "parsing/parser.mly" (string * Location.t * string option) -# 25640 "parsing/parser.ml" +# 26504 "parsing/parser.ml" ) = Obj.magic s in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_s_ in let _endpos = _endpos_xs_ in let _v : (string list) = let x = -# 4041 "parsing/parser.mly" +# 4182 "parsing/parser.mly" ( let body, _, _ = s in body ) -# 25648 "parsing/parser.ml" +# 26512 "parsing/parser.ml" in # 223 "" ( x :: xs ) -# 25653 "parsing/parser.ml" +# 26517 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25672,14 +26536,14 @@ module Tables = struct let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 4070 "parsing/parser.mly" +# 4211 "parsing/parser.mly" ( Public ) -# 25678 "parsing/parser.ml" +# 26542 "parsing/parser.ml" in -# 3293 "parsing/parser.mly" +# 3386 "parsing/parser.mly" ( (Ptype_abstract, priv, Some ty) ) -# 25683 "parsing/parser.ml" +# 26547 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25709,14 +26573,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 4071 "parsing/parser.mly" +# 4212 "parsing/parser.mly" ( Private ) -# 25715 "parsing/parser.ml" +# 26579 "parsing/parser.ml" in -# 3293 "parsing/parser.mly" +# 3386 "parsing/parser.mly" ( (Ptype_abstract, priv, Some ty) ) -# 25720 "parsing/parser.ml" +# 26584 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25739,26 +26603,26 @@ module Tables = struct let _startpos = _startpos_cs_ in let _endpos = _endpos_cs_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 4070 "parsing/parser.mly" +# 4211 "parsing/parser.mly" ( Public ) -# 25745 "parsing/parser.ml" +# 26609 "parsing/parser.ml" in let oty = let _1 = # 124 "" ( None ) -# 25751 "parsing/parser.ml" +# 26615 "parsing/parser.ml" in -# 3309 "parsing/parser.mly" +# 3402 "parsing/parser.mly" ( _1 ) -# 25756 "parsing/parser.ml" +# 26620 "parsing/parser.ml" in -# 3297 "parsing/parser.mly" +# 3390 "parsing/parser.mly" ( (Ptype_variant cs, priv, oty) ) -# 25762 "parsing/parser.ml" +# 26626 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25788,26 +26652,26 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_cs_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 4071 "parsing/parser.mly" +# 4212 "parsing/parser.mly" ( Private ) -# 25794 "parsing/parser.ml" +# 26658 "parsing/parser.ml" in let oty = let _1 = # 124 "" ( None ) -# 25800 "parsing/parser.ml" +# 26664 "parsing/parser.ml" in -# 3309 "parsing/parser.mly" +# 3402 "parsing/parser.mly" ( _1 ) -# 25805 "parsing/parser.ml" +# 26669 "parsing/parser.ml" in -# 3297 "parsing/parser.mly" +# 3390 "parsing/parser.mly" ( (Ptype_variant cs, priv, oty) ) -# 25811 "parsing/parser.ml" +# 26675 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25844,33 +26708,33 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_cs_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 4070 "parsing/parser.mly" +# 4211 "parsing/parser.mly" ( Public ) -# 25850 "parsing/parser.ml" +# 26714 "parsing/parser.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 25857 "parsing/parser.ml" +# 26721 "parsing/parser.ml" in # 126 "" ( Some x ) -# 25862 "parsing/parser.ml" +# 26726 "parsing/parser.ml" in -# 3309 "parsing/parser.mly" +# 3402 "parsing/parser.mly" ( _1 ) -# 25868 "parsing/parser.ml" +# 26732 "parsing/parser.ml" in -# 3297 "parsing/parser.mly" +# 3390 "parsing/parser.mly" ( (Ptype_variant cs, priv, oty) ) -# 25874 "parsing/parser.ml" +# 26738 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25914,33 +26778,33 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_cs_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 4071 "parsing/parser.mly" +# 4212 "parsing/parser.mly" ( Private ) -# 25920 "parsing/parser.ml" +# 26784 "parsing/parser.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 25927 "parsing/parser.ml" +# 26791 "parsing/parser.ml" in # 126 "" ( Some x ) -# 25932 "parsing/parser.ml" +# 26796 "parsing/parser.ml" in -# 3309 "parsing/parser.mly" +# 3402 "parsing/parser.mly" ( _1 ) -# 25938 "parsing/parser.ml" +# 26802 "parsing/parser.ml" in -# 3297 "parsing/parser.mly" +# 3390 "parsing/parser.mly" ( (Ptype_variant cs, priv, oty) ) -# 25944 "parsing/parser.ml" +# 26808 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25963,26 +26827,26 @@ module Tables = struct let _startpos = _startpos__3_ in let _endpos = _endpos__3_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 4070 "parsing/parser.mly" +# 4211 "parsing/parser.mly" ( Public ) -# 25969 "parsing/parser.ml" +# 26833 "parsing/parser.ml" in let oty = let _1 = # 124 "" ( None ) -# 25975 "parsing/parser.ml" +# 26839 "parsing/parser.ml" in -# 3309 "parsing/parser.mly" +# 3402 "parsing/parser.mly" ( _1 ) -# 25980 "parsing/parser.ml" +# 26844 "parsing/parser.ml" in -# 3301 "parsing/parser.mly" +# 3394 "parsing/parser.mly" ( (Ptype_open, priv, oty) ) -# 25986 "parsing/parser.ml" +# 26850 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26012,26 +26876,26 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 4071 "parsing/parser.mly" +# 4212 "parsing/parser.mly" ( Private ) -# 26018 "parsing/parser.ml" +# 26882 "parsing/parser.ml" in let oty = let _1 = # 124 "" ( None ) -# 26024 "parsing/parser.ml" +# 26888 "parsing/parser.ml" in -# 3309 "parsing/parser.mly" +# 3402 "parsing/parser.mly" ( _1 ) -# 26029 "parsing/parser.ml" +# 26893 "parsing/parser.ml" in -# 3301 "parsing/parser.mly" +# 3394 "parsing/parser.mly" ( (Ptype_open, priv, oty) ) -# 26035 "parsing/parser.ml" +# 26899 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26068,33 +26932,33 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos__3_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 4070 "parsing/parser.mly" +# 4211 "parsing/parser.mly" ( Public ) -# 26074 "parsing/parser.ml" +# 26938 "parsing/parser.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 26081 "parsing/parser.ml" +# 26945 "parsing/parser.ml" in # 126 "" ( Some x ) -# 26086 "parsing/parser.ml" +# 26950 "parsing/parser.ml" in -# 3309 "parsing/parser.mly" +# 3402 "parsing/parser.mly" ( _1 ) -# 26092 "parsing/parser.ml" +# 26956 "parsing/parser.ml" in -# 3301 "parsing/parser.mly" +# 3394 "parsing/parser.mly" ( (Ptype_open, priv, oty) ) -# 26098 "parsing/parser.ml" +# 26962 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26138,33 +27002,33 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos__3_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 4071 "parsing/parser.mly" +# 4212 "parsing/parser.mly" ( Private ) -# 26144 "parsing/parser.ml" +# 27008 "parsing/parser.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 26151 "parsing/parser.ml" +# 27015 "parsing/parser.ml" in # 126 "" ( Some x ) -# 26156 "parsing/parser.ml" +# 27020 "parsing/parser.ml" in -# 3309 "parsing/parser.mly" +# 3402 "parsing/parser.mly" ( _1 ) -# 26162 "parsing/parser.ml" +# 27026 "parsing/parser.ml" in -# 3301 "parsing/parser.mly" +# 3394 "parsing/parser.mly" ( (Ptype_open, priv, oty) ) -# 26168 "parsing/parser.ml" +# 27032 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26201,26 +27065,26 @@ module Tables = struct let _startpos = _startpos__3_ in let _endpos = _endpos__5_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 4070 "parsing/parser.mly" +# 4211 "parsing/parser.mly" ( Public ) -# 26207 "parsing/parser.ml" +# 27071 "parsing/parser.ml" in let oty = let _1 = # 124 "" ( None ) -# 26213 "parsing/parser.ml" +# 27077 "parsing/parser.ml" in -# 3309 "parsing/parser.mly" +# 3402 "parsing/parser.mly" ( _1 ) -# 26218 "parsing/parser.ml" +# 27082 "parsing/parser.ml" in -# 3305 "parsing/parser.mly" +# 3398 "parsing/parser.mly" ( (Ptype_record ls, priv, oty) ) -# 26224 "parsing/parser.ml" +# 27088 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26264,26 +27128,26 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 4071 "parsing/parser.mly" +# 4212 "parsing/parser.mly" ( Private ) -# 26270 "parsing/parser.ml" +# 27134 "parsing/parser.ml" in let oty = let _1 = # 124 "" ( None ) -# 26276 "parsing/parser.ml" +# 27140 "parsing/parser.ml" in -# 3309 "parsing/parser.mly" +# 3402 "parsing/parser.mly" ( _1 ) -# 26281 "parsing/parser.ml" +# 27145 "parsing/parser.ml" in -# 3305 "parsing/parser.mly" +# 3398 "parsing/parser.mly" ( (Ptype_record ls, priv, oty) ) -# 26287 "parsing/parser.ml" +# 27151 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26334,33 +27198,33 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos__5_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 4070 "parsing/parser.mly" +# 4211 "parsing/parser.mly" ( Public ) -# 26340 "parsing/parser.ml" +# 27204 "parsing/parser.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 26347 "parsing/parser.ml" +# 27211 "parsing/parser.ml" in # 126 "" ( Some x ) -# 26352 "parsing/parser.ml" +# 27216 "parsing/parser.ml" in -# 3309 "parsing/parser.mly" +# 3402 "parsing/parser.mly" ( _1 ) -# 26358 "parsing/parser.ml" +# 27222 "parsing/parser.ml" in -# 3305 "parsing/parser.mly" +# 3398 "parsing/parser.mly" ( (Ptype_record ls, priv, oty) ) -# 26364 "parsing/parser.ml" +# 27228 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26418,33 +27282,33 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos__5_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 4071 "parsing/parser.mly" +# 4212 "parsing/parser.mly" ( Private ) -# 26424 "parsing/parser.ml" +# 27288 "parsing/parser.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 26431 "parsing/parser.ml" +# 27295 "parsing/parser.ml" in # 126 "" ( Some x ) -# 26436 "parsing/parser.ml" +# 27300 "parsing/parser.ml" in -# 3309 "parsing/parser.mly" +# 3402 "parsing/parser.mly" ( _1 ) -# 26442 "parsing/parser.ml" +# 27306 "parsing/parser.ml" in -# 3305 "parsing/parser.mly" +# 3398 "parsing/parser.mly" ( (Ptype_record ls, priv, oty) ) -# 26448 "parsing/parser.ml" +# 27312 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26497,37 +27361,37 @@ module Tables = struct let _v : (Parsetree.open_declaration * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined2 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 26503 "parsing/parser.ml" +# 27367 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 26512 "parsing/parser.ml" +# 27376 "parsing/parser.ml" in let override = -# 4128 "parsing/parser.mly" +# 4269 "parsing/parser.mly" ( Fresh ) -# 26518 "parsing/parser.ml" +# 27382 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1711 "parsing/parser.mly" +# 1782 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Opn.mk me ~override ~attrs ~loc ~docs, ext ) -# 26531 "parsing/parser.ml" +# 27395 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26587,37 +27451,37 @@ module Tables = struct let _v : (Parsetree.open_declaration * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined3 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 26593 "parsing/parser.ml" +# 27457 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in let attrs1 = let _1 = _1_inlined2 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 26602 "parsing/parser.ml" +# 27466 "parsing/parser.ml" in let override = -# 4129 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( Override ) -# 26608 "parsing/parser.ml" +# 27472 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1711 "parsing/parser.mly" +# 1782 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Opn.mk me ~override ~attrs ~loc ~docs, ext ) -# 26621 "parsing/parser.ml" +# 27485 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26670,9 +27534,9 @@ module Tables = struct let _v : (Parsetree.open_description * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined3 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 26676 "parsing/parser.ml" +# 27540 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -26682,36 +27546,36 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 26688 "parsing/parser.ml" +# 27552 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 26696 "parsing/parser.ml" +# 27560 "parsing/parser.ml" in let override = -# 4128 "parsing/parser.mly" +# 4269 "parsing/parser.mly" ( Fresh ) -# 26702 "parsing/parser.ml" +# 27566 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1726 "parsing/parser.mly" +# 1797 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Opn.mk id ~override ~attrs ~loc ~docs, ext ) -# 26715 "parsing/parser.ml" +# 27579 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26771,9 +27635,9 @@ module Tables = struct let _v : (Parsetree.open_description * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined4 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 26777 "parsing/parser.ml" +# 27641 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -26783,36 +27647,36 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 26789 "parsing/parser.ml" +# 27653 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined2 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 26797 "parsing/parser.ml" +# 27661 "parsing/parser.ml" in let override = -# 4129 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( Override ) -# 26803 "parsing/parser.ml" +# 27667 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1726 "parsing/parser.mly" +# 1797 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Opn.mk id ~override ~attrs ~loc ~docs, ext ) -# 26816 "parsing/parser.ml" +# 27680 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26831,17 +27695,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 864 "parsing/parser.mly" +# 935 "parsing/parser.mly" (string) -# 26837 "parsing/parser.ml" +# 27701 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3909 "parsing/parser.mly" +# 4043 "parsing/parser.mly" ( _1 ) -# 26845 "parsing/parser.ml" +# 27709 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26860,17 +27724,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 819 "parsing/parser.mly" +# 890 "parsing/parser.mly" (string) -# 26866 "parsing/parser.ml" +# 27730 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3910 "parsing/parser.mly" +# 4044 "parsing/parser.mly" ( _1 ) -# 26874 "parsing/parser.ml" +# 27738 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26889,17 +27753,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 820 "parsing/parser.mly" +# 891 "parsing/parser.mly" (string) -# 26895 "parsing/parser.ml" +# 27759 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3911 "parsing/parser.mly" +# 4045 "parsing/parser.mly" ( _1 ) -# 26903 "parsing/parser.ml" +# 27767 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26939,17 +27803,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) -# 26945 "parsing/parser.ml" +# 27809 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Asttypes.label) = -# 3912 "parsing/parser.mly" +# 4046 "parsing/parser.mly" ( "."^ _1 ^"(" ^ _3 ^ ")" ) -# 26953 "parsing/parser.ml" +# 27817 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26996,17 +27860,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) -# 27002 "parsing/parser.ml" +# 27866 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Asttypes.label) = -# 3913 "parsing/parser.mly" +# 4047 "parsing/parser.mly" ( "."^ _1 ^ "(" ^ _3 ^ ")<-" ) -# 27010 "parsing/parser.ml" +# 27874 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27046,17 +27910,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) -# 27052 "parsing/parser.ml" +# 27916 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Asttypes.label) = -# 3914 "parsing/parser.mly" +# 4048 "parsing/parser.mly" ( "."^ _1 ^"[" ^ _3 ^ "]" ) -# 27060 "parsing/parser.ml" +# 27924 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27103,17 +27967,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) -# 27109 "parsing/parser.ml" +# 27973 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Asttypes.label) = -# 3915 "parsing/parser.mly" +# 4049 "parsing/parser.mly" ( "."^ _1 ^ "[" ^ _3 ^ "]<-" ) -# 27117 "parsing/parser.ml" +# 27981 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27153,17 +28017,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) -# 27159 "parsing/parser.ml" +# 28023 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Asttypes.label) = -# 3916 "parsing/parser.mly" +# 4050 "parsing/parser.mly" ( "."^ _1 ^"{" ^ _3 ^ "}" ) -# 27167 "parsing/parser.ml" +# 28031 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27210,17 +28074,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) -# 27216 "parsing/parser.ml" +# 28080 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Asttypes.label) = -# 3917 "parsing/parser.mly" +# 4051 "parsing/parser.mly" ( "."^ _1 ^ "{" ^ _3 ^ "}<-" ) -# 27224 "parsing/parser.ml" +# 28088 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27239,17 +28103,272 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 875 "parsing/parser.mly" +# 946 "parsing/parser.mly" (string) -# 27245 "parsing/parser.ml" +# 28109 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3918 "parsing/parser.mly" +# 4052 "parsing/parser.mly" + ( _1 ) +# 28117 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Asttypes.label) = +# 4053 "parsing/parser.mly" + ( "!" ) +# 28142 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = op; + MenhirLib.EngineTypes.startp = _startpos_op_; + MenhirLib.EngineTypes.endp = _endpos_op_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let op : ( +# 884 "parsing/parser.mly" + (string) +# 28163 "parsing/parser.ml" + ) = Obj.magic op in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_op_ in + let _endpos = _endpos_op_ in + let _v : (Asttypes.label) = let _1 = +# 4057 "parsing/parser.mly" + ( op ) +# 28171 "parsing/parser.ml" + in + +# 4054 "parsing/parser.mly" + ( _1 ) +# 28176 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = op; + MenhirLib.EngineTypes.startp = _startpos_op_; + MenhirLib.EngineTypes.endp = _endpos_op_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let op : ( +# 885 "parsing/parser.mly" + (string) +# 28197 "parsing/parser.ml" + ) = Obj.magic op in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_op_ in + let _endpos = _endpos_op_ in + let _v : (Asttypes.label) = let _1 = +# 4058 "parsing/parser.mly" + ( op ) +# 28205 "parsing/parser.ml" + in + +# 4054 "parsing/parser.mly" + ( _1 ) +# 28210 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = op; + MenhirLib.EngineTypes.startp = _startpos_op_; + MenhirLib.EngineTypes.endp = _endpos_op_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let op : ( +# 886 "parsing/parser.mly" + (string) +# 28231 "parsing/parser.ml" + ) = Obj.magic op in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_op_ in + let _endpos = _endpos_op_ in + let _v : (Asttypes.label) = let _1 = +# 4059 "parsing/parser.mly" + ( op ) +# 28239 "parsing/parser.ml" + in + +# 4054 "parsing/parser.mly" + ( _1 ) +# 28244 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = op; + MenhirLib.EngineTypes.startp = _startpos_op_; + MenhirLib.EngineTypes.endp = _endpos_op_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let op : ( +# 887 "parsing/parser.mly" + (string) +# 28265 "parsing/parser.ml" + ) = Obj.magic op in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_op_ in + let _endpos = _endpos_op_ in + let _v : (Asttypes.label) = let _1 = +# 4060 "parsing/parser.mly" + ( op ) +# 28273 "parsing/parser.ml" + in + +# 4054 "parsing/parser.mly" + ( _1 ) +# 28278 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = op; + MenhirLib.EngineTypes.startp = _startpos_op_; + MenhirLib.EngineTypes.endp = _endpos_op_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let op : ( +# 888 "parsing/parser.mly" + (string) +# 28299 "parsing/parser.ml" + ) = Obj.magic op in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_op_ in + let _endpos = _endpos_op_ in + let _v : (Asttypes.label) = let _1 = +# 4061 "parsing/parser.mly" + ( op ) +# 28307 "parsing/parser.ml" + in + +# 4054 "parsing/parser.mly" + ( _1 ) +# 28312 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Asttypes.label) = let _1 = +# 4062 "parsing/parser.mly" + ("+") +# 28337 "parsing/parser.ml" + in + +# 4054 "parsing/parser.mly" + ( _1 ) +# 28342 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Asttypes.label) = let _1 = +# 4063 "parsing/parser.mly" + ("+.") +# 28367 "parsing/parser.ml" + in + +# 4054 "parsing/parser.mly" ( _1 ) -# 27253 "parsing/parser.ml" +# 28372 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27271,180 +28390,15 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Asttypes.label) = -# 3919 "parsing/parser.mly" - ( "!" ) -# 27278 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = op; - MenhirLib.EngineTypes.startp = _startpos_op_; - MenhirLib.EngineTypes.endp = _endpos_op_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let op : ( -# 813 "parsing/parser.mly" - (string) -# 27299 "parsing/parser.ml" - ) = Obj.magic op in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_op_ in - let _endpos = _endpos_op_ in - let _v : (Asttypes.label) = let _1 = -# 3923 "parsing/parser.mly" - ( op ) -# 27307 "parsing/parser.ml" - in - -# 3920 "parsing/parser.mly" - ( _1 ) -# 27312 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = op; - MenhirLib.EngineTypes.startp = _startpos_op_; - MenhirLib.EngineTypes.endp = _endpos_op_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let op : ( -# 814 "parsing/parser.mly" - (string) -# 27333 "parsing/parser.ml" - ) = Obj.magic op in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_op_ in - let _endpos = _endpos_op_ in - let _v : (Asttypes.label) = let _1 = -# 3924 "parsing/parser.mly" - ( op ) -# 27341 "parsing/parser.ml" - in - -# 3920 "parsing/parser.mly" - ( _1 ) -# 27346 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = op; - MenhirLib.EngineTypes.startp = _startpos_op_; - MenhirLib.EngineTypes.endp = _endpos_op_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let op : ( -# 815 "parsing/parser.mly" - (string) -# 27367 "parsing/parser.ml" - ) = Obj.magic op in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_op_ in - let _endpos = _endpos_op_ in - let _v : (Asttypes.label) = let _1 = -# 3925 "parsing/parser.mly" - ( op ) -# 27375 "parsing/parser.ml" - in - -# 3920 "parsing/parser.mly" - ( _1 ) -# 27380 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = op; - MenhirLib.EngineTypes.startp = _startpos_op_; - MenhirLib.EngineTypes.endp = _endpos_op_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let op : ( -# 816 "parsing/parser.mly" - (string) -# 27401 "parsing/parser.ml" - ) = Obj.magic op in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_op_ in - let _endpos = _endpos_op_ in - let _v : (Asttypes.label) = let _1 = -# 3926 "parsing/parser.mly" - ( op ) -# 27409 "parsing/parser.ml" - in - -# 3920 "parsing/parser.mly" - ( _1 ) -# 27414 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = op; - MenhirLib.EngineTypes.startp = _startpos_op_; - MenhirLib.EngineTypes.endp = _endpos_op_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let op : ( -# 817 "parsing/parser.mly" - (string) -# 27435 "parsing/parser.ml" - ) = Obj.magic op in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_op_ in - let _endpos = _endpos_op_ in let _v : (Asttypes.label) = let _1 = -# 3927 "parsing/parser.mly" - ( op ) -# 27443 "parsing/parser.ml" +# 4064 "parsing/parser.mly" + ("+=") +# 28397 "parsing/parser.ml" in -# 3920 "parsing/parser.mly" +# 4054 "parsing/parser.mly" ( _1 ) -# 27448 "parsing/parser.ml" +# 28402 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27467,14 +28421,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3928 "parsing/parser.mly" - ("+") -# 27473 "parsing/parser.ml" +# 4065 "parsing/parser.mly" + ("-") +# 28427 "parsing/parser.ml" in -# 3920 "parsing/parser.mly" +# 4054 "parsing/parser.mly" ( _1 ) -# 27478 "parsing/parser.ml" +# 28432 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27497,14 +28451,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3929 "parsing/parser.mly" - ("+.") -# 27503 "parsing/parser.ml" +# 4066 "parsing/parser.mly" + ("-.") +# 28457 "parsing/parser.ml" in -# 3920 "parsing/parser.mly" +# 4054 "parsing/parser.mly" ( _1 ) -# 27508 "parsing/parser.ml" +# 28462 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27527,14 +28481,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3930 "parsing/parser.mly" - ("+=") -# 27533 "parsing/parser.ml" +# 4067 "parsing/parser.mly" + ("*") +# 28487 "parsing/parser.ml" in -# 3920 "parsing/parser.mly" +# 4054 "parsing/parser.mly" ( _1 ) -# 27538 "parsing/parser.ml" +# 28492 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27557,14 +28511,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3931 "parsing/parser.mly" - ("-") -# 27563 "parsing/parser.ml" +# 4068 "parsing/parser.mly" + ("%") +# 28517 "parsing/parser.ml" in -# 3920 "parsing/parser.mly" +# 4054 "parsing/parser.mly" ( _1 ) -# 27568 "parsing/parser.ml" +# 28522 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27587,14 +28541,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3932 "parsing/parser.mly" - ("-.") -# 27593 "parsing/parser.ml" +# 4069 "parsing/parser.mly" + ("=") +# 28547 "parsing/parser.ml" in -# 3920 "parsing/parser.mly" +# 4054 "parsing/parser.mly" ( _1 ) -# 27598 "parsing/parser.ml" +# 28552 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27617,14 +28571,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3933 "parsing/parser.mly" - ("*") -# 27623 "parsing/parser.ml" +# 4070 "parsing/parser.mly" + ("<") +# 28577 "parsing/parser.ml" in -# 3920 "parsing/parser.mly" +# 4054 "parsing/parser.mly" ( _1 ) -# 27628 "parsing/parser.ml" +# 28582 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27647,14 +28601,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3934 "parsing/parser.mly" - ("%") -# 27653 "parsing/parser.ml" +# 4071 "parsing/parser.mly" + (">") +# 28607 "parsing/parser.ml" in -# 3920 "parsing/parser.mly" +# 4054 "parsing/parser.mly" ( _1 ) -# 27658 "parsing/parser.ml" +# 28612 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27677,14 +28631,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3935 "parsing/parser.mly" - ("=") -# 27683 "parsing/parser.ml" +# 4072 "parsing/parser.mly" + ("or") +# 28637 "parsing/parser.ml" in -# 3920 "parsing/parser.mly" +# 4054 "parsing/parser.mly" ( _1 ) -# 27688 "parsing/parser.ml" +# 28642 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27707,14 +28661,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3936 "parsing/parser.mly" - ("<") -# 27713 "parsing/parser.ml" +# 4073 "parsing/parser.mly" + ("||") +# 28667 "parsing/parser.ml" in -# 3920 "parsing/parser.mly" +# 4054 "parsing/parser.mly" ( _1 ) -# 27718 "parsing/parser.ml" +# 28672 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27737,14 +28691,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3937 "parsing/parser.mly" - (">") -# 27743 "parsing/parser.ml" +# 4074 "parsing/parser.mly" + ("&") +# 28697 "parsing/parser.ml" in -# 3920 "parsing/parser.mly" +# 4054 "parsing/parser.mly" ( _1 ) -# 27748 "parsing/parser.ml" +# 28702 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27767,14 +28721,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3938 "parsing/parser.mly" - ("or") -# 27773 "parsing/parser.ml" +# 4075 "parsing/parser.mly" + ("&&") +# 28727 "parsing/parser.ml" in -# 3920 "parsing/parser.mly" +# 4054 "parsing/parser.mly" ( _1 ) -# 27778 "parsing/parser.ml" +# 28732 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27797,14 +28751,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3939 "parsing/parser.mly" - ("||") -# 27803 "parsing/parser.ml" +# 4076 "parsing/parser.mly" + (":=") +# 28757 "parsing/parser.ml" in -# 3920 "parsing/parser.mly" +# 4054 "parsing/parser.mly" ( _1 ) -# 27808 "parsing/parser.ml" +# 28762 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27826,15 +28780,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Asttypes.label) = let _1 = -# 3940 "parsing/parser.mly" - ("&") -# 27833 "parsing/parser.ml" - in - -# 3920 "parsing/parser.mly" - ( _1 ) -# 27838 "parsing/parser.ml" + let _v : (bool) = +# 3958 "parsing/parser.mly" + ( true ) +# 28787 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27845,26 +28794,14 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : unit = Obj.magic _1 in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Asttypes.label) = let _1 = -# 3941 "parsing/parser.mly" - ("&&") -# 27863 "parsing/parser.ml" - in - -# 3920 "parsing/parser.mly" - ( _1 ) -# 27868 "parsing/parser.ml" + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (bool) = +# 3959 "parsing/parser.mly" + ( false ) +# 28805 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27875,26 +28812,14 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : unit = Obj.magic _1 in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Asttypes.label) = let _1 = -# 3942 "parsing/parser.mly" - (":=") -# 27893 "parsing/parser.ml" - in - -# 3920 "parsing/parser.mly" - ( _1 ) -# 27898 "parsing/parser.ml" + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (unit option) = +# 114 "" + ( None ) +# 28823 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27907,37 +28832,19 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (bool) = -# 3824 "parsing/parser.mly" - ( true ) -# 27923 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let x : unit = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (bool) = -# 3825 "parsing/parser.mly" - ( false ) -# 27941 "parsing/parser.ml" + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : (unit option) = +# 116 "" + ( Some x ) +# 28848 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27955,7 +28862,7 @@ module Tables = struct let _v : (unit option) = # 114 "" ( None ) -# 27959 "parsing/parser.ml" +# 28866 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27980,7 +28887,7 @@ module Tables = struct let _v : (unit option) = # 116 "" ( Some x ) -# 27984 "parsing/parser.ml" +# 28891 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27995,10 +28902,10 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : (unit option) = + let _v : (Parsetree.attribute option) = # 114 "" ( None ) -# 28002 "parsing/parser.ml" +# 28909 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28016,14 +28923,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_x_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let x : unit = Obj.magic x in + let x : (Parsetree.attribute) = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in - let _v : (unit option) = + let _v : (Parsetree.attribute option) = # 116 "" ( Some x ) -# 28027 "parsing/parser.ml" +# 28934 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28041,7 +28948,7 @@ module Tables = struct let _v : (string Asttypes.loc option) = # 114 "" ( None ) -# 28045 "parsing/parser.ml" +# 28952 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28066,9 +28973,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 28072 "parsing/parser.ml" +# 28979 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -28081,21 +28988,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 28087 "parsing/parser.ml" +# 28994 "parsing/parser.ml" in # 183 "" ( x ) -# 28093 "parsing/parser.ml" +# 29000 "parsing/parser.ml" in # 116 "" ( Some x ) -# 28099 "parsing/parser.ml" +# 29006 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28113,7 +29020,7 @@ module Tables = struct let _v : (Parsetree.core_type option) = # 114 "" ( None ) -# 28117 "parsing/parser.ml" +# 29024 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28145,12 +29052,12 @@ module Tables = struct let _v : (Parsetree.core_type option) = let x = # 183 "" ( x ) -# 28149 "parsing/parser.ml" +# 29056 "parsing/parser.ml" in # 116 "" ( Some x ) -# 28154 "parsing/parser.ml" +# 29061 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28168,7 +29075,7 @@ module Tables = struct let _v : (Parsetree.expression option) = # 114 "" ( None ) -# 28172 "parsing/parser.ml" +# 29079 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28200,12 +29107,12 @@ module Tables = struct let _v : (Parsetree.expression option) = let x = # 183 "" ( x ) -# 28204 "parsing/parser.ml" +# 29111 "parsing/parser.ml" in # 116 "" ( Some x ) -# 28209 "parsing/parser.ml" +# 29116 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28223,7 +29130,7 @@ module Tables = struct let _v : (Parsetree.module_type option) = # 114 "" ( None ) -# 28227 "parsing/parser.ml" +# 29134 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28255,12 +29162,12 @@ module Tables = struct let _v : (Parsetree.module_type option) = let x = # 183 "" ( x ) -# 28259 "parsing/parser.ml" +# 29166 "parsing/parser.ml" in # 116 "" ( Some x ) -# 28264 "parsing/parser.ml" +# 29171 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28278,7 +29185,7 @@ module Tables = struct let _v : (Parsetree.pattern option) = # 114 "" ( None ) -# 28282 "parsing/parser.ml" +# 29189 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28310,12 +29217,12 @@ module Tables = struct let _v : (Parsetree.pattern option) = let x = # 183 "" ( x ) -# 28314 "parsing/parser.ml" +# 29221 "parsing/parser.ml" in # 116 "" ( Some x ) -# 28319 "parsing/parser.ml" +# 29226 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28333,7 +29240,7 @@ module Tables = struct let _v : (Parsetree.expression option) = # 114 "" ( None ) -# 28337 "parsing/parser.ml" +# 29244 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28365,12 +29272,12 @@ module Tables = struct let _v : (Parsetree.expression option) = let x = # 183 "" ( x ) -# 28369 "parsing/parser.ml" +# 29276 "parsing/parser.ml" in # 116 "" ( Some x ) -# 28374 "parsing/parser.ml" +# 29281 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28388,7 +29295,7 @@ module Tables = struct let _v : ((Parsetree.core_type option * Parsetree.core_type option) option) = # 114 "" ( None ) -# 28392 "parsing/parser.ml" +# 29299 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28413,7 +29320,7 @@ module Tables = struct let _v : ((Parsetree.core_type option * Parsetree.core_type option) option) = # 116 "" ( Some x ) -# 28417 "parsing/parser.ml" +# 29324 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28432,17 +29339,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 857 "parsing/parser.mly" +# 928 "parsing/parser.mly" (string) -# 28438 "parsing/parser.ml" +# 29345 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4140 "parsing/parser.mly" +# 4281 "parsing/parser.mly" ( _1 ) -# 28446 "parsing/parser.ml" +# 29353 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28474,18 +29381,18 @@ module Tables = struct } = _menhir_stack in let _3 : unit = Obj.magic _3 in let _2 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 28480 "parsing/parser.ml" +# 29387 "parsing/parser.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (string) = -# 4141 "parsing/parser.mly" +# 4282 "parsing/parser.mly" ( _2 ) -# 28489 "parsing/parser.ml" +# 29396 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28539,9 +29446,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1475 "parsing/parser.mly" +# 1546 "parsing/parser.mly" ( mkmod ~loc:_sloc (Pmod_constraint(me, mty)) ) -# 28545 "parsing/parser.ml" +# 29452 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28594,9 +29501,9 @@ module Tables = struct let _v : (Parsetree.module_expr) = let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1477 "parsing/parser.mly" +# 1548 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__5_ ) -# 28600 "parsing/parser.ml" +# 29507 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28633,9 +29540,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.module_expr) = -# 1480 "parsing/parser.mly" +# 1551 "parsing/parser.mly" ( me (* TODO consider reloc *) ) -# 28639 "parsing/parser.ml" +# 29546 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28674,9 +29581,9 @@ module Tables = struct let _v : (Parsetree.module_expr) = let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1482 "parsing/parser.mly" +# 1553 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__3_ ) -# 28680 "parsing/parser.ml" +# 29587 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28727,25 +29634,25 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Parsetree.module_expr) = let e = -# 1499 "parsing/parser.mly" +# 1570 "parsing/parser.mly" ( e ) -# 28733 "parsing/parser.ml" +# 29640 "parsing/parser.ml" in let attrs = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 28740 "parsing/parser.ml" +# 29647 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1486 "parsing/parser.mly" +# 1557 "parsing/parser.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 28749 "parsing/parser.ml" +# 29656 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28816,11 +29723,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3799 "parsing/parser.mly" +# 3933 "parsing/parser.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 28824 "parsing/parser.ml" +# 29731 "parsing/parser.ml" in let _endpos_ty_ = _endpos__1_ in @@ -28828,26 +29735,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1501 "parsing/parser.mly" +# 1572 "parsing/parser.mly" ( ghexp ~loc:_loc (Pexp_constraint (e, ty)) ) -# 28834 "parsing/parser.ml" +# 29741 "parsing/parser.ml" in let attrs = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 28842 "parsing/parser.ml" +# 29749 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1486 "parsing/parser.mly" +# 1557 "parsing/parser.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 28851 "parsing/parser.ml" +# 29758 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28933,11 +29840,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3799 "parsing/parser.mly" +# 3933 "parsing/parser.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 28941 "parsing/parser.ml" +# 29848 "parsing/parser.ml" in let _endpos_ty2_ = _endpos__1_inlined1_ in @@ -28946,37 +29853,37 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3799 "parsing/parser.mly" +# 3933 "parsing/parser.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 28954 "parsing/parser.ml" +# 29861 "parsing/parser.ml" in let _endpos = _endpos_ty2_ in let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1503 "parsing/parser.mly" +# 1574 "parsing/parser.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, Some ty1, ty2)) ) -# 28963 "parsing/parser.ml" +# 29870 "parsing/parser.ml" in let attrs = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 28971 "parsing/parser.ml" +# 29878 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1486 "parsing/parser.mly" +# 1557 "parsing/parser.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 28980 "parsing/parser.ml" +# 29887 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29047,11 +29954,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3799 "parsing/parser.mly" +# 3933 "parsing/parser.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 29055 "parsing/parser.ml" +# 29962 "parsing/parser.ml" in let _endpos_ty2_ = _endpos__1_ in @@ -29059,26 +29966,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1505 "parsing/parser.mly" +# 1576 "parsing/parser.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, None, ty2)) ) -# 29065 "parsing/parser.ml" +# 29972 "parsing/parser.ml" in let attrs = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 29073 "parsing/parser.ml" +# 29980 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1486 "parsing/parser.mly" +# 1557 "parsing/parser.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 29082 "parsing/parser.ml" +# 29989 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29138,17 +30045,17 @@ module Tables = struct let _v : (Parsetree.module_expr) = let _3 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 29144 "parsing/parser.ml" +# 30051 "parsing/parser.ml" in let _loc__6_ = (_startpos__6_, _endpos__6_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1488 "parsing/parser.mly" +# 1559 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__6_ ) -# 29152 "parsing/parser.ml" +# 30059 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29208,17 +30115,17 @@ module Tables = struct let _v : (Parsetree.module_expr) = let _3 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 29214 "parsing/parser.ml" +# 30121 "parsing/parser.ml" in let _loc__6_ = (_startpos__6_, _endpos__6_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1490 "parsing/parser.mly" +# 1561 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__6_ ) -# 29222 "parsing/parser.ml" +# 30129 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29271,17 +30178,17 @@ module Tables = struct let _v : (Parsetree.module_expr) = let _3 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 29277 "parsing/parser.ml" +# 30184 "parsing/parser.ml" in let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1492 "parsing/parser.mly" +# 1563 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__5_ ) -# 29285 "parsing/parser.ml" +# 30192 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29304,9 +30211,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = -# 3337 "parsing/parser.mly" +# 3441 "parsing/parser.mly" ( _1 ) -# 29310 "parsing/parser.ml" +# 30217 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29319,40 +30226,33 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = layout_annot; + MenhirLib.EngineTypes.startp = _startpos_layout_annot_; + MenhirLib.EngineTypes.endp = _endpos_layout_annot_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _4 : (Parsetree.attribute) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in + let layout_annot : (Parsetree.attribute) = Obj.magic layout_annot in let _2 : (Parsetree.core_type) = Obj.magic _2 in let _1 : (Asttypes.variance * Asttypes.injectivity) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in + let _endpos = _endpos_layout_annot_ in let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = -# 3339 "parsing/parser.mly" - ( {_2 with ptyp_attributes = [_4]}, _1 ) -# 29356 "parsing/parser.ml" +# 3443 "parsing/parser.mly" + ( Typ.attr _2 layout_annot, _1 ) +# 30256 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29382,9 +30282,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1394 "parsing/parser.mly" +# 1465 "parsing/parser.mly" ( _1 ) -# 29388 "parsing/parser.ml" +# 30288 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29414,9 +30314,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1379 "parsing/parser.mly" +# 1450 "parsing/parser.mly" ( _1 ) -# 29420 "parsing/parser.ml" +# 30320 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29446,9 +30346,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.core_type) = -# 1354 "parsing/parser.mly" +# 1425 "parsing/parser.mly" ( _1 ) -# 29452 "parsing/parser.ml" +# 30352 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29478,9 +30378,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = -# 1359 "parsing/parser.mly" +# 1430 "parsing/parser.mly" ( _1 ) -# 29484 "parsing/parser.ml" +# 30384 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29510,9 +30410,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1384 "parsing/parser.mly" +# 1455 "parsing/parser.mly" ( _1 ) -# 29516 "parsing/parser.ml" +# 30416 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29542,9 +30442,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1389 "parsing/parser.mly" +# 1460 "parsing/parser.mly" ( _1 ) -# 29548 "parsing/parser.ml" +# 30448 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29574,9 +30474,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.module_expr) = -# 1349 "parsing/parser.mly" +# 1420 "parsing/parser.mly" ( _1 ) -# 29580 "parsing/parser.ml" +# 30480 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29606,9 +30506,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.module_type) = -# 1344 "parsing/parser.mly" +# 1415 "parsing/parser.mly" ( _1 ) -# 29612 "parsing/parser.ml" +# 30512 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29638,9 +30538,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1369 "parsing/parser.mly" +# 1440 "parsing/parser.mly" ( _1 ) -# 29644 "parsing/parser.ml" +# 30544 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29670,9 +30570,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.pattern) = -# 1364 "parsing/parser.mly" +# 1435 "parsing/parser.mly" ( _1 ) -# 29676 "parsing/parser.ml" +# 30576 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29702,9 +30602,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1374 "parsing/parser.mly" +# 1445 "parsing/parser.mly" ( _1 ) -# 29708 "parsing/parser.ml" +# 30608 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29746,15 +30646,15 @@ module Tables = struct let _loc__2_ = (_startpos__2_, _endpos__2_) in let _sloc = (_symbolstartpos, _endpos) in -# 3018 "parsing/parser.mly" +# 3109 "parsing/parser.mly" ( mkpat_cons ~loc:_sloc _loc__2_ (ghpat ~loc:_sloc (Ppat_tuple[_1;_3])) ) -# 29752 "parsing/parser.ml" +# 30652 "parsing/parser.ml" in -# 3006 "parsing/parser.mly" +# 3097 "parsing/parser.mly" ( _1 ) -# 29758 "parsing/parser.ml" +# 30658 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29784,14 +30684,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.pattern) = let _1 = -# 3020 "parsing/parser.mly" +# 3111 "parsing/parser.mly" ( Pat.attr _1 _2 ) -# 29790 "parsing/parser.ml" +# 30690 "parsing/parser.ml" in -# 3006 "parsing/parser.mly" +# 3097 "parsing/parser.mly" ( _1 ) -# 29795 "parsing/parser.ml" +# 30695 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29814,14 +30714,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = let _1 = -# 3022 "parsing/parser.mly" +# 3113 "parsing/parser.mly" ( _1 ) -# 29820 "parsing/parser.ml" +# 30720 "parsing/parser.ml" in -# 3006 "parsing/parser.mly" +# 3097 "parsing/parser.mly" ( _1 ) -# 29825 "parsing/parser.ml" +# 30725 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29866,15 +30766,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 29872 "parsing/parser.ml" +# 30772 "parsing/parser.ml" in -# 3025 "parsing/parser.mly" +# 3116 "parsing/parser.mly" ( Ppat_alias(_1, _3) ) -# 29878 "parsing/parser.ml" +# 30778 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -29882,21 +30782,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 29888 "parsing/parser.ml" +# 30788 "parsing/parser.ml" in -# 3036 "parsing/parser.mly" +# 3127 "parsing/parser.mly" ( _1 ) -# 29894 "parsing/parser.ml" +# 30794 "parsing/parser.ml" in -# 3006 "parsing/parser.mly" +# 3097 "parsing/parser.mly" ( _1 ) -# 29900 "parsing/parser.ml" +# 30800 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29937,9 +30837,9 @@ module Tables = struct let _1 = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3027 "parsing/parser.mly" +# 3118 "parsing/parser.mly" ( expecting _loc__3_ "identifier" ) -# 29943 "parsing/parser.ml" +# 30843 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -29947,21 +30847,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 29953 "parsing/parser.ml" +# 30853 "parsing/parser.ml" in -# 3036 "parsing/parser.mly" +# 3127 "parsing/parser.mly" ( _1 ) -# 29959 "parsing/parser.ml" +# 30859 "parsing/parser.ml" in -# 3006 "parsing/parser.mly" +# 3097 "parsing/parser.mly" ( _1 ) -# 29965 "parsing/parser.ml" +# 30865 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29986,29 +30886,29 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = -# 3029 "parsing/parser.mly" +# 3120 "parsing/parser.mly" ( Ppat_tuple(List.rev _1) ) -# 29992 "parsing/parser.ml" +# 30892 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 30000 "parsing/parser.ml" +# 30900 "parsing/parser.ml" in -# 3036 "parsing/parser.mly" +# 3127 "parsing/parser.mly" ( _1 ) -# 30006 "parsing/parser.ml" +# 30906 "parsing/parser.ml" in -# 3006 "parsing/parser.mly" +# 3097 "parsing/parser.mly" ( _1 ) -# 30012 "parsing/parser.ml" +# 30912 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30049,9 +30949,9 @@ module Tables = struct let _1 = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3031 "parsing/parser.mly" +# 3122 "parsing/parser.mly" ( expecting _loc__3_ "pattern" ) -# 30055 "parsing/parser.ml" +# 30955 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -30059,21 +30959,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 30065 "parsing/parser.ml" +# 30965 "parsing/parser.ml" in -# 3036 "parsing/parser.mly" +# 3127 "parsing/parser.mly" ( _1 ) -# 30071 "parsing/parser.ml" +# 30971 "parsing/parser.ml" in -# 3006 "parsing/parser.mly" +# 3097 "parsing/parser.mly" ( _1 ) -# 30077 "parsing/parser.ml" +# 30977 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30112,30 +31012,30 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = -# 3033 "parsing/parser.mly" +# 3124 "parsing/parser.mly" ( Ppat_or(_1, _3) ) -# 30118 "parsing/parser.ml" +# 31018 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 30127 "parsing/parser.ml" +# 31027 "parsing/parser.ml" in -# 3036 "parsing/parser.mly" +# 3127 "parsing/parser.mly" ( _1 ) -# 30133 "parsing/parser.ml" +# 31033 "parsing/parser.ml" in -# 3006 "parsing/parser.mly" +# 3097 "parsing/parser.mly" ( _1 ) -# 30139 "parsing/parser.ml" +# 31039 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30176,9 +31076,9 @@ module Tables = struct let _1 = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3035 "parsing/parser.mly" +# 3126 "parsing/parser.mly" ( expecting _loc__3_ "pattern" ) -# 30182 "parsing/parser.ml" +# 31082 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -30186,21 +31086,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 30192 "parsing/parser.ml" +# 31092 "parsing/parser.ml" in -# 3036 "parsing/parser.mly" +# 3127 "parsing/parser.mly" ( _1 ) -# 30198 "parsing/parser.ml" +# 31098 "parsing/parser.ml" in -# 3006 "parsing/parser.mly" +# 3097 "parsing/parser.mly" ( _1 ) -# 30204 "parsing/parser.ml" +# 31104 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30248,24 +31148,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 30254 "parsing/parser.ml" +# 31154 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 30260 "parsing/parser.ml" +# 31160 "parsing/parser.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3008 "parsing/parser.mly" +# 3099 "parsing/parser.mly" ( mkpat_attrs ~loc:_sloc (Ppat_exception _3) _2) -# 30269 "parsing/parser.ml" +# 31169 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30302,9 +31202,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.pattern list) = -# 3139 "parsing/parser.mly" +# 3230 "parsing/parser.mly" ( _3 :: _1 ) -# 30308 "parsing/parser.ml" +# 31208 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30341,9 +31241,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.pattern list) = -# 3140 "parsing/parser.mly" +# 3231 "parsing/parser.mly" ( [_3; _1] ) -# 30347 "parsing/parser.ml" +# 31247 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30381,9 +31281,9 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.pattern list) = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3141 "parsing/parser.mly" +# 3232 "parsing/parser.mly" ( expecting _loc__3_ "pattern" ) -# 30387 "parsing/parser.ml" +# 31287 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30420,9 +31320,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.pattern list) = -# 3139 "parsing/parser.mly" +# 3230 "parsing/parser.mly" ( _3 :: _1 ) -# 30426 "parsing/parser.ml" +# 31326 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30459,9 +31359,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.pattern list) = -# 3140 "parsing/parser.mly" +# 3231 "parsing/parser.mly" ( [_3; _1] ) -# 30465 "parsing/parser.ml" +# 31365 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30499,9 +31399,9 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.pattern list) = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3141 "parsing/parser.mly" +# 3232 "parsing/parser.mly" ( expecting _loc__3_ "pattern" ) -# 30505 "parsing/parser.ml" +# 31405 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30524,9 +31424,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = -# 3041 "parsing/parser.mly" +# 3132 "parsing/parser.mly" ( _1 ) -# 30530 "parsing/parser.ml" +# 31430 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30562,15 +31462,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 30568 "parsing/parser.ml" +# 31468 "parsing/parser.ml" in -# 3044 "parsing/parser.mly" +# 3135 "parsing/parser.mly" ( Ppat_construct(_1, Some ([], _2)) ) -# 30574 "parsing/parser.ml" +# 31474 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in @@ -30578,15 +31478,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 30584 "parsing/parser.ml" +# 31484 "parsing/parser.ml" in -# 3050 "parsing/parser.mly" +# 3141 "parsing/parser.mly" ( _1 ) -# 30590 "parsing/parser.ml" +# 31490 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30646,24 +31546,24 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let newtypes = -# 2760 "parsing/parser.mly" +# 2834 "parsing/parser.mly" ( xs ) -# 30652 "parsing/parser.ml" +# 31552 "parsing/parser.ml" in let constr = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 30661 "parsing/parser.ml" +# 31561 "parsing/parser.ml" in -# 3047 "parsing/parser.mly" +# 3138 "parsing/parser.mly" ( Ppat_construct(constr, Some (newtypes, pat)) ) -# 30667 "parsing/parser.ml" +# 31567 "parsing/parser.ml" in let _endpos__1_ = _endpos_pat_ in @@ -30671,15 +31571,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 30677 "parsing/parser.ml" +# 31577 "parsing/parser.ml" in -# 3050 "parsing/parser.mly" +# 3141 "parsing/parser.mly" ( _1 ) -# 30683 "parsing/parser.ml" +# 31583 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30710,24 +31610,24 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 3049 "parsing/parser.mly" +# 3140 "parsing/parser.mly" ( Ppat_variant(_1, Some _2) ) -# 30716 "parsing/parser.ml" +# 31616 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 30725 "parsing/parser.ml" +# 31625 "parsing/parser.ml" in -# 3050 "parsing/parser.mly" +# 3141 "parsing/parser.mly" ( _1 ) -# 30731 "parsing/parser.ml" +# 31631 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30775,24 +31675,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 30781 "parsing/parser.ml" +# 31681 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 30787 "parsing/parser.ml" +# 31687 "parsing/parser.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3052 "parsing/parser.mly" +# 3143 "parsing/parser.mly" ( mkpat_attrs ~loc:_sloc (Ppat_lazy _3) _2) -# 30796 "parsing/parser.ml" +# 31696 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30834,15 +31734,15 @@ module Tables = struct let _loc__2_ = (_startpos__2_, _endpos__2_) in let _sloc = (_symbolstartpos, _endpos) in -# 3018 "parsing/parser.mly" +# 3109 "parsing/parser.mly" ( mkpat_cons ~loc:_sloc _loc__2_ (ghpat ~loc:_sloc (Ppat_tuple[_1;_3])) ) -# 30840 "parsing/parser.ml" +# 31740 "parsing/parser.ml" in -# 3013 "parsing/parser.mly" +# 3104 "parsing/parser.mly" ( _1 ) -# 30846 "parsing/parser.ml" +# 31746 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30872,14 +31772,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.pattern) = let _1 = -# 3020 "parsing/parser.mly" +# 3111 "parsing/parser.mly" ( Pat.attr _1 _2 ) -# 30878 "parsing/parser.ml" +# 31778 "parsing/parser.ml" in -# 3013 "parsing/parser.mly" +# 3104 "parsing/parser.mly" ( _1 ) -# 30883 "parsing/parser.ml" +# 31783 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30902,14 +31802,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = let _1 = -# 3022 "parsing/parser.mly" +# 3113 "parsing/parser.mly" ( _1 ) -# 30908 "parsing/parser.ml" +# 31808 "parsing/parser.ml" in -# 3013 "parsing/parser.mly" +# 3104 "parsing/parser.mly" ( _1 ) -# 30913 "parsing/parser.ml" +# 31813 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30954,15 +31854,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 30960 "parsing/parser.ml" +# 31860 "parsing/parser.ml" in -# 3025 "parsing/parser.mly" +# 3116 "parsing/parser.mly" ( Ppat_alias(_1, _3) ) -# 30966 "parsing/parser.ml" +# 31866 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -30970,21 +31870,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 30976 "parsing/parser.ml" +# 31876 "parsing/parser.ml" in -# 3036 "parsing/parser.mly" +# 3127 "parsing/parser.mly" ( _1 ) -# 30982 "parsing/parser.ml" +# 31882 "parsing/parser.ml" in -# 3013 "parsing/parser.mly" +# 3104 "parsing/parser.mly" ( _1 ) -# 30988 "parsing/parser.ml" +# 31888 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31025,9 +31925,9 @@ module Tables = struct let _1 = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3027 "parsing/parser.mly" +# 3118 "parsing/parser.mly" ( expecting _loc__3_ "identifier" ) -# 31031 "parsing/parser.ml" +# 31931 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -31035,21 +31935,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 31041 "parsing/parser.ml" +# 31941 "parsing/parser.ml" in -# 3036 "parsing/parser.mly" +# 3127 "parsing/parser.mly" ( _1 ) -# 31047 "parsing/parser.ml" +# 31947 "parsing/parser.ml" in -# 3013 "parsing/parser.mly" +# 3104 "parsing/parser.mly" ( _1 ) -# 31053 "parsing/parser.ml" +# 31953 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31074,29 +31974,29 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = -# 3029 "parsing/parser.mly" +# 3120 "parsing/parser.mly" ( Ppat_tuple(List.rev _1) ) -# 31080 "parsing/parser.ml" +# 31980 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 31088 "parsing/parser.ml" +# 31988 "parsing/parser.ml" in -# 3036 "parsing/parser.mly" +# 3127 "parsing/parser.mly" ( _1 ) -# 31094 "parsing/parser.ml" +# 31994 "parsing/parser.ml" in -# 3013 "parsing/parser.mly" +# 3104 "parsing/parser.mly" ( _1 ) -# 31100 "parsing/parser.ml" +# 32000 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31137,9 +32037,9 @@ module Tables = struct let _1 = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3031 "parsing/parser.mly" +# 3122 "parsing/parser.mly" ( expecting _loc__3_ "pattern" ) -# 31143 "parsing/parser.ml" +# 32043 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -31147,21 +32047,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 31153 "parsing/parser.ml" +# 32053 "parsing/parser.ml" in -# 3036 "parsing/parser.mly" +# 3127 "parsing/parser.mly" ( _1 ) -# 31159 "parsing/parser.ml" +# 32059 "parsing/parser.ml" in -# 3013 "parsing/parser.mly" +# 3104 "parsing/parser.mly" ( _1 ) -# 31165 "parsing/parser.ml" +# 32065 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31200,30 +32100,30 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = -# 3033 "parsing/parser.mly" +# 3124 "parsing/parser.mly" ( Ppat_or(_1, _3) ) -# 31206 "parsing/parser.ml" +# 32106 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 31215 "parsing/parser.ml" +# 32115 "parsing/parser.ml" in -# 3036 "parsing/parser.mly" +# 3127 "parsing/parser.mly" ( _1 ) -# 31221 "parsing/parser.ml" +# 32121 "parsing/parser.ml" in -# 3013 "parsing/parser.mly" +# 3104 "parsing/parser.mly" ( _1 ) -# 31227 "parsing/parser.ml" +# 32127 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31264,9 +32164,9 @@ module Tables = struct let _1 = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3035 "parsing/parser.mly" +# 3126 "parsing/parser.mly" ( expecting _loc__3_ "pattern" ) -# 31270 "parsing/parser.ml" +# 32170 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -31274,21 +32174,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 31280 "parsing/parser.ml" +# 32180 "parsing/parser.ml" in -# 3036 "parsing/parser.mly" +# 3127 "parsing/parser.mly" ( _1 ) -# 31286 "parsing/parser.ml" +# 32186 "parsing/parser.ml" in -# 3013 "parsing/parser.mly" +# 3104 "parsing/parser.mly" ( _1 ) -# 31292 "parsing/parser.ml" +# 32192 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31307,9 +32207,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 31313 "parsing/parser.ml" +# 32213 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -31321,30 +32221,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 31327 "parsing/parser.ml" +# 32227 "parsing/parser.ml" in -# 2380 "parsing/parser.mly" +# 2451 "parsing/parser.mly" ( Ppat_var _1 ) -# 31333 "parsing/parser.ml" +# 32233 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 31342 "parsing/parser.ml" +# 32242 "parsing/parser.ml" in -# 2382 "parsing/parser.mly" +# 2453 "parsing/parser.mly" ( _1 ) -# 31348 "parsing/parser.ml" +# 32248 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31368,23 +32268,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 2381 "parsing/parser.mly" +# 2452 "parsing/parser.mly" ( Ppat_any ) -# 31374 "parsing/parser.ml" +# 32274 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 31382 "parsing/parser.ml" +# 32282 "parsing/parser.ml" in -# 2382 "parsing/parser.mly" +# 2453 "parsing/parser.mly" ( _1 ) -# 31388 "parsing/parser.ml" +# 32288 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31407,9 +32307,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.payload) = -# 4254 "parsing/parser.mly" +# 4395 "parsing/parser.mly" ( PStr _1 ) -# 31413 "parsing/parser.ml" +# 32313 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31439,9 +32339,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.payload) = -# 4255 "parsing/parser.mly" +# 4396 "parsing/parser.mly" ( PSig _2 ) -# 31445 "parsing/parser.ml" +# 32345 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31471,9 +32371,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.payload) = -# 4256 "parsing/parser.mly" +# 4397 "parsing/parser.mly" ( PTyp _2 ) -# 31477 "parsing/parser.ml" +# 32377 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31503,9 +32403,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.payload) = -# 4257 "parsing/parser.mly" +# 4398 "parsing/parser.mly" ( PPat (_2, None) ) -# 31509 "parsing/parser.ml" +# 32409 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31549,9 +32449,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.payload) = -# 4258 "parsing/parser.mly" +# 4399 "parsing/parser.mly" ( PPat (_2, Some _4) ) -# 31555 "parsing/parser.ml" +# 32455 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31574,9 +32474,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 3603 "parsing/parser.mly" +# 3712 "parsing/parser.mly" ( _1 ) -# 31580 "parsing/parser.ml" +# 32480 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31608,7 +32508,7 @@ module Tables = struct } = _menhir_stack in let _3 : (Parsetree.core_type) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__3_ in @@ -31619,24 +32519,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 31623 "parsing/parser.ml" +# 32523 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 31628 "parsing/parser.ml" +# 32528 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 31634 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 32534 "parsing/parser.ml" in -# 3599 "parsing/parser.mly" - ( Ptyp_poly(_1, _3) ) -# 31640 "parsing/parser.ml" +# 3708 "parsing/parser.mly" + ( let vars, layouts = _1 in Ptyp_poly(vars, _3, layouts) ) +# 32540 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in @@ -31644,15 +32544,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 31650 "parsing/parser.ml" +# 32550 "parsing/parser.ml" in -# 3605 "parsing/parser.mly" +# 3714 "parsing/parser.mly" ( _1 ) -# 31656 "parsing/parser.ml" +# 32556 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31675,14 +32575,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = let _1 = -# 3634 "parsing/parser.mly" +# 3743 "parsing/parser.mly" ( _1 ) -# 31681 "parsing/parser.ml" +# 32581 "parsing/parser.ml" in -# 3603 "parsing/parser.mly" +# 3712 "parsing/parser.mly" ( _1 ) -# 31686 "parsing/parser.ml" +# 32586 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31714,40 +32614,40 @@ module Tables = struct } = _menhir_stack in let _1 : (Parsetree.core_type) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = let _1 = let _1 = let _3 = -# 3634 "parsing/parser.mly" +# 3743 "parsing/parser.mly" ( _1 ) -# 31727 "parsing/parser.ml" +# 32627 "parsing/parser.ml" in let _1 = let _1 = let xs = # 253 "" ( List.rev xs ) -# 31734 "parsing/parser.ml" +# 32634 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 31739 "parsing/parser.ml" +# 32639 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 31745 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 32645 "parsing/parser.ml" in -# 3599 "parsing/parser.mly" - ( Ptyp_poly(_1, _3) ) -# 31751 "parsing/parser.ml" +# 3708 "parsing/parser.mly" + ( let vars, layouts = _1 in Ptyp_poly(vars, _3, layouts) ) +# 32651 "parsing/parser.ml" in let _startpos__1_ = _startpos_xs_ in @@ -31755,15 +32655,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 31761 "parsing/parser.ml" +# 32661 "parsing/parser.ml" in -# 3605 "parsing/parser.mly" +# 3714 "parsing/parser.mly" ( _1 ) -# 31767 "parsing/parser.ml" +# 32667 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31810,9 +32710,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4215 "parsing/parser.mly" +# 4356 "parsing/parser.mly" ( mk_attr ~loc:(make_loc _sloc) _2 _3 ) -# 31816 "parsing/parser.ml" +# 32716 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31893,9 +32793,9 @@ module Tables = struct let _v : (Parsetree.value_description * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined3 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 31899 "parsing/parser.ml" +# 32799 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -31905,30 +32805,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 31911 "parsing/parser.ml" +# 32811 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 31919 "parsing/parser.ml" +# 32819 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3203 "parsing/parser.mly" +# 3294 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Val.mk id ty ~prim ~attrs ~loc ~docs, ext ) -# 31932 "parsing/parser.ml" +# 32832 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31944,14 +32844,14 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.private_flag) = let _1 = -# 4070 "parsing/parser.mly" +# 4211 "parsing/parser.mly" ( Public ) -# 31950 "parsing/parser.ml" +# 32850 "parsing/parser.ml" in -# 4067 "parsing/parser.mly" +# 4208 "parsing/parser.mly" ( _1 ) -# 31955 "parsing/parser.ml" +# 32855 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31974,14 +32874,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag) = let _1 = -# 4071 "parsing/parser.mly" +# 4212 "parsing/parser.mly" ( Private ) -# 31980 "parsing/parser.ml" +# 32880 "parsing/parser.ml" in -# 4067 "parsing/parser.mly" +# 4208 "parsing/parser.mly" ( _1 ) -# 31985 "parsing/parser.ml" +# 32885 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31997,9 +32897,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 4104 "parsing/parser.mly" +# 4245 "parsing/parser.mly" ( Public, Concrete ) -# 32003 "parsing/parser.ml" +# 32903 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32022,9 +32922,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 4105 "parsing/parser.mly" +# 4246 "parsing/parser.mly" ( Private, Concrete ) -# 32028 "parsing/parser.ml" +# 32928 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32047,9 +32947,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 4106 "parsing/parser.mly" +# 4247 "parsing/parser.mly" ( Public, Virtual ) -# 32053 "parsing/parser.ml" +# 32953 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32079,9 +32979,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 4107 "parsing/parser.mly" +# 4248 "parsing/parser.mly" ( Private, Virtual ) -# 32085 "parsing/parser.ml" +# 32985 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32111,9 +33011,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 4108 "parsing/parser.mly" +# 4249 "parsing/parser.mly" ( Private, Virtual ) -# 32117 "parsing/parser.ml" +# 33017 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32129,9 +33029,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.rec_flag) = -# 4048 "parsing/parser.mly" +# 4189 "parsing/parser.mly" ( Nonrecursive ) -# 32135 "parsing/parser.ml" +# 33035 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32154,9 +33054,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.rec_flag) = -# 4049 "parsing/parser.mly" +# 4190 "parsing/parser.mly" ( Recursive ) -# 32160 "parsing/parser.ml" +# 33060 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32182,12 +33082,12 @@ module Tables = struct (Longident.t Asttypes.loc * Parsetree.expression) list) = let eo = # 124 "" ( None ) -# 32186 "parsing/parser.ml" +# 33086 "parsing/parser.ml" in -# 2938 "parsing/parser.mly" +# 3018 "parsing/parser.mly" ( eo, fields ) -# 32191 "parsing/parser.ml" +# 33091 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32228,18 +33128,18 @@ module Tables = struct let x = # 191 "" ( x ) -# 32232 "parsing/parser.ml" +# 33132 "parsing/parser.ml" in # 126 "" ( Some x ) -# 32237 "parsing/parser.ml" +# 33137 "parsing/parser.ml" in -# 2938 "parsing/parser.mly" +# 3018 "parsing/parser.mly" ( eo, fields ) -# 32243 "parsing/parser.ml" +# 33143 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32257,24 +33157,24 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let d : (Ast_helper.str * string Asttypes.loc list * + let d : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : (Parsetree.constructor_declaration list) = let x = -# 3403 "parsing/parser.mly" +# 3507 "parsing/parser.mly" ( let cid, vars, args, res, attrs, loc, info = d in Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 32273 "parsing/parser.ml" +# 33173 "parsing/parser.ml" in -# 1236 "parsing/parser.mly" +# 1307 "parsing/parser.mly" ( [x] ) -# 32278 "parsing/parser.ml" +# 33178 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32292,24 +33192,24 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let d : (Ast_helper.str * string Asttypes.loc list * + let d : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : (Parsetree.constructor_declaration list) = let x = -# 3403 "parsing/parser.mly" +# 3507 "parsing/parser.mly" ( let cid, vars, args, res, attrs, loc, info = d in Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 32308 "parsing/parser.ml" +# 33208 "parsing/parser.ml" in -# 1239 "parsing/parser.mly" +# 1310 "parsing/parser.mly" ( [x] ) -# 32313 "parsing/parser.ml" +# 33213 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32333,7 +33233,7 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let d : (Ast_helper.str * string Asttypes.loc list * + let d : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = Obj.magic d in let xs : (Parsetree.constructor_declaration list) = Obj.magic xs in @@ -32341,17 +33241,17 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_d_ in let _v : (Parsetree.constructor_declaration list) = let x = -# 3403 "parsing/parser.mly" +# 3507 "parsing/parser.mly" ( let cid, vars, args, res, attrs, loc, info = d in Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 32350 "parsing/parser.ml" +# 33250 "parsing/parser.ml" in -# 1243 "parsing/parser.mly" +# 1314 "parsing/parser.mly" ( x :: xs ) -# 32355 "parsing/parser.ml" +# 33255 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32369,7 +33269,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let d : (Ast_helper.str * string Asttypes.loc list * + let d : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -32377,23 +33277,23 @@ module Tables = struct let _endpos = _endpos_d_ in let _v : (Parsetree.extension_constructor list) = let x = let _1 = -# 3533 "parsing/parser.mly" +# 3637 "parsing/parser.mly" ( let cid, vars, args, res, attrs, loc, info = d in Te.decl cid ~vars ~args ?res ~attrs ~loc ~info ) -# 32386 "parsing/parser.ml" +# 33286 "parsing/parser.ml" in -# 3527 "parsing/parser.mly" +# 3631 "parsing/parser.mly" ( _1 ) -# 32391 "parsing/parser.ml" +# 33291 "parsing/parser.ml" in -# 1236 "parsing/parser.mly" +# 1307 "parsing/parser.mly" ( [x] ) -# 32397 "parsing/parser.ml" +# 33297 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32416,14 +33316,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.extension_constructor list) = let x = -# 3529 "parsing/parser.mly" +# 3633 "parsing/parser.mly" ( _1 ) -# 32422 "parsing/parser.ml" +# 33322 "parsing/parser.ml" in -# 1236 "parsing/parser.mly" +# 1307 "parsing/parser.mly" ( [x] ) -# 32427 "parsing/parser.ml" +# 33327 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32441,7 +33341,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let d : (Ast_helper.str * string Asttypes.loc list * + let d : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -32449,23 +33349,23 @@ module Tables = struct let _endpos = _endpos_d_ in let _v : (Parsetree.extension_constructor list) = let x = let _1 = -# 3533 "parsing/parser.mly" +# 3637 "parsing/parser.mly" ( let cid, vars, args, res, attrs, loc, info = d in Te.decl cid ~vars ~args ?res ~attrs ~loc ~info ) -# 32458 "parsing/parser.ml" +# 33358 "parsing/parser.ml" in -# 3527 "parsing/parser.mly" +# 3631 "parsing/parser.mly" ( _1 ) -# 32463 "parsing/parser.ml" +# 33363 "parsing/parser.ml" in -# 1239 "parsing/parser.mly" +# 1310 "parsing/parser.mly" ( [x] ) -# 32469 "parsing/parser.ml" +# 33369 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32488,14 +33388,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.extension_constructor list) = let x = -# 3529 "parsing/parser.mly" +# 3633 "parsing/parser.mly" ( _1 ) -# 32494 "parsing/parser.ml" +# 33394 "parsing/parser.ml" in -# 1239 "parsing/parser.mly" +# 1310 "parsing/parser.mly" ( [x] ) -# 32499 "parsing/parser.ml" +# 33399 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32519,7 +33419,7 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let d : (Ast_helper.str * string Asttypes.loc list * + let d : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = Obj.magic d in let xs : (Parsetree.extension_constructor list) = Obj.magic xs in @@ -32528,23 +33428,23 @@ module Tables = struct let _endpos = _endpos_d_ in let _v : (Parsetree.extension_constructor list) = let x = let _1 = -# 3533 "parsing/parser.mly" +# 3637 "parsing/parser.mly" ( let cid, vars, args, res, attrs, loc, info = d in Te.decl cid ~vars ~args ?res ~attrs ~loc ~info ) -# 32537 "parsing/parser.ml" +# 33437 "parsing/parser.ml" in -# 3527 "parsing/parser.mly" +# 3631 "parsing/parser.mly" ( _1 ) -# 32542 "parsing/parser.ml" +# 33442 "parsing/parser.ml" in -# 1243 "parsing/parser.mly" +# 1314 "parsing/parser.mly" ( x :: xs ) -# 32548 "parsing/parser.ml" +# 33448 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32574,14 +33474,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in let _v : (Parsetree.extension_constructor list) = let x = -# 3529 "parsing/parser.mly" +# 3633 "parsing/parser.mly" ( _1 ) -# 32580 "parsing/parser.ml" +# 33480 "parsing/parser.ml" in -# 1243 "parsing/parser.mly" +# 1314 "parsing/parser.mly" ( x :: xs ) -# 32585 "parsing/parser.ml" +# 33485 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32599,24 +33499,24 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let d : (Ast_helper.str * string Asttypes.loc list * + let d : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : (Parsetree.extension_constructor list) = let x = -# 3533 "parsing/parser.mly" +# 3637 "parsing/parser.mly" ( let cid, vars, args, res, attrs, loc, info = d in Te.decl cid ~vars ~args ?res ~attrs ~loc ~info ) -# 32615 "parsing/parser.ml" +# 33515 "parsing/parser.ml" in -# 1236 "parsing/parser.mly" +# 1307 "parsing/parser.mly" ( [x] ) -# 32620 "parsing/parser.ml" +# 33520 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32634,24 +33534,24 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let d : (Ast_helper.str * string Asttypes.loc list * + let d : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : (Parsetree.extension_constructor list) = let x = -# 3533 "parsing/parser.mly" +# 3637 "parsing/parser.mly" ( let cid, vars, args, res, attrs, loc, info = d in Te.decl cid ~vars ~args ?res ~attrs ~loc ~info ) -# 32650 "parsing/parser.ml" +# 33550 "parsing/parser.ml" in -# 1239 "parsing/parser.mly" +# 1310 "parsing/parser.mly" ( [x] ) -# 32655 "parsing/parser.ml" +# 33555 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32675,7 +33575,7 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let d : (Ast_helper.str * string Asttypes.loc list * + let d : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = Obj.magic d in let xs : (Parsetree.extension_constructor list) = Obj.magic xs in @@ -32683,17 +33583,17 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_d_ in let _v : (Parsetree.extension_constructor list) = let x = -# 3533 "parsing/parser.mly" +# 3637 "parsing/parser.mly" ( let cid, vars, args, res, attrs, loc, info = d in Te.decl cid ~vars ~args ?res ~attrs ~loc ~info ) -# 32692 "parsing/parser.ml" +# 33592 "parsing/parser.ml" in -# 1243 "parsing/parser.mly" +# 1314 "parsing/parser.mly" ( x :: xs ) -# 32697 "parsing/parser.ml" +# 33597 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32709,9 +33609,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = -# 1102 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( [] ) -# 32715 "parsing/parser.ml" +# 33615 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32768,21 +33668,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2249 "parsing/parser.mly" +# 2320 "parsing/parser.mly" ( _1, _3, make_loc _sloc ) -# 32774 "parsing/parser.ml" +# 33674 "parsing/parser.ml" in # 183 "" ( x ) -# 32780 "parsing/parser.ml" +# 33680 "parsing/parser.ml" in -# 1104 "parsing/parser.mly" +# 1175 "parsing/parser.mly" ( x :: xs ) -# 32786 "parsing/parser.ml" +# 33686 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32805,9 +33705,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Jane_syntax.Comprehensions.clause list) = -# 1116 "parsing/parser.mly" +# 1187 "parsing/parser.mly" ( [ x ] ) -# 32811 "parsing/parser.ml" +# 33711 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32837,9 +33737,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Jane_syntax.Comprehensions.clause list) = -# 1118 "parsing/parser.mly" +# 1189 "parsing/parser.mly" ( x :: xs ) -# 32843 "parsing/parser.ml" +# 33743 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32862,9 +33762,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : ((Lexing.position * Parsetree.functor_parameter) list) = -# 1116 "parsing/parser.mly" +# 1187 "parsing/parser.mly" ( [ x ] ) -# 32868 "parsing/parser.ml" +# 33768 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32894,9 +33794,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : ((Lexing.position * Parsetree.functor_parameter) list) = -# 1118 "parsing/parser.mly" +# 1189 "parsing/parser.mly" ( x :: xs ) -# 32900 "parsing/parser.ml" +# 33800 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32919,9 +33819,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : ((Asttypes.arg_label * Parsetree.expression) list) = -# 1116 "parsing/parser.mly" +# 1187 "parsing/parser.mly" ( [ x ] ) -# 32925 "parsing/parser.ml" +# 33825 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32951,9 +33851,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : ((Asttypes.arg_label * Parsetree.expression) list) = -# 1118 "parsing/parser.mly" +# 1189 "parsing/parser.mly" ( x :: xs ) -# 32957 "parsing/parser.ml" +# 33857 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32976,9 +33876,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Asttypes.label list) = -# 1116 "parsing/parser.mly" +# 1187 "parsing/parser.mly" ( [ x ] ) -# 32982 "parsing/parser.ml" +# 33882 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33008,9 +33908,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Asttypes.label list) = -# 1118 "parsing/parser.mly" +# 1189 "parsing/parser.mly" ( x :: xs ) -# 33014 "parsing/parser.ml" +# 33914 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33039,28 +33939,86 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Asttypes.label Asttypes.loc list) = let x = + let _v : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = let x = let _2 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 33052 "parsing/parser.ml" +# 33952 "parsing/parser.ml" in -# 3591 "parsing/parser.mly" - ( _2 ) -# 33058 "parsing/parser.ml" +# 3695 "parsing/parser.mly" + ( (_2, None) ) +# 33958 "parsing/parser.ml" in -# 1116 "parsing/parser.mly" +# 1187 "parsing/parser.mly" ( [ x ] ) -# 33064 "parsing/parser.ml" +# 33964 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = lay; + MenhirLib.EngineTypes.startp = _startpos_lay_; + MenhirLib.EngineTypes.endp = _endpos_lay_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = tv; + MenhirLib.EngineTypes.startp = _startpos_tv_; + MenhirLib.EngineTypes.endp = _endpos_tv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let _5 : unit = Obj.magic _5 in + let lay : (Parsetree.core_type) = Obj.magic lay in + let _3 : unit = Obj.magic _3 in + let tv : (Parsetree.core_type) = Obj.magic tv in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = let x = +# 3699 "parsing/parser.mly" + ( (check_type_var_from_type tv, Some (check_layout_from_type lay)) ) +# 34017 "parsing/parser.ml" + in + +# 1187 "parsing/parser.mly" + ( [ x ] ) +# 34022 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33092,32 +34050,97 @@ module Tables = struct } = _menhir_stack in let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Asttypes.label Asttypes.loc list) = let x = + let _v : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = let x = let _2 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 33109 "parsing/parser.ml" +# 34067 "parsing/parser.ml" in -# 3591 "parsing/parser.mly" - ( _2 ) -# 33115 "parsing/parser.ml" +# 3695 "parsing/parser.mly" + ( (_2, None) ) +# 34073 "parsing/parser.ml" in -# 1118 "parsing/parser.mly" +# 1189 "parsing/parser.mly" ( x :: xs ) -# 33121 "parsing/parser.ml" +# 34079 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = lay; + MenhirLib.EngineTypes.startp = _startpos_lay_; + MenhirLib.EngineTypes.endp = _endpos_lay_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = tv; + MenhirLib.EngineTypes.startp = _startpos_tv_; + MenhirLib.EngineTypes.endp = _endpos_tv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _5 : unit = Obj.magic _5 in + let lay : (Parsetree.core_type) = Obj.magic lay in + let _3 : unit = Obj.magic _3 in + let tv : (Parsetree.core_type) = Obj.magic tv in + let _1 : unit = Obj.magic _1 in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_xs_ in + let _endpos = _endpos__5_ in + let _v : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = let x = +# 3699 "parsing/parser.mly" + ( (check_type_var_from_type tv, Some (check_layout_from_type lay)) ) +# 34139 "parsing/parser.ml" + in + +# 1189 "parsing/parser.mly" + ( x :: xs ) +# 34144 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33142,12 +34165,12 @@ module Tables = struct let _v : (Parsetree.case list) = let _1 = # 124 "" ( None ) -# 33146 "parsing/parser.ml" +# 34169 "parsing/parser.ml" in -# 1207 "parsing/parser.mly" +# 1278 "parsing/parser.mly" ( [x] ) -# 33151 "parsing/parser.ml" +# 34174 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33181,13 +34204,13 @@ module Tables = struct # 126 "" ( Some x ) -# 33185 "parsing/parser.ml" +# 34208 "parsing/parser.ml" in -# 1207 "parsing/parser.mly" +# 1278 "parsing/parser.mly" ( [x] ) -# 33191 "parsing/parser.ml" +# 34214 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33224,9 +34247,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.case list) = -# 1211 "parsing/parser.mly" +# 1282 "parsing/parser.mly" ( x :: xs ) -# 33230 "parsing/parser.ml" +# 34253 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33250,20 +34273,20 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.core_type list) = let xs = let x = -# 3634 "parsing/parser.mly" +# 3743 "parsing/parser.mly" ( _1 ) -# 33256 "parsing/parser.ml" +# 34279 "parsing/parser.ml" in -# 1142 "parsing/parser.mly" +# 1213 "parsing/parser.mly" ( [ x ] ) -# 33261 "parsing/parser.ml" +# 34284 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 33267 "parsing/parser.ml" +# 34290 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33301,20 +34324,20 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.core_type list) = let xs = let x = -# 3634 "parsing/parser.mly" +# 3743 "parsing/parser.mly" ( _1 ) -# 33307 "parsing/parser.ml" +# 34330 "parsing/parser.ml" in -# 1146 "parsing/parser.mly" +# 1217 "parsing/parser.mly" ( x :: xs ) -# 33312 "parsing/parser.ml" +# 34335 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 33318 "parsing/parser.ml" +# 34341 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33337,14 +34360,14 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Jane_syntax.Comprehensions.clause_binding list) = let xs = -# 1142 "parsing/parser.mly" +# 1213 "parsing/parser.mly" ( [ x ] ) -# 33343 "parsing/parser.ml" +# 34366 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 33348 "parsing/parser.ml" +# 34371 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33381,14 +34404,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Jane_syntax.Comprehensions.clause_binding list) = let xs = -# 1146 "parsing/parser.mly" +# 1217 "parsing/parser.mly" ( x :: xs ) -# 33387 "parsing/parser.ml" +# 34410 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 33392 "parsing/parser.ml" +# 34415 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33411,14 +34434,14 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Parsetree.with_constraint list) = let xs = -# 1142 "parsing/parser.mly" +# 1213 "parsing/parser.mly" ( [ x ] ) -# 33417 "parsing/parser.ml" +# 34440 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 33422 "parsing/parser.ml" +# 34445 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33455,14 +34478,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.with_constraint list) = let xs = -# 1146 "parsing/parser.mly" +# 1217 "parsing/parser.mly" ( x :: xs ) -# 33461 "parsing/parser.ml" +# 34484 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 33466 "parsing/parser.ml" +# 34489 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33485,14 +34508,14 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Parsetree.row_field list) = let xs = -# 1142 "parsing/parser.mly" +# 1213 "parsing/parser.mly" ( [ x ] ) -# 33491 "parsing/parser.ml" +# 34514 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 33496 "parsing/parser.ml" +# 34519 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33529,14 +34552,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.row_field list) = let xs = -# 1146 "parsing/parser.mly" +# 1217 "parsing/parser.mly" ( x :: xs ) -# 33535 "parsing/parser.ml" +# 34558 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 33540 "parsing/parser.ml" +# 34563 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33559,14 +34582,14 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Parsetree.core_type list) = let xs = -# 1142 "parsing/parser.mly" +# 1213 "parsing/parser.mly" ( [ x ] ) -# 33565 "parsing/parser.ml" +# 34588 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 33570 "parsing/parser.ml" +# 34593 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33603,14 +34626,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.core_type list) = let xs = -# 1146 "parsing/parser.mly" +# 1217 "parsing/parser.mly" ( x :: xs ) -# 33609 "parsing/parser.ml" +# 34632 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 33614 "parsing/parser.ml" +# 34637 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33633,14 +34656,14 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = -# 1142 "parsing/parser.mly" +# 1213 "parsing/parser.mly" ( [ x ] ) -# 33639 "parsing/parser.ml" +# 34662 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 33644 "parsing/parser.ml" +# 34667 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33677,14 +34700,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = -# 1146 "parsing/parser.mly" +# 1217 "parsing/parser.mly" ( x :: xs ) -# 33683 "parsing/parser.ml" +# 34706 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 33688 "parsing/parser.ml" +# 34711 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33707,14 +34730,14 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = -# 1142 "parsing/parser.mly" +# 1213 "parsing/parser.mly" ( [ x ] ) -# 33713 "parsing/parser.ml" +# 34736 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 33718 "parsing/parser.ml" +# 34741 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33751,14 +34774,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = -# 1146 "parsing/parser.mly" +# 1217 "parsing/parser.mly" ( x :: xs ) -# 33757 "parsing/parser.ml" +# 34780 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 33762 "parsing/parser.ml" +# 34785 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33783,30 +34806,30 @@ module Tables = struct let _v : (Parsetree.core_type list) = let xs = let x = let gbl = -# 4084 "parsing/parser.mly" +# 4225 "parsing/parser.mly" ( Nothing ) -# 33789 "parsing/parser.ml" +# 34812 "parsing/parser.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in -# 3460 "parsing/parser.mly" +# 3564 "parsing/parser.mly" ( mkcty_global_maybe gbl cty (make_loc _loc_gbl_) ) -# 33798 "parsing/parser.ml" +# 34821 "parsing/parser.ml" in -# 1142 "parsing/parser.mly" +# 1213 "parsing/parser.mly" ( [ x ] ) -# 33804 "parsing/parser.ml" +# 34827 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 33810 "parsing/parser.ml" +# 34833 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33838,30 +34861,30 @@ module Tables = struct let _v : (Parsetree.core_type list) = let xs = let x = let gbl = -# 4085 "parsing/parser.mly" +# 4226 "parsing/parser.mly" ( Global ) -# 33844 "parsing/parser.ml" +# 34867 "parsing/parser.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in -# 3460 "parsing/parser.mly" +# 3564 "parsing/parser.mly" ( mkcty_global_maybe gbl cty (make_loc _loc_gbl_) ) -# 33853 "parsing/parser.ml" +# 34876 "parsing/parser.ml" in -# 1142 "parsing/parser.mly" +# 1213 "parsing/parser.mly" ( [ x ] ) -# 33859 "parsing/parser.ml" +# 34882 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 33865 "parsing/parser.ml" +# 34888 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33893,30 +34916,30 @@ module Tables = struct let _v : (Parsetree.core_type list) = let xs = let x = let gbl = -# 4086 "parsing/parser.mly" +# 4227 "parsing/parser.mly" ( Nonlocal ) -# 33899 "parsing/parser.ml" +# 34922 "parsing/parser.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in -# 3460 "parsing/parser.mly" +# 3564 "parsing/parser.mly" ( mkcty_global_maybe gbl cty (make_loc _loc_gbl_) ) -# 33908 "parsing/parser.ml" +# 34931 "parsing/parser.ml" in -# 1142 "parsing/parser.mly" +# 1213 "parsing/parser.mly" ( [ x ] ) -# 33914 "parsing/parser.ml" +# 34937 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 33920 "parsing/parser.ml" +# 34943 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33956,30 +34979,30 @@ module Tables = struct let x = let _endpos__0_ = _endpos__2_ in let gbl = -# 4084 "parsing/parser.mly" +# 4225 "parsing/parser.mly" ( Nothing ) -# 33962 "parsing/parser.ml" +# 34985 "parsing/parser.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in -# 3460 "parsing/parser.mly" +# 3564 "parsing/parser.mly" ( mkcty_global_maybe gbl cty (make_loc _loc_gbl_) ) -# 33971 "parsing/parser.ml" +# 34994 "parsing/parser.ml" in -# 1146 "parsing/parser.mly" +# 1217 "parsing/parser.mly" ( x :: xs ) -# 33977 "parsing/parser.ml" +# 35000 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 33983 "parsing/parser.ml" +# 35006 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34025,30 +35048,30 @@ module Tables = struct let _v : (Parsetree.core_type list) = let xs = let x = let gbl = -# 4085 "parsing/parser.mly" +# 4226 "parsing/parser.mly" ( Global ) -# 34031 "parsing/parser.ml" +# 35054 "parsing/parser.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in -# 3460 "parsing/parser.mly" +# 3564 "parsing/parser.mly" ( mkcty_global_maybe gbl cty (make_loc _loc_gbl_) ) -# 34040 "parsing/parser.ml" +# 35063 "parsing/parser.ml" in -# 1146 "parsing/parser.mly" +# 1217 "parsing/parser.mly" ( x :: xs ) -# 34046 "parsing/parser.ml" +# 35069 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 34052 "parsing/parser.ml" +# 35075 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34094,30 +35117,30 @@ module Tables = struct let _v : (Parsetree.core_type list) = let xs = let x = let gbl = -# 4086 "parsing/parser.mly" +# 4227 "parsing/parser.mly" ( Nonlocal ) -# 34100 "parsing/parser.ml" +# 35123 "parsing/parser.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in -# 3460 "parsing/parser.mly" +# 3564 "parsing/parser.mly" ( mkcty_global_maybe gbl cty (make_loc _loc_gbl_) ) -# 34109 "parsing/parser.ml" +# 35132 "parsing/parser.ml" in -# 1146 "parsing/parser.mly" +# 1217 "parsing/parser.mly" ( x :: xs ) -# 34115 "parsing/parser.ml" +# 35138 "parsing/parser.ml" in -# 1150 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( xs ) -# 34121 "parsing/parser.ml" +# 35144 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34154,9 +35177,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.core_type list) = -# 1173 "parsing/parser.mly" +# 1244 "parsing/parser.mly" ( x :: xs ) -# 34160 "parsing/parser.ml" +# 35183 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34193,9 +35216,9 @@ module Tables = struct let _startpos = _startpos_x1_ in let _endpos = _endpos_x2_ in let _v : (Parsetree.core_type list) = -# 1177 "parsing/parser.mly" +# 1248 "parsing/parser.mly" ( [ x2; x1 ] ) -# 34199 "parsing/parser.ml" +# 35222 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34232,9 +35255,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.expression list) = -# 1173 "parsing/parser.mly" +# 1244 "parsing/parser.mly" ( x :: xs ) -# 34238 "parsing/parser.ml" +# 35261 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34271,9 +35294,9 @@ module Tables = struct let _startpos = _startpos_x1_ in let _endpos = _endpos_x2_ in let _v : (Parsetree.expression list) = -# 1177 "parsing/parser.mly" +# 1248 "parsing/parser.mly" ( [ x2; x1 ] ) -# 34277 "parsing/parser.ml" +# 35300 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34310,9 +35333,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.core_type list) = -# 1173 "parsing/parser.mly" +# 1244 "parsing/parser.mly" ( x :: xs ) -# 34316 "parsing/parser.ml" +# 35339 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34349,9 +35372,9 @@ module Tables = struct let _startpos = _startpos_x1_ in let _endpos = _endpos_x2_ in let _v : (Parsetree.core_type list) = -# 1177 "parsing/parser.mly" +# 1248 "parsing/parser.mly" ( [ x2; x1 ] ) -# 34355 "parsing/parser.ml" +# 35378 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34374,9 +35397,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.row_field) = -# 3809 "parsing/parser.mly" +# 3943 "parsing/parser.mly" ( _1 ) -# 34380 "parsing/parser.ml" +# 35403 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34402,9 +35425,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3811 "parsing/parser.mly" +# 3945 "parsing/parser.mly" ( Rf.inherit_ ~loc:(make_loc _sloc) _1 ) -# 34408 "parsing/parser.ml" +# 35431 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34429,12 +35452,12 @@ module Tables = struct let _v : (Parsetree.expression list) = let _2 = # 124 "" ( None ) -# 34433 "parsing/parser.ml" +# 35456 "parsing/parser.ml" in -# 1194 "parsing/parser.mly" +# 1265 "parsing/parser.mly" ( [x] ) -# 34438 "parsing/parser.ml" +# 35461 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34468,13 +35491,13 @@ module Tables = struct # 126 "" ( Some x ) -# 34472 "parsing/parser.ml" +# 35495 "parsing/parser.ml" in -# 1194 "parsing/parser.mly" +# 1265 "parsing/parser.mly" ( [x] ) -# 34478 "parsing/parser.ml" +# 35501 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34511,9 +35534,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in let _v : (Parsetree.expression list) = -# 1198 "parsing/parser.mly" +# 1269 "parsing/parser.mly" ( x :: xs ) -# 34517 "parsing/parser.ml" +# 35540 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34539,9 +35562,9 @@ module Tables = struct } = _menhir_stack in let oe : (Parsetree.expression option) = Obj.magic oe in let _1 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 34545 "parsing/parser.ml" +# 35568 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -34549,26 +35572,26 @@ module Tables = struct let _v : ((Asttypes.label Asttypes.loc * Parsetree.expression) list) = let _2 = # 124 "" ( None ) -# 34553 "parsing/parser.ml" +# 35576 "parsing/parser.ml" in let x = let label = let _1 = -# 3873 "parsing/parser.mly" +# 4007 "parsing/parser.mly" ( _1 ) -# 34560 "parsing/parser.ml" +# 35583 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 34568 "parsing/parser.ml" +# 35591 "parsing/parser.ml" in -# 2961 "parsing/parser.mly" +# 3041 "parsing/parser.mly" ( let label, e = match oe with | None -> @@ -34578,13 +35601,13 @@ module Tables = struct label, e in label, e ) -# 34582 "parsing/parser.ml" +# 35605 "parsing/parser.ml" in -# 1194 "parsing/parser.mly" +# 1265 "parsing/parser.mly" ( [x] ) -# 34588 "parsing/parser.ml" +# 35611 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34617,9 +35640,9 @@ module Tables = struct let x : unit = Obj.magic x in let oe : (Parsetree.expression option) = Obj.magic oe in let _1 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 34623 "parsing/parser.ml" +# 35646 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -34627,26 +35650,26 @@ module Tables = struct let _v : ((Asttypes.label Asttypes.loc * Parsetree.expression) list) = let _2 = # 126 "" ( Some x ) -# 34631 "parsing/parser.ml" +# 35654 "parsing/parser.ml" in let x = let label = let _1 = -# 3873 "parsing/parser.mly" +# 4007 "parsing/parser.mly" ( _1 ) -# 34638 "parsing/parser.ml" +# 35661 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 34646 "parsing/parser.ml" +# 35669 "parsing/parser.ml" in -# 2961 "parsing/parser.mly" +# 3041 "parsing/parser.mly" ( let label, e = match oe with | None -> @@ -34656,13 +35679,13 @@ module Tables = struct label, e in label, e ) -# 34660 "parsing/parser.ml" +# 35683 "parsing/parser.ml" in -# 1194 "parsing/parser.mly" +# 1265 "parsing/parser.mly" ( [x] ) -# 34666 "parsing/parser.ml" +# 35689 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34702,9 +35725,9 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let oe : (Parsetree.expression option) = Obj.magic oe in let _1 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 34708 "parsing/parser.ml" +# 35731 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -34712,21 +35735,21 @@ module Tables = struct let _v : ((Asttypes.label Asttypes.loc * Parsetree.expression) list) = let x = let label = let _1 = -# 3873 "parsing/parser.mly" +# 4007 "parsing/parser.mly" ( _1 ) -# 34718 "parsing/parser.ml" +# 35741 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 34726 "parsing/parser.ml" +# 35749 "parsing/parser.ml" in -# 2961 "parsing/parser.mly" +# 3041 "parsing/parser.mly" ( let label, e = match oe with | None -> @@ -34736,13 +35759,13 @@ module Tables = struct label, e in label, e ) -# 34740 "parsing/parser.ml" +# 35763 "parsing/parser.ml" in -# 1198 "parsing/parser.mly" +# 1269 "parsing/parser.mly" ( x :: xs ) -# 34746 "parsing/parser.ml" +# 35769 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34767,12 +35790,12 @@ module Tables = struct let _v : (Parsetree.pattern list) = let _2 = # 124 "" ( None ) -# 34771 "parsing/parser.ml" +# 35794 "parsing/parser.ml" in -# 1194 "parsing/parser.mly" +# 1265 "parsing/parser.mly" ( [x] ) -# 34776 "parsing/parser.ml" +# 35799 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34806,13 +35829,13 @@ module Tables = struct # 126 "" ( Some x ) -# 34810 "parsing/parser.ml" +# 35833 "parsing/parser.ml" in -# 1194 "parsing/parser.mly" +# 1265 "parsing/parser.mly" ( [x] ) -# 34816 "parsing/parser.ml" +# 35839 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34849,9 +35872,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in let _v : (Parsetree.pattern list) = -# 1198 "parsing/parser.mly" +# 1269 "parsing/parser.mly" ( x :: xs ) -# 34855 "parsing/parser.ml" +# 35878 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34890,7 +35913,7 @@ module Tables = struct let _v : ((Longident.t Asttypes.loc * Parsetree.expression) list) = let _2 = # 124 "" ( None ) -# 34894 "parsing/parser.ml" +# 35917 "parsing/parser.ml" in let x = let label = @@ -34898,9 +35921,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 34904 "parsing/parser.ml" +# 35927 "parsing/parser.ml" in let _startpos_label_ = _startpos__1_ in @@ -34908,7 +35931,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 2944 "parsing/parser.mly" +# 3024 "parsing/parser.mly" ( let constraint_loc, label, e = match eo with | None -> @@ -34918,13 +35941,13 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_constraint ~loc:constraint_loc e c ) -# 34922 "parsing/parser.ml" +# 35945 "parsing/parser.ml" in -# 1194 "parsing/parser.mly" +# 1265 "parsing/parser.mly" ( [x] ) -# 34928 "parsing/parser.ml" +# 35951 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34970,7 +35993,7 @@ module Tables = struct let _v : ((Longident.t Asttypes.loc * Parsetree.expression) list) = let _2 = # 126 "" ( Some x ) -# 34974 "parsing/parser.ml" +# 35997 "parsing/parser.ml" in let x = let label = @@ -34978,9 +36001,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 34984 "parsing/parser.ml" +# 36007 "parsing/parser.ml" in let _startpos_label_ = _startpos__1_ in @@ -34988,7 +36011,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 2944 "parsing/parser.mly" +# 3024 "parsing/parser.mly" ( let constraint_loc, label, e = match eo with | None -> @@ -34998,13 +36021,13 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_constraint ~loc:constraint_loc e c ) -# 35002 "parsing/parser.ml" +# 36025 "parsing/parser.ml" in -# 1194 "parsing/parser.mly" +# 1265 "parsing/parser.mly" ( [x] ) -# 35008 "parsing/parser.ml" +# 36031 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35060,9 +36083,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 35066 "parsing/parser.ml" +# 36089 "parsing/parser.ml" in let _startpos_label_ = _startpos__1_ in @@ -35070,7 +36093,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 2944 "parsing/parser.mly" +# 3024 "parsing/parser.mly" ( let constraint_loc, label, e = match eo with | None -> @@ -35080,13 +36103,13 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_constraint ~loc:constraint_loc e c ) -# 35084 "parsing/parser.ml" +# 36107 "parsing/parser.ml" in -# 1198 "parsing/parser.mly" +# 1269 "parsing/parser.mly" ( x :: xs ) -# 35090 "parsing/parser.ml" +# 36113 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35109,9 +36132,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = -# 2338 "parsing/parser.mly" +# 2409 "parsing/parser.mly" ( _1 ) -# 35115 "parsing/parser.ml" +# 36138 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35141,9 +36164,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = -# 2339 "parsing/parser.mly" +# 2410 "parsing/parser.mly" ( _1 ) -# 35147 "parsing/parser.ml" +# 36170 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35181,24 +36204,24 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 2341 "parsing/parser.mly" +# 2412 "parsing/parser.mly" ( Pexp_sequence(_1, _3) ) -# 35187 "parsing/parser.ml" +# 36210 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 35196 "parsing/parser.ml" +# 36219 "parsing/parser.ml" in -# 2342 "parsing/parser.mly" +# 2413 "parsing/parser.mly" ( _1 ) -# 35202 "parsing/parser.ml" +# 36225 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35252,11 +36275,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2344 "parsing/parser.mly" +# 2415 "parsing/parser.mly" ( let seq = mkexp ~loc:_sloc (Pexp_sequence (_1, _5)) in let payload = PStr [mkstrexp seq []] in mkexp ~loc:_sloc (Pexp_extension (_4, payload)) ) -# 35260 "parsing/parser.ml" +# 36283 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35312,8 +36335,8 @@ module Tables = struct } = _menhir_stack in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let vars_args_res : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = Obj.magic vars_args_res in + let vars_args_res : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic vars_args_res in let _1_inlined2 : (Asttypes.label) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let ext : (string Asttypes.loc option) = Obj.magic ext in @@ -35324,18 +36347,18 @@ module Tables = struct let _v : (Parsetree.type_exception * string Asttypes.loc option) = let attrs = let _1 = _1_inlined4 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 35330 "parsing/parser.ml" +# 36353 "parsing/parser.ml" in let _endpos_attrs_ = _endpos__1_inlined4_ in let attrs2 = let _1 = _1_inlined3 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 35339 "parsing/parser.ml" +# 36362 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -35345,17 +36368,17 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 35351 "parsing/parser.ml" +# 36374 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 35359 "parsing/parser.ml" +# 36382 "parsing/parser.ml" in let _endpos = _endpos_attrs_ in @@ -35363,14 +36386,14 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3433 "parsing/parser.mly" +# 3537 "parsing/parser.mly" ( let vars, args, res = vars_args_res in let loc = make_loc (_startpos, _endpos_attrs2_) in let docs = symbol_docs _sloc in Te.mk_exception ~attrs (Te.decl id ~vars ~args ?res ~attrs:(attrs1 @ attrs2) ~loc ~docs) , ext ) -# 35374 "parsing/parser.ml" +# 36397 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35396,21 +36419,21 @@ module Tables = struct let _1 = # 260 "" ( List.flatten xss ) -# 35400 "parsing/parser.ml" +# 36423 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1017 "parsing/parser.mly" +# 1088 "parsing/parser.mly" ( extra_sig _startpos _endpos _1 ) -# 35408 "parsing/parser.ml" +# 36431 "parsing/parser.ml" in -# 1784 "parsing/parser.mly" +# 1855 "parsing/parser.mly" ( _1 ) -# 35414 "parsing/parser.ml" +# 36437 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35442,9 +36465,9 @@ module Tables = struct let _v : (Parsetree.signature_item) = let _2 = let _1 = _1_inlined1 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 35448 "parsing/parser.ml" +# 36471 "parsing/parser.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -35452,10 +36475,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1799 "parsing/parser.mly" +# 1870 "parsing/parser.mly" ( let docs = symbol_docs _sloc in mksig ~loc:_sloc (Psig_extension (_1, (add_docs_attrs docs _2))) ) -# 35459 "parsing/parser.ml" +# 36482 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35479,23 +36502,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 1803 "parsing/parser.mly" +# 1874 "parsing/parser.mly" ( Psig_attribute _1 ) -# 35485 "parsing/parser.ml" +# 36508 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1065 "parsing/parser.mly" +# 1136 "parsing/parser.mly" ( mksig ~loc:_sloc _1 ) -# 35493 "parsing/parser.ml" +# 36516 "parsing/parser.ml" in -# 1805 "parsing/parser.mly" +# 1876 "parsing/parser.mly" ( _1 ) -# 35499 "parsing/parser.ml" +# 36522 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35519,23 +36542,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 1808 "parsing/parser.mly" +# 1879 "parsing/parser.mly" ( psig_value _1 ) -# 35525 "parsing/parser.ml" +# 36548 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1082 "parsing/parser.mly" +# 1153 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 35533 "parsing/parser.ml" +# 36556 "parsing/parser.ml" in -# 1843 "parsing/parser.mly" +# 1914 "parsing/parser.mly" ( _1 ) -# 35539 "parsing/parser.ml" +# 36562 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35559,23 +36582,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 1810 "parsing/parser.mly" +# 1881 "parsing/parser.mly" ( psig_value _1 ) -# 35565 "parsing/parser.ml" +# 36588 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1082 "parsing/parser.mly" +# 1153 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 35573 "parsing/parser.ml" +# 36596 "parsing/parser.ml" in -# 1843 "parsing/parser.mly" +# 1914 "parsing/parser.mly" ( _1 ) -# 35579 "parsing/parser.ml" +# 36602 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35610,26 +36633,26 @@ module Tables = struct let _1 = let _1 = let _1 = -# 1255 "parsing/parser.mly" +# 1326 "parsing/parser.mly" ( let (x, b) = a in x, b :: bs ) -# 35616 "parsing/parser.ml" +# 36639 "parsing/parser.ml" in -# 3239 "parsing/parser.mly" +# 3330 "parsing/parser.mly" ( _1 ) -# 35621 "parsing/parser.ml" +# 36644 "parsing/parser.ml" in -# 3222 "parsing/parser.mly" +# 3313 "parsing/parser.mly" ( _1 ) -# 35627 "parsing/parser.ml" +# 36650 "parsing/parser.ml" in -# 1812 "parsing/parser.mly" +# 1883 "parsing/parser.mly" ( psig_type _1 ) -# 35633 "parsing/parser.ml" +# 36656 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in @@ -35637,15 +36660,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1082 "parsing/parser.mly" +# 1153 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 35643 "parsing/parser.ml" +# 36666 "parsing/parser.ml" in -# 1843 "parsing/parser.mly" +# 1914 "parsing/parser.mly" ( _1 ) -# 35649 "parsing/parser.ml" +# 36672 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35680,26 +36703,26 @@ module Tables = struct let _1 = let _1 = let _1 = -# 1255 "parsing/parser.mly" +# 1326 "parsing/parser.mly" ( let (x, b) = a in x, b :: bs ) -# 35686 "parsing/parser.ml" +# 36709 "parsing/parser.ml" in -# 3239 "parsing/parser.mly" +# 3330 "parsing/parser.mly" ( _1 ) -# 35691 "parsing/parser.ml" +# 36714 "parsing/parser.ml" in -# 3227 "parsing/parser.mly" +# 3318 "parsing/parser.mly" ( _1 ) -# 35697 "parsing/parser.ml" +# 36720 "parsing/parser.ml" in -# 1814 "parsing/parser.mly" +# 1885 "parsing/parser.mly" ( psig_typesubst _1 ) -# 35703 "parsing/parser.ml" +# 36726 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in @@ -35707,15 +36730,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1082 "parsing/parser.mly" +# 1153 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 35713 "parsing/parser.ml" +# 36736 "parsing/parser.ml" in -# 1843 "parsing/parser.mly" +# 1914 "parsing/parser.mly" ( _1 ) -# 35719 "parsing/parser.ml" +# 36742 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35800,16 +36823,16 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 35806 "parsing/parser.ml" +# 36829 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in let cs = -# 1247 "parsing/parser.mly" +# 1318 "parsing/parser.mly" ( List.rev xs ) -# 35813 "parsing/parser.ml" +# 36836 "parsing/parser.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in @@ -35817,46 +36840,46 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 35823 "parsing/parser.ml" +# 36846 "parsing/parser.ml" in let _4 = -# 4056 "parsing/parser.mly" +# 4197 "parsing/parser.mly" ( Recursive ) -# 35829 "parsing/parser.ml" +# 36852 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 35836 "parsing/parser.ml" +# 36859 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3520 "parsing/parser.mly" +# 3624 "parsing/parser.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 35848 "parsing/parser.ml" +# 36871 "parsing/parser.ml" in -# 3507 "parsing/parser.mly" +# 3611 "parsing/parser.mly" ( _1 ) -# 35854 "parsing/parser.ml" +# 36877 "parsing/parser.ml" in -# 1816 "parsing/parser.mly" +# 1887 "parsing/parser.mly" ( psig_typext _1 ) -# 35860 "parsing/parser.ml" +# 36883 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -35864,15 +36887,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1082 "parsing/parser.mly" +# 1153 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 35870 "parsing/parser.ml" +# 36893 "parsing/parser.ml" in -# 1843 "parsing/parser.mly" +# 1914 "parsing/parser.mly" ( _1 ) -# 35876 "parsing/parser.ml" +# 36899 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35964,16 +36987,16 @@ module Tables = struct let attrs2 = let _1 = _1_inlined4 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 35970 "parsing/parser.ml" +# 36993 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in let cs = -# 1247 "parsing/parser.mly" +# 1318 "parsing/parser.mly" ( List.rev xs ) -# 35977 "parsing/parser.ml" +# 37000 "parsing/parser.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in @@ -35981,9 +37004,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 35987 "parsing/parser.ml" +# 37010 "parsing/parser.ml" in let _4 = @@ -35992,41 +37015,41 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 4058 "parsing/parser.mly" +# 4199 "parsing/parser.mly" ( not_expecting _loc "nonrec flag" ) -# 35998 "parsing/parser.ml" +# 37021 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 36006 "parsing/parser.ml" +# 37029 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3520 "parsing/parser.mly" +# 3624 "parsing/parser.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 36018 "parsing/parser.ml" +# 37041 "parsing/parser.ml" in -# 3507 "parsing/parser.mly" +# 3611 "parsing/parser.mly" ( _1 ) -# 36024 "parsing/parser.ml" +# 37047 "parsing/parser.ml" in -# 1816 "parsing/parser.mly" +# 1887 "parsing/parser.mly" ( psig_typext _1 ) -# 36030 "parsing/parser.ml" +# 37053 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined4_ in @@ -36034,15 +37057,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1082 "parsing/parser.mly" +# 1153 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36040 "parsing/parser.ml" +# 37063 "parsing/parser.ml" in -# 1843 "parsing/parser.mly" +# 1914 "parsing/parser.mly" ( _1 ) -# 36046 "parsing/parser.ml" +# 37069 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36066,23 +37089,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 1818 "parsing/parser.mly" +# 1889 "parsing/parser.mly" ( psig_exception _1 ) -# 36072 "parsing/parser.ml" +# 37095 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1082 "parsing/parser.mly" +# 1153 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36080 "parsing/parser.ml" +# 37103 "parsing/parser.ml" in -# 1843 "parsing/parser.mly" +# 1914 "parsing/parser.mly" ( _1 ) -# 36086 "parsing/parser.ml" +# 37109 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36145,9 +37168,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 36151 "parsing/parser.ml" +# 37174 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -36157,37 +37180,37 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 36163 "parsing/parser.ml" +# 37186 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 36171 "parsing/parser.ml" +# 37194 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1852 "parsing/parser.mly" +# 1923 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Md.mk name body ~attrs ~loc ~docs, ext ) -# 36185 "parsing/parser.ml" +# 37208 "parsing/parser.ml" in -# 1820 "parsing/parser.mly" +# 1891 "parsing/parser.mly" ( let (body, ext) = _1 in (Psig_module body, ext) ) -# 36191 "parsing/parser.ml" +# 37214 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -36195,15 +37218,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1082 "parsing/parser.mly" +# 1153 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36201 "parsing/parser.ml" +# 37224 "parsing/parser.ml" in -# 1843 "parsing/parser.mly" +# 1914 "parsing/parser.mly" ( _1 ) -# 36207 "parsing/parser.ml" +# 37230 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36273,9 +37296,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined4 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 36279 "parsing/parser.ml" +# 37302 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -36286,9 +37309,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 36292 "parsing/parser.ml" +# 37315 "parsing/parser.ml" in let (_endpos_id_, _startpos_id_) = (_endpos__1_, _startpos__1_) in @@ -36296,9 +37319,9 @@ module Tables = struct let _symbolstartpos = _startpos_id_ in let _sloc = (_symbolstartpos, _endpos) in -# 1889 "parsing/parser.mly" +# 1960 "parsing/parser.mly" ( Mty.alias ~loc:(make_loc _sloc) id ) -# 36302 "parsing/parser.ml" +# 37325 "parsing/parser.ml" in let name = @@ -36307,37 +37330,37 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 36313 "parsing/parser.ml" +# 37336 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 36321 "parsing/parser.ml" +# 37344 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1880 "parsing/parser.mly" +# 1951 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Md.mk name body ~attrs ~loc ~docs, ext ) -# 36335 "parsing/parser.ml" +# 37358 "parsing/parser.ml" in -# 1822 "parsing/parser.mly" +# 1893 "parsing/parser.mly" ( let (body, ext) = _1 in (Psig_module body, ext) ) -# 36341 "parsing/parser.ml" +# 37364 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined4_ in @@ -36345,15 +37368,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1082 "parsing/parser.mly" +# 1153 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36351 "parsing/parser.ml" +# 37374 "parsing/parser.ml" in -# 1843 "parsing/parser.mly" +# 1914 "parsing/parser.mly" ( _1 ) -# 36357 "parsing/parser.ml" +# 37380 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36377,23 +37400,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 1824 "parsing/parser.mly" +# 1895 "parsing/parser.mly" ( let (body, ext) = _1 in (Psig_modsubst body, ext) ) -# 36383 "parsing/parser.ml" +# 37406 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1082 "parsing/parser.mly" +# 1153 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36391 "parsing/parser.ml" +# 37414 "parsing/parser.ml" in -# 1843 "parsing/parser.mly" +# 1914 "parsing/parser.mly" ( _1 ) -# 36397 "parsing/parser.ml" +# 37420 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36479,9 +37502,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 36485 "parsing/parser.ml" +# 37508 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -36491,49 +37514,49 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 36497 "parsing/parser.ml" +# 37520 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 36505 "parsing/parser.ml" +# 37528 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1923 "parsing/parser.mly" +# 1994 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in ext, Md.mk name mty ~attrs ~loc ~docs ) -# 36519 "parsing/parser.ml" +# 37542 "parsing/parser.ml" in -# 1255 "parsing/parser.mly" +# 1326 "parsing/parser.mly" ( let (x, b) = a in x, b :: bs ) -# 36525 "parsing/parser.ml" +# 37548 "parsing/parser.ml" in -# 1912 "parsing/parser.mly" +# 1983 "parsing/parser.mly" ( _1 ) -# 36531 "parsing/parser.ml" +# 37554 "parsing/parser.ml" in -# 1826 "parsing/parser.mly" +# 1897 "parsing/parser.mly" ( let (ext, l) = _1 in (Psig_recmodule l, ext) ) -# 36537 "parsing/parser.ml" +# 37560 "parsing/parser.ml" in let _endpos__1_ = _endpos_bs_ in @@ -36541,15 +37564,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1082 "parsing/parser.mly" +# 1153 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36547 "parsing/parser.ml" +# 37570 "parsing/parser.ml" in -# 1843 "parsing/parser.mly" +# 1914 "parsing/parser.mly" ( _1 ) -# 36553 "parsing/parser.ml" +# 37576 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36573,23 +37596,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 1828 "parsing/parser.mly" +# 1899 "parsing/parser.mly" ( let (body, ext) = _1 in (Psig_modtype body, ext) ) -# 36579 "parsing/parser.ml" +# 37602 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1082 "parsing/parser.mly" +# 1153 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36587 "parsing/parser.ml" +# 37610 "parsing/parser.ml" in -# 1843 "parsing/parser.mly" +# 1914 "parsing/parser.mly" ( _1 ) -# 36593 "parsing/parser.ml" +# 37616 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36613,23 +37636,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 1830 "parsing/parser.mly" +# 1901 "parsing/parser.mly" ( let (body, ext) = _1 in (Psig_modtypesubst body, ext) ) -# 36619 "parsing/parser.ml" +# 37642 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1082 "parsing/parser.mly" +# 1153 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36627 "parsing/parser.ml" +# 37650 "parsing/parser.ml" in -# 1843 "parsing/parser.mly" +# 1914 "parsing/parser.mly" ( _1 ) -# 36633 "parsing/parser.ml" +# 37656 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36653,23 +37676,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 1832 "parsing/parser.mly" +# 1903 "parsing/parser.mly" ( let (body, ext) = _1 in (Psig_open body, ext) ) -# 36659 "parsing/parser.ml" +# 37682 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1082 "parsing/parser.mly" +# 1153 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36667 "parsing/parser.ml" +# 37690 "parsing/parser.ml" in -# 1843 "parsing/parser.mly" +# 1914 "parsing/parser.mly" ( _1 ) -# 36673 "parsing/parser.ml" +# 37696 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36725,22 +37748,22 @@ module Tables = struct let attrs2 = let _1 = _1_inlined1 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 36731 "parsing/parser.ml" +# 37754 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined1_ in let attrs1 = -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 36738 "parsing/parser.ml" +# 37761 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos_is_functor_ in let _sloc = (_symbolstartpos, _endpos) in -# 1671 "parsing/parser.mly" +# 1742 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -36752,16 +37775,16 @@ module Tables = struct else wrap (incl, ext) ) -# 36756 "parsing/parser.ml" +# 37779 "parsing/parser.ml" in -# 1834 "parsing/parser.mly" +# 1905 "parsing/parser.mly" ( _1 psig_include (fun ~loc incl -> Jane_syntax.Include_functor.sig_item_of ~loc (Ifsig_include_functor incl)) ) -# 36765 "parsing/parser.ml" +# 37788 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_is_functor_) in @@ -36769,15 +37792,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1082 "parsing/parser.mly" +# 1153 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36775 "parsing/parser.ml" +# 37798 "parsing/parser.ml" in -# 1843 "parsing/parser.mly" +# 1914 "parsing/parser.mly" ( _1 ) -# 36781 "parsing/parser.ml" +# 37804 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36854,9 +37877,9 @@ module Tables = struct let cty : (Parsetree.class_type) = Obj.magic cty in let _7 : unit = Obj.magic _7 in let _1_inlined2 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 36860 "parsing/parser.ml" +# 37883 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -36874,9 +37897,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 36880 "parsing/parser.ml" +# 37903 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -36886,24 +37909,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 36892 "parsing/parser.ml" +# 37915 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 36900 "parsing/parser.ml" +# 37923 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2270 "parsing/parser.mly" +# 2341 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -36911,25 +37934,25 @@ module Tables = struct ext, Ci.mk id cty ~virt ~params ~attrs ~loc ~docs ) -# 36915 "parsing/parser.ml" +# 37938 "parsing/parser.ml" in -# 1255 "parsing/parser.mly" +# 1326 "parsing/parser.mly" ( let (x, b) = a in x, b :: bs ) -# 36921 "parsing/parser.ml" +# 37944 "parsing/parser.ml" in -# 2258 "parsing/parser.mly" +# 2329 "parsing/parser.mly" ( _1 ) -# 36927 "parsing/parser.ml" +# 37950 "parsing/parser.ml" in -# 1839 "parsing/parser.mly" +# 1910 "parsing/parser.mly" ( let (ext, l) = _1 in (Psig_class l, ext) ) -# 36933 "parsing/parser.ml" +# 37956 "parsing/parser.ml" in let _endpos__1_ = _endpos_bs_ in @@ -36937,15 +37960,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1082 "parsing/parser.mly" +# 1153 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36943 "parsing/parser.ml" +# 37966 "parsing/parser.ml" in -# 1843 "parsing/parser.mly" +# 1914 "parsing/parser.mly" ( _1 ) -# 36949 "parsing/parser.ml" +# 37972 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36969,23 +37992,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 1841 "parsing/parser.mly" +# 1912 "parsing/parser.mly" ( let (ext, l) = _1 in (Psig_class_type l, ext) ) -# 36975 "parsing/parser.ml" +# 37998 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1082 "parsing/parser.mly" +# 1153 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36983 "parsing/parser.ml" +# 38006 "parsing/parser.ml" in -# 1843 "parsing/parser.mly" +# 1914 "parsing/parser.mly" ( _1 ) -# 36989 "parsing/parser.ml" +# 38012 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37008,9 +38031,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 3885 "parsing/parser.mly" +# 4019 "parsing/parser.mly" ( _1 ) -# 37014 "parsing/parser.ml" +# 38037 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37035,18 +38058,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 823 "parsing/parser.mly" +# 894 "parsing/parser.mly" (string * char option) -# 37041 "parsing/parser.ml" +# 38064 "parsing/parser.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.constant) = -# 3886 "parsing/parser.mly" +# 4020 "parsing/parser.mly" ( let (n, m) = _2 in Pconst_integer("-" ^ n, m) ) -# 37050 "parsing/parser.ml" +# 38073 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37071,18 +38094,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 801 "parsing/parser.mly" +# 872 "parsing/parser.mly" (string * char option) -# 37077 "parsing/parser.ml" +# 38100 "parsing/parser.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.constant) = -# 3887 "parsing/parser.mly" +# 4021 "parsing/parser.mly" ( let (f, m) = _2 in Pconst_float("-" ^ f, m) ) -# 37086 "parsing/parser.ml" +# 38109 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37107,18 +38130,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 823 "parsing/parser.mly" +# 894 "parsing/parser.mly" (string * char option) -# 37113 "parsing/parser.ml" +# 38136 "parsing/parser.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.constant) = -# 3888 "parsing/parser.mly" +# 4022 "parsing/parser.mly" ( let (n, m) = _2 in Pconst_integer (n, m) ) -# 37122 "parsing/parser.ml" +# 38145 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37143,18 +38166,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 801 "parsing/parser.mly" +# 872 "parsing/parser.mly" (string * char option) -# 37149 "parsing/parser.ml" +# 38172 "parsing/parser.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.constant) = -# 3889 "parsing/parser.mly" +# 4023 "parsing/parser.mly" ( let (f, m) = _2 in Pconst_float(f, m) ) -# 37158 "parsing/parser.ml" +# 38181 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37195,18 +38218,18 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 3151 "parsing/parser.mly" +# 3242 "parsing/parser.mly" ( let fields, closed = _1 in let closed = match closed with Some () -> Open | None -> Closed in fields, closed ) -# 37203 "parsing/parser.ml" +# 38226 "parsing/parser.ml" in -# 3118 "parsing/parser.mly" +# 3209 "parsing/parser.mly" ( let (fields, closed) = _2 in Ppat_record(fields, closed) ) -# 37210 "parsing/parser.ml" +# 38233 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -37214,15 +38237,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 37220 "parsing/parser.ml" +# 38243 "parsing/parser.ml" in -# 3136 "parsing/parser.mly" +# 3227 "parsing/parser.mly" ( _1 ) -# 37226 "parsing/parser.ml" +# 38249 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37263,19 +38286,19 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 3151 "parsing/parser.mly" +# 3242 "parsing/parser.mly" ( let fields, closed = _1 in let closed = match closed with Some () -> Open | None -> Closed in fields, closed ) -# 37271 "parsing/parser.ml" +# 38294 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3121 "parsing/parser.mly" +# 3212 "parsing/parser.mly" ( unclosed "{" _loc__1_ "}" _loc__3_ ) -# 37279 "parsing/parser.ml" +# 38302 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -37283,15 +38306,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 37289 "parsing/parser.ml" +# 38312 "parsing/parser.ml" in -# 3136 "parsing/parser.mly" +# 3227 "parsing/parser.mly" ( _1 ) -# 37295 "parsing/parser.ml" +# 38318 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37330,15 +38353,15 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _2 = -# 3145 "parsing/parser.mly" +# 3236 "parsing/parser.mly" ( ps ) -# 37336 "parsing/parser.ml" +# 38359 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3123 "parsing/parser.mly" +# 3214 "parsing/parser.mly" ( fst (mktailpat _loc__3_ _2) ) -# 37342 "parsing/parser.ml" +# 38365 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -37346,15 +38369,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 37352 "parsing/parser.ml" +# 38375 "parsing/parser.ml" in -# 3136 "parsing/parser.mly" +# 3227 "parsing/parser.mly" ( _1 ) -# 37358 "parsing/parser.ml" +# 38381 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37393,16 +38416,16 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _2 = -# 3145 "parsing/parser.mly" +# 3236 "parsing/parser.mly" ( ps ) -# 37399 "parsing/parser.ml" +# 38422 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3125 "parsing/parser.mly" +# 3216 "parsing/parser.mly" ( unclosed "[" _loc__1_ "]" _loc__3_ ) -# 37406 "parsing/parser.ml" +# 38429 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -37410,15 +38433,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 37416 "parsing/parser.ml" +# 38439 "parsing/parser.ml" in -# 3136 "parsing/parser.mly" +# 3227 "parsing/parser.mly" ( _1 ) -# 37422 "parsing/parser.ml" +# 38445 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37459,29 +38482,29 @@ module Tables = struct let _1 = let _1 = let _2 = -# 3145 "parsing/parser.mly" +# 3236 "parsing/parser.mly" ( ps ) -# 37465 "parsing/parser.ml" +# 38488 "parsing/parser.ml" in -# 2626 "parsing/parser.mly" +# 2700 "parsing/parser.mly" ( Generic_array.Literal _2 ) -# 37470 "parsing/parser.ml" +# 38493 "parsing/parser.ml" in -# 2648 "parsing/parser.mly" +# 2722 "parsing/parser.mly" ( _1 ) -# 37476 "parsing/parser.ml" +# 38499 "parsing/parser.ml" in -# 3127 "parsing/parser.mly" +# 3218 "parsing/parser.mly" ( Generic_array.pattern "[|" "|]" (fun elts -> Ppat_array elts) _1 ) -# 37485 "parsing/parser.ml" +# 38508 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -37489,15 +38512,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 37495 "parsing/parser.ml" +# 38518 "parsing/parser.ml" in -# 3136 "parsing/parser.mly" +# 3227 "parsing/parser.mly" ( _1 ) -# 37501 "parsing/parser.ml" +# 38524 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37538,31 +38561,31 @@ module Tables = struct let _1 = let _1 = let _2 = -# 3145 "parsing/parser.mly" +# 3236 "parsing/parser.mly" ( ps ) -# 37544 "parsing/parser.ml" +# 38567 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2628 "parsing/parser.mly" +# 2702 "parsing/parser.mly" ( Generic_array.Unclosed(_loc__1_,_loc__3_) ) -# 37551 "parsing/parser.ml" +# 38574 "parsing/parser.ml" in -# 2648 "parsing/parser.mly" +# 2722 "parsing/parser.mly" ( _1 ) -# 37557 "parsing/parser.ml" +# 38580 "parsing/parser.ml" in -# 3127 "parsing/parser.mly" +# 3218 "parsing/parser.mly" ( Generic_array.pattern "[|" "|]" (fun elts -> Ppat_array elts) _1 ) -# 37566 "parsing/parser.ml" +# 38589 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -37570,15 +38593,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 37576 "parsing/parser.ml" +# 38599 "parsing/parser.ml" in -# 3136 "parsing/parser.mly" +# 3227 "parsing/parser.mly" ( _1 ) -# 37582 "parsing/parser.ml" +# 38605 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37611,23 +38634,23 @@ module Tables = struct let _1 = let _1 = let _1 = -# 2630 "parsing/parser.mly" +# 2704 "parsing/parser.mly" ( Generic_array.Literal [] ) -# 37617 "parsing/parser.ml" +# 38640 "parsing/parser.ml" in -# 2648 "parsing/parser.mly" +# 2722 "parsing/parser.mly" ( _1 ) -# 37622 "parsing/parser.ml" +# 38645 "parsing/parser.ml" in -# 3127 "parsing/parser.mly" +# 3218 "parsing/parser.mly" ( Generic_array.pattern "[|" "|]" (fun elts -> Ppat_array elts) _1 ) -# 37631 "parsing/parser.ml" +# 38654 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in @@ -37635,15 +38658,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 37641 "parsing/parser.ml" +# 38664 "parsing/parser.ml" in -# 3136 "parsing/parser.mly" +# 3227 "parsing/parser.mly" ( _1 ) -# 37647 "parsing/parser.ml" +# 38670 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37684,20 +38707,20 @@ module Tables = struct let _1 = let _1 = let _2 = -# 3145 "parsing/parser.mly" +# 3236 "parsing/parser.mly" ( ps ) -# 37690 "parsing/parser.ml" +# 38713 "parsing/parser.ml" in -# 2626 "parsing/parser.mly" +# 2700 "parsing/parser.mly" ( Generic_array.Literal _2 ) -# 37695 "parsing/parser.ml" +# 38718 "parsing/parser.ml" in -# 2648 "parsing/parser.mly" +# 2722 "parsing/parser.mly" ( _1 ) -# 37701 "parsing/parser.ml" +# 38724 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -37705,12 +38728,12 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3132 "parsing/parser.mly" +# 3223 "parsing/parser.mly" ( Generic_array.pattern "[:" ":]" (ppat_iarray _sloc) _1 ) -# 37714 "parsing/parser.ml" +# 38737 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -37718,15 +38741,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 37724 "parsing/parser.ml" +# 38747 "parsing/parser.ml" in -# 3136 "parsing/parser.mly" +# 3227 "parsing/parser.mly" ( _1 ) -# 37730 "parsing/parser.ml" +# 38753 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37767,22 +38790,22 @@ module Tables = struct let _1 = let _1 = let _2 = -# 3145 "parsing/parser.mly" +# 3236 "parsing/parser.mly" ( ps ) -# 37773 "parsing/parser.ml" +# 38796 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2628 "parsing/parser.mly" +# 2702 "parsing/parser.mly" ( Generic_array.Unclosed(_loc__1_,_loc__3_) ) -# 37780 "parsing/parser.ml" +# 38803 "parsing/parser.ml" in -# 2648 "parsing/parser.mly" +# 2722 "parsing/parser.mly" ( _1 ) -# 37786 "parsing/parser.ml" +# 38809 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -37790,12 +38813,12 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3132 "parsing/parser.mly" +# 3223 "parsing/parser.mly" ( Generic_array.pattern "[:" ":]" (ppat_iarray _sloc) _1 ) -# 37799 "parsing/parser.ml" +# 38822 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -37803,15 +38826,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 37809 "parsing/parser.ml" +# 38832 "parsing/parser.ml" in -# 3136 "parsing/parser.mly" +# 3227 "parsing/parser.mly" ( _1 ) -# 37815 "parsing/parser.ml" +# 38838 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37844,14 +38867,14 @@ module Tables = struct let _1 = let _1 = let _1 = -# 2630 "parsing/parser.mly" +# 2704 "parsing/parser.mly" ( Generic_array.Literal [] ) -# 37850 "parsing/parser.ml" +# 38873 "parsing/parser.ml" in -# 2648 "parsing/parser.mly" +# 2722 "parsing/parser.mly" ( _1 ) -# 37855 "parsing/parser.ml" +# 38878 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in @@ -37859,12 +38882,12 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3132 "parsing/parser.mly" +# 3223 "parsing/parser.mly" ( Generic_array.pattern "[:" ":]" (ppat_iarray _sloc) _1 ) -# 37868 "parsing/parser.ml" +# 38891 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in @@ -37872,15 +38895,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 37878 "parsing/parser.ml" +# 38901 "parsing/parser.ml" in -# 3136 "parsing/parser.mly" +# 3227 "parsing/parser.mly" ( _1 ) -# 37884 "parsing/parser.ml" +# 38907 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37920,9 +38943,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2535 "parsing/parser.mly" +# 2609 "parsing/parser.mly" ( reloc_exp ~loc:_sloc _2 ) -# 37926 "parsing/parser.ml" +# 38949 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37961,9 +38984,9 @@ module Tables = struct let _v : (Parsetree.expression) = let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2537 "parsing/parser.mly" +# 2611 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__3_ ) -# 37967 "parsing/parser.ml" +# 38990 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38010,9 +39033,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2539 "parsing/parser.mly" +# 2613 "parsing/parser.mly" ( mkexp_constraint ~loc:_sloc _2 _3 ) -# 38016 "parsing/parser.ml" +# 39039 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38064,14 +39087,14 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2540 "parsing/parser.mly" +# 2614 "parsing/parser.mly" ( None ) -# 38070 "parsing/parser.ml" +# 39093 "parsing/parser.ml" in -# 2427 "parsing/parser.mly" +# 2499 "parsing/parser.mly" ( array, d, Paren, i, r ) -# 38075 "parsing/parser.ml" +# 39098 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -38079,9 +39102,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2541 "parsing/parser.mly" +# 2615 "parsing/parser.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 38085 "parsing/parser.ml" +# 39108 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38133,14 +39156,14 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2540 "parsing/parser.mly" +# 2614 "parsing/parser.mly" ( None ) -# 38139 "parsing/parser.ml" +# 39162 "parsing/parser.ml" in -# 2429 "parsing/parser.mly" +# 2501 "parsing/parser.mly" ( array, d, Brace, i, r ) -# 38144 "parsing/parser.ml" +# 39167 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -38148,9 +39171,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2541 "parsing/parser.mly" +# 2615 "parsing/parser.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 38154 "parsing/parser.ml" +# 39177 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38202,14 +39225,14 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2540 "parsing/parser.mly" +# 2614 "parsing/parser.mly" ( None ) -# 38208 "parsing/parser.ml" +# 39231 "parsing/parser.ml" in -# 2431 "parsing/parser.mly" +# 2503 "parsing/parser.mly" ( array, d, Bracket, i, r ) -# 38213 "parsing/parser.ml" +# 39236 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -38217,9 +39240,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2541 "parsing/parser.mly" +# 2615 "parsing/parser.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 38223 "parsing/parser.ml" +# 39246 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38265,9 +39288,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) -# 38271 "parsing/parser.ml" +# 39294 "parsing/parser.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -38275,31 +39298,31 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2544 "parsing/parser.mly" +# 2618 "parsing/parser.mly" ( None ) -# 38281 "parsing/parser.ml" +# 39304 "parsing/parser.ml" in let i = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 38286 "parsing/parser.ml" +# 39309 "parsing/parser.ml" in let d = let _1 = # 124 "" ( None ) -# 38292 "parsing/parser.ml" +# 39315 "parsing/parser.ml" in -# 2443 "parsing/parser.mly" +# 2515 "parsing/parser.mly" ( _1, _2 ) -# 38297 "parsing/parser.ml" +# 39320 "parsing/parser.ml" in -# 2427 "parsing/parser.mly" +# 2499 "parsing/parser.mly" ( array, d, Paren, i, r ) -# 38303 "parsing/parser.ml" +# 39326 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -38307,9 +39330,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2545 "parsing/parser.mly" +# 2619 "parsing/parser.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 38313 "parsing/parser.ml" +# 39336 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38367,9 +39390,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) -# 38373 "parsing/parser.ml" +# 39396 "parsing/parser.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -38379,39 +39402,39 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2544 "parsing/parser.mly" +# 2618 "parsing/parser.mly" ( None ) -# 38385 "parsing/parser.ml" +# 39408 "parsing/parser.ml" in let i = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 38390 "parsing/parser.ml" +# 39413 "parsing/parser.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2443 "parsing/parser.mly" +# 2515 "parsing/parser.mly" (_2) -# 38398 "parsing/parser.ml" +# 39421 "parsing/parser.ml" in # 126 "" ( Some x ) -# 38403 "parsing/parser.ml" +# 39426 "parsing/parser.ml" in -# 2443 "parsing/parser.mly" +# 2515 "parsing/parser.mly" ( _1, _2 ) -# 38409 "parsing/parser.ml" +# 39432 "parsing/parser.ml" in -# 2427 "parsing/parser.mly" +# 2499 "parsing/parser.mly" ( array, d, Paren, i, r ) -# 38415 "parsing/parser.ml" +# 39438 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -38419,9 +39442,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2545 "parsing/parser.mly" +# 2619 "parsing/parser.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 38425 "parsing/parser.ml" +# 39448 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38467,9 +39490,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) -# 38473 "parsing/parser.ml" +# 39496 "parsing/parser.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -38477,31 +39500,31 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2544 "parsing/parser.mly" +# 2618 "parsing/parser.mly" ( None ) -# 38483 "parsing/parser.ml" +# 39506 "parsing/parser.ml" in let i = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 38488 "parsing/parser.ml" +# 39511 "parsing/parser.ml" in let d = let _1 = # 124 "" ( None ) -# 38494 "parsing/parser.ml" +# 39517 "parsing/parser.ml" in -# 2443 "parsing/parser.mly" +# 2515 "parsing/parser.mly" ( _1, _2 ) -# 38499 "parsing/parser.ml" +# 39522 "parsing/parser.ml" in -# 2429 "parsing/parser.mly" +# 2501 "parsing/parser.mly" ( array, d, Brace, i, r ) -# 38505 "parsing/parser.ml" +# 39528 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -38509,9 +39532,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2545 "parsing/parser.mly" +# 2619 "parsing/parser.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 38515 "parsing/parser.ml" +# 39538 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38569,9 +39592,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) -# 38575 "parsing/parser.ml" +# 39598 "parsing/parser.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -38581,39 +39604,39 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2544 "parsing/parser.mly" +# 2618 "parsing/parser.mly" ( None ) -# 38587 "parsing/parser.ml" +# 39610 "parsing/parser.ml" in let i = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 38592 "parsing/parser.ml" +# 39615 "parsing/parser.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2443 "parsing/parser.mly" +# 2515 "parsing/parser.mly" (_2) -# 38600 "parsing/parser.ml" +# 39623 "parsing/parser.ml" in # 126 "" ( Some x ) -# 38605 "parsing/parser.ml" +# 39628 "parsing/parser.ml" in -# 2443 "parsing/parser.mly" +# 2515 "parsing/parser.mly" ( _1, _2 ) -# 38611 "parsing/parser.ml" +# 39634 "parsing/parser.ml" in -# 2429 "parsing/parser.mly" +# 2501 "parsing/parser.mly" ( array, d, Brace, i, r ) -# 38617 "parsing/parser.ml" +# 39640 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -38621,9 +39644,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2545 "parsing/parser.mly" +# 2619 "parsing/parser.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 38627 "parsing/parser.ml" +# 39650 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38669,9 +39692,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) -# 38675 "parsing/parser.ml" +# 39698 "parsing/parser.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -38679,31 +39702,31 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2544 "parsing/parser.mly" +# 2618 "parsing/parser.mly" ( None ) -# 38685 "parsing/parser.ml" +# 39708 "parsing/parser.ml" in let i = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 38690 "parsing/parser.ml" +# 39713 "parsing/parser.ml" in let d = let _1 = # 124 "" ( None ) -# 38696 "parsing/parser.ml" +# 39719 "parsing/parser.ml" in -# 2443 "parsing/parser.mly" +# 2515 "parsing/parser.mly" ( _1, _2 ) -# 38701 "parsing/parser.ml" +# 39724 "parsing/parser.ml" in -# 2431 "parsing/parser.mly" +# 2503 "parsing/parser.mly" ( array, d, Bracket, i, r ) -# 38707 "parsing/parser.ml" +# 39730 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -38711,9 +39734,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2545 "parsing/parser.mly" +# 2619 "parsing/parser.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 38717 "parsing/parser.ml" +# 39740 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38771,9 +39794,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) -# 38777 "parsing/parser.ml" +# 39800 "parsing/parser.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -38783,39 +39806,39 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2544 "parsing/parser.mly" +# 2618 "parsing/parser.mly" ( None ) -# 38789 "parsing/parser.ml" +# 39812 "parsing/parser.ml" in let i = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 38794 "parsing/parser.ml" +# 39817 "parsing/parser.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2443 "parsing/parser.mly" +# 2515 "parsing/parser.mly" (_2) -# 38802 "parsing/parser.ml" +# 39825 "parsing/parser.ml" in # 126 "" ( Some x ) -# 38807 "parsing/parser.ml" +# 39830 "parsing/parser.ml" in -# 2443 "parsing/parser.mly" +# 2515 "parsing/parser.mly" ( _1, _2 ) -# 38813 "parsing/parser.ml" +# 39836 "parsing/parser.ml" in -# 2431 "parsing/parser.mly" +# 2503 "parsing/parser.mly" ( array, d, Bracket, i, r ) -# 38819 "parsing/parser.ml" +# 39842 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -38823,9 +39846,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2545 "parsing/parser.mly" +# 2619 "parsing/parser.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 38829 "parsing/parser.ml" +# 39852 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38879,15 +39902,15 @@ module Tables = struct let _loc__p_ = (_startpos__p_, _endpos__p_) in let _loc__e_ = (_startpos__e_, _endpos__e_) in -# 2436 "parsing/parser.mly" +# 2508 "parsing/parser.mly" ( indexop_unclosed_error _loc__p_ Paren _loc__e_ ) -# 38885 "parsing/parser.ml" +# 39908 "parsing/parser.ml" in -# 2546 "parsing/parser.mly" +# 2620 "parsing/parser.mly" ( _1 ) -# 38891 "parsing/parser.ml" +# 39914 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38941,15 +39964,15 @@ module Tables = struct let _loc__p_ = (_startpos__p_, _endpos__p_) in let _loc__e_ = (_startpos__e_, _endpos__e_) in -# 2438 "parsing/parser.mly" +# 2510 "parsing/parser.mly" ( indexop_unclosed_error _loc__p_ Brace _loc__e_ ) -# 38947 "parsing/parser.ml" +# 39970 "parsing/parser.ml" in -# 2546 "parsing/parser.mly" +# 2620 "parsing/parser.mly" ( _1 ) -# 38953 "parsing/parser.ml" +# 39976 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39003,15 +40026,15 @@ module Tables = struct let _loc__p_ = (_startpos__p_, _endpos__p_) in let _loc__e_ = (_startpos__e_, _endpos__e_) in -# 2440 "parsing/parser.mly" +# 2512 "parsing/parser.mly" ( indexop_unclosed_error _loc__p_ Bracket _loc__e_ ) -# 39009 "parsing/parser.ml" +# 40032 "parsing/parser.ml" in -# 2546 "parsing/parser.mly" +# 2620 "parsing/parser.mly" ( _1 ) -# 39015 "parsing/parser.ml" +# 40038 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39057,9 +40080,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _p : unit = Obj.magic _p in let _2 : ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) -# 39063 "parsing/parser.ml" +# 40086 "parsing/parser.ml" ) = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -39067,34 +40090,34 @@ module Tables = struct let _endpos = _endpos__e_ in let _v : (Parsetree.expression) = let _1 = let _4 = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 39073 "parsing/parser.ml" +# 40096 "parsing/parser.ml" in let _2 = let _1 = # 124 "" ( None ) -# 39079 "parsing/parser.ml" +# 40102 "parsing/parser.ml" in -# 2443 "parsing/parser.mly" +# 2515 "parsing/parser.mly" ( _1, _2 ) -# 39084 "parsing/parser.ml" +# 40107 "parsing/parser.ml" in let _loc__p_ = (_startpos__p_, _endpos__p_) in let _loc__e_ = (_startpos__e_, _endpos__e_) in -# 2436 "parsing/parser.mly" +# 2508 "parsing/parser.mly" ( indexop_unclosed_error _loc__p_ Paren _loc__e_ ) -# 39092 "parsing/parser.ml" +# 40115 "parsing/parser.ml" in -# 2547 "parsing/parser.mly" +# 2621 "parsing/parser.mly" ( _1 ) -# 39098 "parsing/parser.ml" +# 40121 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39152,9 +40175,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _p : unit = Obj.magic _p in let _2 : ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) -# 39158 "parsing/parser.ml" +# 40181 "parsing/parser.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -39164,42 +40187,42 @@ module Tables = struct let _endpos = _endpos__e_ in let _v : (Parsetree.expression) = let _1 = let _4 = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 39170 "parsing/parser.ml" +# 40193 "parsing/parser.ml" in let _2 = let _1 = let _2 = _2_inlined1 in let x = -# 2443 "parsing/parser.mly" +# 2515 "parsing/parser.mly" (_2) -# 39178 "parsing/parser.ml" +# 40201 "parsing/parser.ml" in # 126 "" ( Some x ) -# 39183 "parsing/parser.ml" +# 40206 "parsing/parser.ml" in -# 2443 "parsing/parser.mly" +# 2515 "parsing/parser.mly" ( _1, _2 ) -# 39189 "parsing/parser.ml" +# 40212 "parsing/parser.ml" in let _loc__p_ = (_startpos__p_, _endpos__p_) in let _loc__e_ = (_startpos__e_, _endpos__e_) in -# 2436 "parsing/parser.mly" +# 2508 "parsing/parser.mly" ( indexop_unclosed_error _loc__p_ Paren _loc__e_ ) -# 39197 "parsing/parser.ml" +# 40220 "parsing/parser.ml" in -# 2547 "parsing/parser.mly" +# 2621 "parsing/parser.mly" ( _1 ) -# 39203 "parsing/parser.ml" +# 40226 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39245,9 +40268,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _p : unit = Obj.magic _p in let _2 : ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) -# 39251 "parsing/parser.ml" +# 40274 "parsing/parser.ml" ) = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -39255,34 +40278,34 @@ module Tables = struct let _endpos = _endpos__e_ in let _v : (Parsetree.expression) = let _1 = let _4 = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 39261 "parsing/parser.ml" +# 40284 "parsing/parser.ml" in let _2 = let _1 = # 124 "" ( None ) -# 39267 "parsing/parser.ml" +# 40290 "parsing/parser.ml" in -# 2443 "parsing/parser.mly" +# 2515 "parsing/parser.mly" ( _1, _2 ) -# 39272 "parsing/parser.ml" +# 40295 "parsing/parser.ml" in let _loc__p_ = (_startpos__p_, _endpos__p_) in let _loc__e_ = (_startpos__e_, _endpos__e_) in -# 2438 "parsing/parser.mly" +# 2510 "parsing/parser.mly" ( indexop_unclosed_error _loc__p_ Brace _loc__e_ ) -# 39280 "parsing/parser.ml" +# 40303 "parsing/parser.ml" in -# 2547 "parsing/parser.mly" +# 2621 "parsing/parser.mly" ( _1 ) -# 39286 "parsing/parser.ml" +# 40309 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39340,9 +40363,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _p : unit = Obj.magic _p in let _2 : ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) -# 39346 "parsing/parser.ml" +# 40369 "parsing/parser.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -39352,42 +40375,42 @@ module Tables = struct let _endpos = _endpos__e_ in let _v : (Parsetree.expression) = let _1 = let _4 = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 39358 "parsing/parser.ml" +# 40381 "parsing/parser.ml" in let _2 = let _1 = let _2 = _2_inlined1 in let x = -# 2443 "parsing/parser.mly" +# 2515 "parsing/parser.mly" (_2) -# 39366 "parsing/parser.ml" +# 40389 "parsing/parser.ml" in # 126 "" ( Some x ) -# 39371 "parsing/parser.ml" +# 40394 "parsing/parser.ml" in -# 2443 "parsing/parser.mly" +# 2515 "parsing/parser.mly" ( _1, _2 ) -# 39377 "parsing/parser.ml" +# 40400 "parsing/parser.ml" in let _loc__p_ = (_startpos__p_, _endpos__p_) in let _loc__e_ = (_startpos__e_, _endpos__e_) in -# 2438 "parsing/parser.mly" +# 2510 "parsing/parser.mly" ( indexop_unclosed_error _loc__p_ Brace _loc__e_ ) -# 39385 "parsing/parser.ml" +# 40408 "parsing/parser.ml" in -# 2547 "parsing/parser.mly" +# 2621 "parsing/parser.mly" ( _1 ) -# 39391 "parsing/parser.ml" +# 40414 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39433,9 +40456,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _p : unit = Obj.magic _p in let _2 : ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) -# 39439 "parsing/parser.ml" +# 40462 "parsing/parser.ml" ) = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -39443,34 +40466,34 @@ module Tables = struct let _endpos = _endpos__e_ in let _v : (Parsetree.expression) = let _1 = let _4 = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 39449 "parsing/parser.ml" +# 40472 "parsing/parser.ml" in let _2 = let _1 = # 124 "" ( None ) -# 39455 "parsing/parser.ml" +# 40478 "parsing/parser.ml" in -# 2443 "parsing/parser.mly" +# 2515 "parsing/parser.mly" ( _1, _2 ) -# 39460 "parsing/parser.ml" +# 40483 "parsing/parser.ml" in let _loc__p_ = (_startpos__p_, _endpos__p_) in let _loc__e_ = (_startpos__e_, _endpos__e_) in -# 2440 "parsing/parser.mly" +# 2512 "parsing/parser.mly" ( indexop_unclosed_error _loc__p_ Bracket _loc__e_ ) -# 39468 "parsing/parser.ml" +# 40491 "parsing/parser.ml" in -# 2547 "parsing/parser.mly" +# 2621 "parsing/parser.mly" ( _1 ) -# 39474 "parsing/parser.ml" +# 40497 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39528,9 +40551,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _p : unit = Obj.magic _p in let _2 : ( -# 818 "parsing/parser.mly" +# 889 "parsing/parser.mly" (string) -# 39534 "parsing/parser.ml" +# 40557 "parsing/parser.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -39540,42 +40563,42 @@ module Tables = struct let _endpos = _endpos__e_ in let _v : (Parsetree.expression) = let _1 = let _4 = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 39546 "parsing/parser.ml" +# 40569 "parsing/parser.ml" in let _2 = let _1 = let _2 = _2_inlined1 in let x = -# 2443 "parsing/parser.mly" +# 2515 "parsing/parser.mly" (_2) -# 39554 "parsing/parser.ml" +# 40577 "parsing/parser.ml" in # 126 "" ( Some x ) -# 39559 "parsing/parser.ml" +# 40582 "parsing/parser.ml" in -# 2443 "parsing/parser.mly" +# 2515 "parsing/parser.mly" ( _1, _2 ) -# 39565 "parsing/parser.ml" +# 40588 "parsing/parser.ml" in let _loc__p_ = (_startpos__p_, _endpos__p_) in let _loc__e_ = (_startpos__e_, _endpos__e_) in -# 2440 "parsing/parser.mly" +# 2512 "parsing/parser.mly" ( indexop_unclosed_error _loc__p_ Bracket _loc__e_ ) -# 39573 "parsing/parser.ml" +# 40596 "parsing/parser.ml" in -# 2547 "parsing/parser.mly" +# 2621 "parsing/parser.mly" ( _1 ) -# 39579 "parsing/parser.ml" +# 40602 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39629,15 +40652,15 @@ module Tables = struct let attrs = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 39635 "parsing/parser.ml" +# 40658 "parsing/parser.ml" in -# 2556 "parsing/parser.mly" +# 2630 "parsing/parser.mly" ( e.pexp_desc, (ext, attrs @ e.pexp_attributes) ) -# 39641 "parsing/parser.ml" +# 40664 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -39645,10 +40668,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2549 "parsing/parser.mly" +# 2623 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 39652 "parsing/parser.ml" +# 40675 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39697,24 +40720,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 39703 "parsing/parser.ml" +# 40726 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 39709 "parsing/parser.ml" +# 40732 "parsing/parser.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2558 "parsing/parser.mly" +# 2632 "parsing/parser.mly" ( Pexp_construct (mkloc (Lident "()") (make_loc _sloc), None), _2 ) -# 39718 "parsing/parser.ml" +# 40741 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -39722,10 +40745,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2549 "parsing/parser.mly" +# 2623 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 39729 "parsing/parser.ml" +# 40752 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39781,23 +40804,23 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 39787 "parsing/parser.ml" +# 40810 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 39793 "parsing/parser.ml" +# 40816 "parsing/parser.ml" in let _loc__4_ = (_startpos__4_, _endpos__4_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2560 "parsing/parser.mly" +# 2634 "parsing/parser.mly" ( unclosed "begin" _loc__1_ "end" _loc__4_ ) -# 39801 "parsing/parser.ml" +# 40824 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -39805,10 +40828,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2549 "parsing/parser.mly" +# 2623 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 39812 "parsing/parser.ml" +# 40835 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39858,9 +40881,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 39864 "parsing/parser.ml" +# 40887 "parsing/parser.ml" in let _2 = @@ -39868,21 +40891,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 39874 "parsing/parser.ml" +# 40897 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 39880 "parsing/parser.ml" +# 40903 "parsing/parser.ml" in -# 2562 "parsing/parser.mly" +# 2636 "parsing/parser.mly" ( Pexp_new(_3), _2 ) -# 39886 "parsing/parser.ml" +# 40909 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -39890,10 +40913,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2549 "parsing/parser.mly" +# 2623 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 39897 "parsing/parser.ml" +# 40920 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39956,21 +40979,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 39962 "parsing/parser.ml" +# 40985 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 39968 "parsing/parser.ml" +# 40991 "parsing/parser.ml" in -# 2564 "parsing/parser.mly" +# 2638 "parsing/parser.mly" ( Pexp_pack _4, _3 ) -# 39974 "parsing/parser.ml" +# 40997 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -39978,10 +41001,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2549 "parsing/parser.mly" +# 2623 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 39985 "parsing/parser.ml" +# 41008 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40059,11 +41082,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3799 "parsing/parser.mly" +# 3933 "parsing/parser.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 40067 "parsing/parser.ml" +# 41090 "parsing/parser.ml" in let _3 = @@ -40071,24 +41094,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 40077 "parsing/parser.ml" +# 41100 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 40083 "parsing/parser.ml" +# 41106 "parsing/parser.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2566 "parsing/parser.mly" +# 2640 "parsing/parser.mly" ( Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _4), _6), _3 ) -# 40092 "parsing/parser.ml" +# 41115 "parsing/parser.ml" in let _endpos__1_ = _endpos__7_ in @@ -40096,10 +41119,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2549 "parsing/parser.mly" +# 2623 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 40103 "parsing/parser.ml" +# 41126 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40169,23 +41192,23 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 40175 "parsing/parser.ml" +# 41198 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 40181 "parsing/parser.ml" +# 41204 "parsing/parser.ml" in let _loc__6_ = (_startpos__6_, _endpos__6_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2568 "parsing/parser.mly" +# 2642 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__6_ ) -# 40189 "parsing/parser.ml" +# 41212 "parsing/parser.ml" in let _endpos__1_ = _endpos__6_ in @@ -40193,10 +41216,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2549 "parsing/parser.mly" +# 2623 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 40200 "parsing/parser.ml" +# 41223 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40261,27 +41284,27 @@ module Tables = struct let _1 = # 260 "" ( List.flatten xss ) -# 40265 "parsing/parser.ml" +# 41288 "parsing/parser.ml" in -# 2086 "parsing/parser.mly" +# 2157 "parsing/parser.mly" ( _1 ) -# 40270 "parsing/parser.ml" +# 41293 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1018 "parsing/parser.mly" +# 1089 "parsing/parser.mly" ( extra_cstr _startpos _endpos _1 ) -# 40279 "parsing/parser.ml" +# 41302 "parsing/parser.ml" in -# 2073 "parsing/parser.mly" +# 2144 "parsing/parser.mly" ( Cstr.mk _1 _2 ) -# 40285 "parsing/parser.ml" +# 41308 "parsing/parser.ml" in let _2 = @@ -40289,21 +41312,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 40295 "parsing/parser.ml" +# 41318 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 40301 "parsing/parser.ml" +# 41324 "parsing/parser.ml" in -# 2570 "parsing/parser.mly" +# 2644 "parsing/parser.mly" ( Pexp_object _3, _2 ) -# 40307 "parsing/parser.ml" +# 41330 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -40311,10 +41334,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2549 "parsing/parser.mly" +# 2623 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 40318 "parsing/parser.ml" +# 41341 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40379,27 +41402,27 @@ module Tables = struct let _1 = # 260 "" ( List.flatten xss ) -# 40383 "parsing/parser.ml" +# 41406 "parsing/parser.ml" in -# 2086 "parsing/parser.mly" +# 2157 "parsing/parser.mly" ( _1 ) -# 40388 "parsing/parser.ml" +# 41411 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1018 "parsing/parser.mly" +# 1089 "parsing/parser.mly" ( extra_cstr _startpos _endpos _1 ) -# 40397 "parsing/parser.ml" +# 41420 "parsing/parser.ml" in -# 2073 "parsing/parser.mly" +# 2144 "parsing/parser.mly" ( Cstr.mk _1 _2 ) -# 40403 "parsing/parser.ml" +# 41426 "parsing/parser.ml" in let _2 = @@ -40407,23 +41430,23 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 40413 "parsing/parser.ml" +# 41436 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 40419 "parsing/parser.ml" +# 41442 "parsing/parser.ml" in let _loc__4_ = (_startpos__4_, _endpos__4_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2572 "parsing/parser.mly" +# 2646 "parsing/parser.mly" ( unclosed "object" _loc__1_ "end" _loc__4_ ) -# 40427 "parsing/parser.ml" +# 41450 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -40431,10 +41454,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2549 "parsing/parser.mly" +# 2623 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 40438 "parsing/parser.ml" +# 41461 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40463,30 +41486,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 40469 "parsing/parser.ml" +# 41492 "parsing/parser.ml" in -# 2653 "parsing/parser.mly" +# 2727 "parsing/parser.mly" ( Pexp_ident (_1) ) -# 40475 "parsing/parser.ml" +# 41498 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40484 "parsing/parser.ml" +# 41507 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 40490 "parsing/parser.ml" +# 41513 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40510,23 +41533,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 2655 "parsing/parser.mly" +# 2729 "parsing/parser.mly" ( Pexp_constant _1 ) -# 40516 "parsing/parser.ml" +# 41539 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40524 "parsing/parser.ml" +# 41547 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 40530 "parsing/parser.ml" +# 41553 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40555,30 +41578,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 40561 "parsing/parser.ml" +# 41584 "parsing/parser.ml" in -# 2657 "parsing/parser.mly" +# 2731 "parsing/parser.mly" ( Pexp_construct(_1, None) ) -# 40567 "parsing/parser.ml" +# 41590 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40576 "parsing/parser.ml" +# 41599 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 40582 "parsing/parser.ml" +# 41605 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40602,23 +41625,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 2659 "parsing/parser.mly" +# 2733 "parsing/parser.mly" ( Pexp_variant(_1, None) ) -# 40608 "parsing/parser.ml" +# 41631 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40616 "parsing/parser.ml" +# 41639 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 40622 "parsing/parser.ml" +# 41645 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40644,9 +41667,9 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.expression) = Obj.magic _2 in let _1 : ( -# 864 "parsing/parser.mly" +# 935 "parsing/parser.mly" (string) -# 40650 "parsing/parser.ml" +# 41673 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -40658,15 +41681,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1051 "parsing/parser.mly" +# 1122 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 40664 "parsing/parser.ml" +# 41687 "parsing/parser.ml" in -# 2661 "parsing/parser.mly" +# 2735 "parsing/parser.mly" ( Pexp_apply(_1, [Nolabel,_2]) ) -# 40670 "parsing/parser.ml" +# 41693 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in @@ -40674,15 +41697,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40680 "parsing/parser.ml" +# 41703 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 40686 "parsing/parser.ml" +# 41709 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40715,23 +41738,23 @@ module Tables = struct let _1 = let _1 = let _1 = -# 2662 "parsing/parser.mly" +# 2736 "parsing/parser.mly" ("!") -# 40721 "parsing/parser.ml" +# 41744 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1051 "parsing/parser.mly" +# 1122 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 40729 "parsing/parser.ml" +# 41752 "parsing/parser.ml" in -# 2663 "parsing/parser.mly" +# 2737 "parsing/parser.mly" ( Pexp_apply(_1, [Nolabel,_2]) ) -# 40735 "parsing/parser.ml" +# 41758 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in @@ -40739,15 +41762,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40745 "parsing/parser.ml" +# 41768 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 40751 "parsing/parser.ml" +# 41774 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40786,14 +41809,14 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _2 = -# 2956 "parsing/parser.mly" +# 3036 "parsing/parser.mly" ( xs ) -# 40792 "parsing/parser.ml" +# 41815 "parsing/parser.ml" in -# 2665 "parsing/parser.mly" +# 2739 "parsing/parser.mly" ( Pexp_override _2 ) -# 40797 "parsing/parser.ml" +# 41820 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -40801,15 +41824,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40807 "parsing/parser.ml" +# 41830 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 40813 "parsing/parser.ml" +# 41836 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40848,16 +41871,16 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _2 = -# 2956 "parsing/parser.mly" +# 3036 "parsing/parser.mly" ( xs ) -# 40854 "parsing/parser.ml" +# 41877 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2667 "parsing/parser.mly" +# 2741 "parsing/parser.mly" ( unclosed "{<" _loc__1_ ">}" _loc__3_ ) -# 40861 "parsing/parser.ml" +# 41884 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -40865,15 +41888,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40871 "parsing/parser.ml" +# 41894 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 40877 "parsing/parser.ml" +# 41900 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40904,24 +41927,24 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 2669 "parsing/parser.mly" +# 2743 "parsing/parser.mly" ( Pexp_override [] ) -# 40910 "parsing/parser.ml" +# 41933 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40919 "parsing/parser.ml" +# 41942 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 40925 "parsing/parser.ml" +# 41948 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40965,15 +41988,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 40971 "parsing/parser.ml" +# 41994 "parsing/parser.ml" in -# 2671 "parsing/parser.mly" +# 2745 "parsing/parser.mly" ( Pexp_field(_1, _3) ) -# 40977 "parsing/parser.ml" +# 42000 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -40981,15 +42004,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40987 "parsing/parser.ml" +# 42010 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 40993 "parsing/parser.ml" +# 42016 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41047,24 +42070,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 41053 "parsing/parser.ml" +# 42076 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1735 "parsing/parser.mly" +# 1806 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 41062 "parsing/parser.ml" +# 42085 "parsing/parser.ml" in -# 2673 "parsing/parser.mly" +# 2747 "parsing/parser.mly" ( Pexp_open(od, _4) ) -# 41068 "parsing/parser.ml" +# 42091 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -41072,15 +42095,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41078 "parsing/parser.ml" +# 42101 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 41084 "parsing/parser.ml" +# 42107 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41133,9 +42156,9 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _4 = -# 2956 "parsing/parser.mly" +# 3036 "parsing/parser.mly" ( xs ) -# 41139 "parsing/parser.ml" +# 42162 "parsing/parser.ml" in let od = let _1 = @@ -41143,18 +42166,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 41149 "parsing/parser.ml" +# 42172 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1735 "parsing/parser.mly" +# 1806 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 41158 "parsing/parser.ml" +# 42181 "parsing/parser.ml" in let _startpos_od_ = _startpos__1_ in @@ -41162,10 +42185,10 @@ module Tables = struct let _symbolstartpos = _startpos_od_ in let _sloc = (_symbolstartpos, _endpos) in -# 2675 "parsing/parser.mly" +# 2749 "parsing/parser.mly" ( (* TODO: review the location of Pexp_override *) Pexp_open(od, mkexp ~loc:_sloc (Pexp_override _4)) ) -# 41169 "parsing/parser.ml" +# 42192 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -41173,15 +42196,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41179 "parsing/parser.ml" +# 42202 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 41185 "parsing/parser.ml" +# 42208 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41234,16 +42257,16 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _4 = -# 2956 "parsing/parser.mly" +# 3036 "parsing/parser.mly" ( xs ) -# 41240 "parsing/parser.ml" +# 42263 "parsing/parser.ml" in let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2678 "parsing/parser.mly" +# 2752 "parsing/parser.mly" ( unclosed "{<" _loc__3_ ">}" _loc__5_ ) -# 41247 "parsing/parser.ml" +# 42270 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -41251,15 +42274,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41257 "parsing/parser.ml" +# 42280 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 41263 "parsing/parser.ml" +# 42286 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41290,9 +42313,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 41296 "parsing/parser.ml" +# 42319 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in @@ -41304,23 +42327,23 @@ module Tables = struct let _3 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 3873 "parsing/parser.mly" +# 4007 "parsing/parser.mly" ( _1 ) -# 41310 "parsing/parser.ml" +# 42333 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 41318 "parsing/parser.ml" +# 42341 "parsing/parser.ml" in -# 2680 "parsing/parser.mly" +# 2754 "parsing/parser.mly" ( Pexp_send(_1, _3) ) -# 41324 "parsing/parser.ml" +# 42347 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -41328,15 +42351,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41334 "parsing/parser.ml" +# 42357 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 41340 "parsing/parser.ml" +# 42363 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41368,9 +42391,9 @@ module Tables = struct } = _menhir_stack in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined1 : ( -# 875 "parsing/parser.mly" +# 946 "parsing/parser.mly" (string) -# 41374 "parsing/parser.ml" +# 42397 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -41384,15 +42407,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1051 "parsing/parser.mly" +# 1122 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 41390 "parsing/parser.ml" +# 42413 "parsing/parser.ml" in -# 2682 "parsing/parser.mly" +# 2756 "parsing/parser.mly" ( mkinfix _1 _2 _3 ) -# 41396 "parsing/parser.ml" +# 42419 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -41400,15 +42423,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41406 "parsing/parser.ml" +# 42429 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 41412 "parsing/parser.ml" +# 42435 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41432,23 +42455,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 2684 "parsing/parser.mly" +# 2758 "parsing/parser.mly" ( Pexp_extension _1 ) -# 41438 "parsing/parser.ml" +# 42461 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41446 "parsing/parser.ml" +# 42469 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 41452 "parsing/parser.ml" +# 42475 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41496,18 +42519,18 @@ module Tables = struct let _3 = let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in let _1 = -# 2685 "parsing/parser.mly" +# 2759 "parsing/parser.mly" (Lident "()") -# 41502 "parsing/parser.ml" +# 42525 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 41511 "parsing/parser.ml" +# 42534 "parsing/parser.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in @@ -41517,25 +42540,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 41523 "parsing/parser.ml" +# 42546 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1735 "parsing/parser.mly" +# 1806 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 41532 "parsing/parser.ml" +# 42555 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2686 "parsing/parser.mly" +# 2760 "parsing/parser.mly" ( Pexp_open(od, mkexp ~loc:(_loc__3_) (Pexp_construct(_3, None))) ) -# 41539 "parsing/parser.ml" +# 42562 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -41543,15 +42566,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41549 "parsing/parser.ml" +# 42572 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 41555 "parsing/parser.ml" +# 42578 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41606,9 +42629,9 @@ module Tables = struct let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2688 "parsing/parser.mly" +# 2762 "parsing/parser.mly" ( unclosed "(" _loc__3_ ")" _loc__5_ ) -# 41612 "parsing/parser.ml" +# 42635 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -41616,15 +42639,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41622 "parsing/parser.ml" +# 42645 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 41628 "parsing/parser.ml" +# 42651 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41663,25 +42686,25 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 2690 "parsing/parser.mly" +# 2764 "parsing/parser.mly" ( let (exten, fields) = _2 in Pexp_record(fields, exten) ) -# 41670 "parsing/parser.ml" +# 42693 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41679 "parsing/parser.ml" +# 42702 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 41685 "parsing/parser.ml" +# 42708 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41723,9 +42746,9 @@ module Tables = struct let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2693 "parsing/parser.mly" +# 2767 "parsing/parser.mly" ( unclosed "{" _loc__1_ "}" _loc__3_ ) -# 41729 "parsing/parser.ml" +# 42752 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -41733,15 +42756,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41739 "parsing/parser.ml" +# 42762 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 41745 "parsing/parser.ml" +# 42768 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41800,27 +42823,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 41806 "parsing/parser.ml" +# 42829 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1735 "parsing/parser.mly" +# 1806 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 41815 "parsing/parser.ml" +# 42838 "parsing/parser.ml" in let _endpos = _endpos__5_ in -# 2695 "parsing/parser.mly" +# 2769 "parsing/parser.mly" ( let (exten, fields) = _4 in Pexp_open(od, mkexp ~loc:(_startpos__3_, _endpos) (Pexp_record(fields, exten))) ) -# 41824 "parsing/parser.ml" +# 42847 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -41828,15 +42851,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41834 "parsing/parser.ml" +# 42857 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 41840 "parsing/parser.ml" +# 42863 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41892,9 +42915,9 @@ module Tables = struct let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2699 "parsing/parser.mly" +# 2773 "parsing/parser.mly" ( unclosed "{" _loc__3_ "}" _loc__5_ ) -# 41898 "parsing/parser.ml" +# 42921 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -41902,15 +42925,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41908 "parsing/parser.ml" +# 42931 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 41914 "parsing/parser.ml" +# 42937 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41951,29 +42974,29 @@ module Tables = struct let _1 = let _1 = let _2 = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 41957 "parsing/parser.ml" +# 42980 "parsing/parser.ml" in -# 2626 "parsing/parser.mly" +# 2700 "parsing/parser.mly" ( Generic_array.Literal _2 ) -# 41962 "parsing/parser.ml" +# 42985 "parsing/parser.ml" in -# 2635 "parsing/parser.mly" +# 2709 "parsing/parser.mly" ( _1 ) -# 41968 "parsing/parser.ml" +# 42991 "parsing/parser.ml" in -# 2701 "parsing/parser.mly" +# 2775 "parsing/parser.mly" ( Generic_array.expression "[|" "|]" (fun elts -> Pexp_array elts) _1 ) -# 41977 "parsing/parser.ml" +# 43000 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -41981,15 +43004,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41987 "parsing/parser.ml" +# 43010 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 41993 "parsing/parser.ml" +# 43016 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42030,31 +43053,31 @@ module Tables = struct let _1 = let _1 = let _2 = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 42036 "parsing/parser.ml" +# 43059 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2628 "parsing/parser.mly" +# 2702 "parsing/parser.mly" ( Generic_array.Unclosed(_loc__1_,_loc__3_) ) -# 42043 "parsing/parser.ml" +# 43066 "parsing/parser.ml" in -# 2635 "parsing/parser.mly" +# 2709 "parsing/parser.mly" ( _1 ) -# 42049 "parsing/parser.ml" +# 43072 "parsing/parser.ml" in -# 2701 "parsing/parser.mly" +# 2775 "parsing/parser.mly" ( Generic_array.expression "[|" "|]" (fun elts -> Pexp_array elts) _1 ) -# 42058 "parsing/parser.ml" +# 43081 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -42062,15 +43085,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42068 "parsing/parser.ml" +# 43091 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 42074 "parsing/parser.ml" +# 43097 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42103,23 +43126,23 @@ module Tables = struct let _1 = let _1 = let _1 = -# 2630 "parsing/parser.mly" +# 2704 "parsing/parser.mly" ( Generic_array.Literal [] ) -# 42109 "parsing/parser.ml" +# 43132 "parsing/parser.ml" in -# 2635 "parsing/parser.mly" +# 2709 "parsing/parser.mly" ( _1 ) -# 42114 "parsing/parser.ml" +# 43137 "parsing/parser.ml" in -# 2701 "parsing/parser.mly" +# 2775 "parsing/parser.mly" ( Generic_array.expression "[|" "|]" (fun elts -> Pexp_array elts) _1 ) -# 42123 "parsing/parser.ml" +# 43146 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in @@ -42127,15 +43150,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42133 "parsing/parser.ml" +# 43156 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 42139 "parsing/parser.ml" +# 43162 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42189,9 +43212,9 @@ module Tables = struct let _1 = let _1 = let _4 = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 42195 "parsing/parser.ml" +# 43218 "parsing/parser.ml" in let od = let _1 = @@ -42199,34 +43222,34 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 42205 "parsing/parser.ml" +# 43228 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1735 "parsing/parser.mly" +# 1806 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 42214 "parsing/parser.ml" +# 43237 "parsing/parser.ml" in let _endpos = _endpos__5_ in -# 2637 "parsing/parser.mly" +# 2711 "parsing/parser.mly" ( Generic_array.Opened_literal(od, _startpos__3_, _endpos, _4) ) -# 42221 "parsing/parser.ml" +# 43244 "parsing/parser.ml" in -# 2701 "parsing/parser.mly" +# 2775 "parsing/parser.mly" ( Generic_array.expression "[|" "|]" (fun elts -> Pexp_array elts) _1 ) -# 42230 "parsing/parser.ml" +# 43253 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -42234,15 +43257,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42240 "parsing/parser.ml" +# 43263 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 42246 "parsing/parser.ml" +# 43269 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42294,35 +43317,35 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 42300 "parsing/parser.ml" +# 43323 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1735 "parsing/parser.mly" +# 1806 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 42309 "parsing/parser.ml" +# 43332 "parsing/parser.ml" in let _endpos = _endpos__4_ in -# 2639 "parsing/parser.mly" +# 2713 "parsing/parser.mly" ( (* TODO: review the location of Pexp_array *) Generic_array.Opened_literal(od, _startpos__3_, _endpos, []) ) -# 42317 "parsing/parser.ml" +# 43340 "parsing/parser.ml" in -# 2701 "parsing/parser.mly" +# 2775 "parsing/parser.mly" ( Generic_array.expression "[|" "|]" (fun elts -> Pexp_array elts) _1 ) -# 42326 "parsing/parser.ml" +# 43349 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -42330,15 +43353,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42336 "parsing/parser.ml" +# 43359 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 42342 "parsing/parser.ml" +# 43365 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42392,25 +43415,25 @@ module Tables = struct let _1 = let _1 = let _4 = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 42398 "parsing/parser.ml" +# 43421 "parsing/parser.ml" in let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2643 "parsing/parser.mly" +# 2717 "parsing/parser.mly" ( Generic_array.Unclosed(_loc__3_, _loc__5_) ) -# 42405 "parsing/parser.ml" +# 43428 "parsing/parser.ml" in -# 2701 "parsing/parser.mly" +# 2775 "parsing/parser.mly" ( Generic_array.expression "[|" "|]" (fun elts -> Pexp_array elts) _1 ) -# 42414 "parsing/parser.ml" +# 43437 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -42418,15 +43441,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42424 "parsing/parser.ml" +# 43447 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 42430 "parsing/parser.ml" +# 43453 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42467,20 +43490,20 @@ module Tables = struct let _1 = let _1 = let _2 = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 42473 "parsing/parser.ml" +# 43496 "parsing/parser.ml" in -# 2626 "parsing/parser.mly" +# 2700 "parsing/parser.mly" ( Generic_array.Literal _2 ) -# 42478 "parsing/parser.ml" +# 43501 "parsing/parser.ml" in -# 2635 "parsing/parser.mly" +# 2709 "parsing/parser.mly" ( _1 ) -# 42484 "parsing/parser.ml" +# 43507 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -42488,7 +43511,7 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2706 "parsing/parser.mly" +# 2780 "parsing/parser.mly" ( Generic_array.expression "[:" ":]" (fun elts -> @@ -42496,7 +43519,7 @@ module Tables = struct ~loc:(make_loc _sloc) (Iaexp_immutable_array elts)) _1 ) -# 42500 "parsing/parser.ml" +# 43523 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -42504,15 +43527,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42510 "parsing/parser.ml" +# 43533 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 42516 "parsing/parser.ml" +# 43539 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42553,22 +43576,22 @@ module Tables = struct let _1 = let _1 = let _2 = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 42559 "parsing/parser.ml" +# 43582 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2628 "parsing/parser.mly" +# 2702 "parsing/parser.mly" ( Generic_array.Unclosed(_loc__1_,_loc__3_) ) -# 42566 "parsing/parser.ml" +# 43589 "parsing/parser.ml" in -# 2635 "parsing/parser.mly" +# 2709 "parsing/parser.mly" ( _1 ) -# 42572 "parsing/parser.ml" +# 43595 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -42576,7 +43599,7 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2706 "parsing/parser.mly" +# 2780 "parsing/parser.mly" ( Generic_array.expression "[:" ":]" (fun elts -> @@ -42584,7 +43607,7 @@ module Tables = struct ~loc:(make_loc _sloc) (Iaexp_immutable_array elts)) _1 ) -# 42588 "parsing/parser.ml" +# 43611 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -42592,15 +43615,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42598 "parsing/parser.ml" +# 43621 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 42604 "parsing/parser.ml" +# 43627 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42633,14 +43656,14 @@ module Tables = struct let _1 = let _1 = let _1 = -# 2630 "parsing/parser.mly" +# 2704 "parsing/parser.mly" ( Generic_array.Literal [] ) -# 42639 "parsing/parser.ml" +# 43662 "parsing/parser.ml" in -# 2635 "parsing/parser.mly" +# 2709 "parsing/parser.mly" ( _1 ) -# 42644 "parsing/parser.ml" +# 43667 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in @@ -42648,7 +43671,7 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2706 "parsing/parser.mly" +# 2780 "parsing/parser.mly" ( Generic_array.expression "[:" ":]" (fun elts -> @@ -42656,7 +43679,7 @@ module Tables = struct ~loc:(make_loc _sloc) (Iaexp_immutable_array elts)) _1 ) -# 42660 "parsing/parser.ml" +# 43683 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in @@ -42664,15 +43687,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42670 "parsing/parser.ml" +# 43693 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 42676 "parsing/parser.ml" +# 43699 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42726,9 +43749,9 @@ module Tables = struct let _1 = let _1 = let _4 = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 42732 "parsing/parser.ml" +# 43755 "parsing/parser.ml" in let od = let _1 = @@ -42736,25 +43759,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 42742 "parsing/parser.ml" +# 43765 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1735 "parsing/parser.mly" +# 1806 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 42751 "parsing/parser.ml" +# 43774 "parsing/parser.ml" in let _endpos = _endpos__5_ in -# 2637 "parsing/parser.mly" +# 2711 "parsing/parser.mly" ( Generic_array.Opened_literal(od, _startpos__3_, _endpos, _4) ) -# 42758 "parsing/parser.ml" +# 43781 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -42762,7 +43785,7 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2706 "parsing/parser.mly" +# 2780 "parsing/parser.mly" ( Generic_array.expression "[:" ":]" (fun elts -> @@ -42770,7 +43793,7 @@ module Tables = struct ~loc:(make_loc _sloc) (Iaexp_immutable_array elts)) _1 ) -# 42774 "parsing/parser.ml" +# 43797 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -42778,15 +43801,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42784 "parsing/parser.ml" +# 43807 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 42790 "parsing/parser.ml" +# 43813 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42838,26 +43861,26 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 42844 "parsing/parser.ml" +# 43867 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1735 "parsing/parser.mly" +# 1806 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 42853 "parsing/parser.ml" +# 43876 "parsing/parser.ml" in let _endpos = _endpos__4_ in -# 2639 "parsing/parser.mly" +# 2713 "parsing/parser.mly" ( (* TODO: review the location of Pexp_array *) Generic_array.Opened_literal(od, _startpos__3_, _endpos, []) ) -# 42861 "parsing/parser.ml" +# 43884 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -42865,7 +43888,7 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2706 "parsing/parser.mly" +# 2780 "parsing/parser.mly" ( Generic_array.expression "[:" ":]" (fun elts -> @@ -42873,7 +43896,7 @@ module Tables = struct ~loc:(make_loc _sloc) (Iaexp_immutable_array elts)) _1 ) -# 42877 "parsing/parser.ml" +# 43900 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -42881,15 +43904,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42887 "parsing/parser.ml" +# 43910 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 42893 "parsing/parser.ml" +# 43916 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42943,16 +43966,16 @@ module Tables = struct let _1 = let _1 = let _4 = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 42949 "parsing/parser.ml" +# 43972 "parsing/parser.ml" in let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2643 "parsing/parser.mly" +# 2717 "parsing/parser.mly" ( Generic_array.Unclosed(_loc__3_, _loc__5_) ) -# 42956 "parsing/parser.ml" +# 43979 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -42960,7 +43983,7 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2706 "parsing/parser.mly" +# 2780 "parsing/parser.mly" ( Generic_array.expression "[:" ":]" (fun elts -> @@ -42968,7 +43991,7 @@ module Tables = struct ~loc:(make_loc _sloc) (Iaexp_immutable_array elts)) _1 ) -# 42972 "parsing/parser.ml" +# 43995 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -42976,15 +43999,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42982 "parsing/parser.ml" +# 44005 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 42988 "parsing/parser.ml" +# 44011 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43023,15 +44046,15 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _2 = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 43029 "parsing/parser.ml" +# 44052 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2714 "parsing/parser.mly" +# 2788 "parsing/parser.mly" ( fst (mktailexp _loc__3_ _2) ) -# 43035 "parsing/parser.ml" +# 44058 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -43039,15 +44062,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 43045 "parsing/parser.ml" +# 44068 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 43051 "parsing/parser.ml" +# 44074 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43086,16 +44109,16 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _2 = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 43092 "parsing/parser.ml" +# 44115 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2716 "parsing/parser.mly" +# 2790 "parsing/parser.mly" ( unclosed "[" _loc__1_ "]" _loc__3_ ) -# 43099 "parsing/parser.ml" +# 44122 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -43103,15 +44126,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 43109 "parsing/parser.ml" +# 44132 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 43115 "parsing/parser.ml" +# 44138 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43163,24 +44186,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 43167 "parsing/parser.ml" +# 44190 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 43172 "parsing/parser.ml" +# 44195 "parsing/parser.ml" in -# 2607 "parsing/parser.mly" +# 2681 "parsing/parser.mly" ( Jane_syntax.Comprehensions.{ body = _2; clauses = _3 } ) -# 43178 "parsing/parser.ml" +# 44201 "parsing/parser.ml" in -# 2612 "parsing/parser.mly" +# 2686 "parsing/parser.mly" ( Jane_syntax.Comprehensions.Cexp_list_comprehension _1 ) -# 43184 "parsing/parser.ml" +# 44207 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -43188,15 +44211,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2621 "parsing/parser.mly" +# 2695 "parsing/parser.mly" ( Jane_syntax.Comprehensions.expr_of ~loc:(make_loc _sloc) _1 ) -# 43194 "parsing/parser.ml" +# 44217 "parsing/parser.ml" in -# 2717 "parsing/parser.mly" +# 2791 "parsing/parser.mly" ( _1 ) -# 43200 "parsing/parser.ml" +# 44223 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -43204,15 +44227,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 43210 "parsing/parser.ml" +# 44233 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 43216 "parsing/parser.ml" +# 44239 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43264,24 +44287,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 43268 "parsing/parser.ml" +# 44291 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 43273 "parsing/parser.ml" +# 44296 "parsing/parser.ml" in -# 2607 "parsing/parser.mly" +# 2681 "parsing/parser.mly" ( Jane_syntax.Comprehensions.{ body = _2; clauses = _3 } ) -# 43279 "parsing/parser.ml" +# 44302 "parsing/parser.ml" in -# 2614 "parsing/parser.mly" +# 2688 "parsing/parser.mly" ( Jane_syntax.Comprehensions.Cexp_array_comprehension (Mutable, _1) ) -# 43285 "parsing/parser.ml" +# 44308 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -43289,15 +44312,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2621 "parsing/parser.mly" +# 2695 "parsing/parser.mly" ( Jane_syntax.Comprehensions.expr_of ~loc:(make_loc _sloc) _1 ) -# 43295 "parsing/parser.ml" +# 44318 "parsing/parser.ml" in -# 2717 "parsing/parser.mly" +# 2791 "parsing/parser.mly" ( _1 ) -# 43301 "parsing/parser.ml" +# 44324 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -43305,15 +44328,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 43311 "parsing/parser.ml" +# 44334 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 43317 "parsing/parser.ml" +# 44340 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43365,24 +44388,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 43369 "parsing/parser.ml" +# 44392 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 43374 "parsing/parser.ml" +# 44397 "parsing/parser.ml" in -# 2607 "parsing/parser.mly" +# 2681 "parsing/parser.mly" ( Jane_syntax.Comprehensions.{ body = _2; clauses = _3 } ) -# 43380 "parsing/parser.ml" +# 44403 "parsing/parser.ml" in -# 2616 "parsing/parser.mly" +# 2690 "parsing/parser.mly" ( Jane_syntax.Comprehensions.Cexp_array_comprehension (Immutable, _1) ) -# 43386 "parsing/parser.ml" +# 44409 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -43390,15 +44413,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2621 "parsing/parser.mly" +# 2695 "parsing/parser.mly" ( Jane_syntax.Comprehensions.expr_of ~loc:(make_loc _sloc) _1 ) -# 43396 "parsing/parser.ml" +# 44419 "parsing/parser.ml" in -# 2717 "parsing/parser.mly" +# 2791 "parsing/parser.mly" ( _1 ) -# 43402 "parsing/parser.ml" +# 44425 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -43406,15 +44429,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 43412 "parsing/parser.ml" +# 44435 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 43418 "parsing/parser.ml" +# 44441 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43481,24 +44504,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 43485 "parsing/parser.ml" +# 44508 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 43490 "parsing/parser.ml" +# 44513 "parsing/parser.ml" in -# 2607 "parsing/parser.mly" +# 2681 "parsing/parser.mly" ( Jane_syntax.Comprehensions.{ body = _2; clauses = _3 } ) -# 43496 "parsing/parser.ml" +# 44519 "parsing/parser.ml" in -# 2612 "parsing/parser.mly" +# 2686 "parsing/parser.mly" ( Jane_syntax.Comprehensions.Cexp_list_comprehension _1 ) -# 43502 "parsing/parser.ml" +# 44525 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -43506,9 +44529,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2621 "parsing/parser.mly" +# 2695 "parsing/parser.mly" ( Jane_syntax.Comprehensions.expr_of ~loc:(make_loc _sloc) _1 ) -# 43512 "parsing/parser.ml" +# 44535 "parsing/parser.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__4_, _startpos__1_inlined1_) in @@ -43518,25 +44541,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 43524 "parsing/parser.ml" +# 44547 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1735 "parsing/parser.mly" +# 1806 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 43533 "parsing/parser.ml" +# 44556 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2719 "parsing/parser.mly" +# 2793 "parsing/parser.mly" ( Pexp_open(od, mkexp ~loc:(_loc__3_) _3) ) -# 43540 "parsing/parser.ml" +# 44563 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -43544,15 +44567,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 43550 "parsing/parser.ml" +# 44573 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 43556 "parsing/parser.ml" +# 44579 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43619,24 +44642,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 43623 "parsing/parser.ml" +# 44646 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 43628 "parsing/parser.ml" +# 44651 "parsing/parser.ml" in -# 2607 "parsing/parser.mly" +# 2681 "parsing/parser.mly" ( Jane_syntax.Comprehensions.{ body = _2; clauses = _3 } ) -# 43634 "parsing/parser.ml" +# 44657 "parsing/parser.ml" in -# 2614 "parsing/parser.mly" +# 2688 "parsing/parser.mly" ( Jane_syntax.Comprehensions.Cexp_array_comprehension (Mutable, _1) ) -# 43640 "parsing/parser.ml" +# 44663 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -43644,9 +44667,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2621 "parsing/parser.mly" +# 2695 "parsing/parser.mly" ( Jane_syntax.Comprehensions.expr_of ~loc:(make_loc _sloc) _1 ) -# 43650 "parsing/parser.ml" +# 44673 "parsing/parser.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__4_, _startpos__1_inlined1_) in @@ -43656,25 +44679,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 43662 "parsing/parser.ml" +# 44685 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1735 "parsing/parser.mly" +# 1806 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 43671 "parsing/parser.ml" +# 44694 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2719 "parsing/parser.mly" +# 2793 "parsing/parser.mly" ( Pexp_open(od, mkexp ~loc:(_loc__3_) _3) ) -# 43678 "parsing/parser.ml" +# 44701 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -43682,15 +44705,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 43688 "parsing/parser.ml" +# 44711 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 43694 "parsing/parser.ml" +# 44717 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43757,24 +44780,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 43761 "parsing/parser.ml" +# 44784 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 43766 "parsing/parser.ml" +# 44789 "parsing/parser.ml" in -# 2607 "parsing/parser.mly" +# 2681 "parsing/parser.mly" ( Jane_syntax.Comprehensions.{ body = _2; clauses = _3 } ) -# 43772 "parsing/parser.ml" +# 44795 "parsing/parser.ml" in -# 2616 "parsing/parser.mly" +# 2690 "parsing/parser.mly" ( Jane_syntax.Comprehensions.Cexp_array_comprehension (Immutable, _1) ) -# 43778 "parsing/parser.ml" +# 44801 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -43782,9 +44805,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2621 "parsing/parser.mly" +# 2695 "parsing/parser.mly" ( Jane_syntax.Comprehensions.expr_of ~loc:(make_loc _sloc) _1 ) -# 43788 "parsing/parser.ml" +# 44811 "parsing/parser.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__4_, _startpos__1_inlined1_) in @@ -43794,25 +44817,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 43800 "parsing/parser.ml" +# 44823 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1735 "parsing/parser.mly" +# 1806 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 43809 "parsing/parser.ml" +# 44832 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2719 "parsing/parser.mly" +# 2793 "parsing/parser.mly" ( Pexp_open(od, mkexp ~loc:(_loc__3_) _3) ) -# 43816 "parsing/parser.ml" +# 44839 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -43820,15 +44843,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 43826 "parsing/parser.ml" +# 44849 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 43832 "parsing/parser.ml" +# 44855 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43881,9 +44904,9 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _4 = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 43887 "parsing/parser.ml" +# 44910 "parsing/parser.ml" in let od = let _1 = @@ -43891,30 +44914,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 43897 "parsing/parser.ml" +# 44920 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1735 "parsing/parser.mly" +# 1806 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 43906 "parsing/parser.ml" +# 44929 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _loc__5_ = (_startpos__5_, _endpos__5_) in -# 2721 "parsing/parser.mly" +# 2795 "parsing/parser.mly" ( let list_exp = (* TODO: review the location of list_exp *) let tail_exp, _tail_loc = mktailexp _loc__5_ _4 in mkexp ~loc:(_startpos__3_, _endpos) tail_exp in Pexp_open(od, list_exp) ) -# 43918 "parsing/parser.ml" +# 44941 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -43922,15 +44945,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 43928 "parsing/parser.ml" +# 44951 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 43934 "parsing/parser.ml" +# 44957 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43978,18 +45001,18 @@ module Tables = struct let _3 = let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in let _1 = -# 2726 "parsing/parser.mly" +# 2800 "parsing/parser.mly" (Lident "[]") -# 43984 "parsing/parser.ml" +# 45007 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 43993 "parsing/parser.ml" +# 45016 "parsing/parser.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in @@ -43999,25 +45022,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 44005 "parsing/parser.ml" +# 45028 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1735 "parsing/parser.mly" +# 1806 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 44014 "parsing/parser.ml" +# 45037 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2727 "parsing/parser.mly" +# 2801 "parsing/parser.mly" ( Pexp_open(od, mkexp ~loc:_loc__3_ (Pexp_construct(_3, None))) ) -# 44021 "parsing/parser.ml" +# 45044 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -44025,15 +45048,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 44031 "parsing/parser.ml" +# 45054 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 44037 "parsing/parser.ml" +# 45060 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44086,16 +45109,16 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _4 = -# 2973 "parsing/parser.mly" +# 3053 "parsing/parser.mly" ( es ) -# 44092 "parsing/parser.ml" +# 45115 "parsing/parser.ml" in let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2730 "parsing/parser.mly" +# 2804 "parsing/parser.mly" ( unclosed "[" _loc__3_ "]" _loc__5_ ) -# 44099 "parsing/parser.ml" +# 45122 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -44103,15 +45126,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 44109 "parsing/parser.ml" +# 45132 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 44115 "parsing/parser.ml" +# 45138 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44204,11 +45227,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3799 "parsing/parser.mly" +# 3933 "parsing/parser.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 44212 "parsing/parser.ml" +# 45235 "parsing/parser.ml" in let _5 = @@ -44216,15 +45239,15 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 44222 "parsing/parser.ml" +# 45245 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 44228 "parsing/parser.ml" +# 45251 "parsing/parser.ml" in let od = @@ -44233,18 +45256,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 44239 "parsing/parser.ml" +# 45262 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1735 "parsing/parser.mly" +# 1806 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 44248 "parsing/parser.ml" +# 45271 "parsing/parser.ml" in let _startpos_od_ = _startpos__1_ in @@ -44252,12 +45275,12 @@ module Tables = struct let _symbolstartpos = _startpos_od_ in let _sloc = (_symbolstartpos, _endpos) in -# 2733 "parsing/parser.mly" +# 2807 "parsing/parser.mly" ( let modexp = mkexp_attrs ~loc:(_startpos__3_, _endpos) (Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _6), _8)) _5 in Pexp_open(od, modexp) ) -# 44261 "parsing/parser.ml" +# 45284 "parsing/parser.ml" in let _endpos__1_ = _endpos__9_ in @@ -44265,15 +45288,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 44271 "parsing/parser.ml" +# 45294 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 44277 "parsing/parser.ml" +# 45300 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44358,23 +45381,23 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 44364 "parsing/parser.ml" +# 45387 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 44370 "parsing/parser.ml" +# 45393 "parsing/parser.ml" in let _loc__8_ = (_startpos__8_, _endpos__8_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2739 "parsing/parser.mly" +# 2813 "parsing/parser.mly" ( unclosed "(" _loc__3_ ")" _loc__8_ ) -# 44378 "parsing/parser.ml" +# 45401 "parsing/parser.ml" in let _endpos__1_ = _endpos__8_ in @@ -44382,15 +45405,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1057 "parsing/parser.mly" +# 1128 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 44388 "parsing/parser.ml" +# 45411 "parsing/parser.ml" in -# 2552 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( _1 ) -# 44394 "parsing/parser.ml" +# 45417 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44419,30 +45442,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 44425 "parsing/parser.ml" +# 45448 "parsing/parser.ml" in -# 3056 "parsing/parser.mly" +# 3147 "parsing/parser.mly" ( Ppat_var (_1) ) -# 44431 "parsing/parser.ml" +# 45454 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 44440 "parsing/parser.ml" +# 45463 "parsing/parser.ml" in -# 3057 "parsing/parser.mly" +# 3148 "parsing/parser.mly" ( _1 ) -# 44446 "parsing/parser.ml" +# 45469 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44465,9 +45488,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = -# 3058 "parsing/parser.mly" +# 3149 "parsing/parser.mly" ( _1 ) -# 44471 "parsing/parser.ml" +# 45494 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44507,9 +45530,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3063 "parsing/parser.mly" +# 3154 "parsing/parser.mly" ( reloc_pat ~loc:_sloc _2 ) -# 44513 "parsing/parser.ml" +# 45536 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44532,9 +45555,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = -# 3065 "parsing/parser.mly" +# 3156 "parsing/parser.mly" ( _1 ) -# 44538 "parsing/parser.ml" +# 45561 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44597,9 +45620,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 44603 "parsing/parser.ml" +# 45626 "parsing/parser.ml" in let _3 = @@ -44607,24 +45630,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 44613 "parsing/parser.ml" +# 45636 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 44619 "parsing/parser.ml" +# 45642 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3067 "parsing/parser.mly" +# 3158 "parsing/parser.mly" ( mkpat_attrs ~loc:_sloc (Ppat_unpack _4) _3 ) -# 44628 "parsing/parser.ml" +# 45651 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44701,11 +45724,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3799 "parsing/parser.mly" +# 3933 "parsing/parser.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 44709 "parsing/parser.ml" +# 45732 "parsing/parser.ml" in let _4 = @@ -44714,9 +45737,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 44720 "parsing/parser.ml" +# 45743 "parsing/parser.ml" in let (_endpos__4_, _startpos__4_) = (_endpos__1_inlined3_, _startpos__1_inlined3_) in @@ -44725,15 +45748,15 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 44731 "parsing/parser.ml" +# 45754 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 44737 "parsing/parser.ml" +# 45760 "parsing/parser.ml" in let _endpos = _endpos__7_ in @@ -44741,11 +45764,11 @@ module Tables = struct let _loc__4_ = (_startpos__4_, _endpos__4_) in let _sloc = (_symbolstartpos, _endpos) in -# 3069 "parsing/parser.mly" +# 3160 "parsing/parser.mly" ( mkpat_attrs ~loc:_sloc (Ppat_constraint(mkpat ~loc:_loc__4_ (Ppat_unpack _4), _6)) _3 ) -# 44749 "parsing/parser.ml" +# 45772 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44769,23 +45792,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 3077 "parsing/parser.mly" +# 3168 "parsing/parser.mly" ( Ppat_any ) -# 44775 "parsing/parser.ml" +# 45798 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 44783 "parsing/parser.ml" +# 45806 "parsing/parser.ml" in -# 3073 "parsing/parser.mly" +# 3164 "parsing/parser.mly" ( _1 ) -# 44789 "parsing/parser.ml" +# 45812 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44809,23 +45832,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 3079 "parsing/parser.mly" +# 3170 "parsing/parser.mly" ( Ppat_constant _1 ) -# 44815 "parsing/parser.ml" +# 45838 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 44823 "parsing/parser.ml" +# 45846 "parsing/parser.ml" in -# 3073 "parsing/parser.mly" +# 3164 "parsing/parser.mly" ( _1 ) -# 44829 "parsing/parser.ml" +# 45852 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44863,24 +45886,24 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 3081 "parsing/parser.mly" +# 3172 "parsing/parser.mly" ( Ppat_interval (_1, _3) ) -# 44869 "parsing/parser.ml" +# 45892 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 44878 "parsing/parser.ml" +# 45901 "parsing/parser.ml" in -# 3073 "parsing/parser.mly" +# 3164 "parsing/parser.mly" ( _1 ) -# 44884 "parsing/parser.ml" +# 45907 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44909,30 +45932,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 44915 "parsing/parser.ml" +# 45938 "parsing/parser.ml" in -# 3083 "parsing/parser.mly" +# 3174 "parsing/parser.mly" ( Ppat_construct(_1, None) ) -# 44921 "parsing/parser.ml" +# 45944 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 44930 "parsing/parser.ml" +# 45953 "parsing/parser.ml" in -# 3073 "parsing/parser.mly" +# 3164 "parsing/parser.mly" ( _1 ) -# 44936 "parsing/parser.ml" +# 45959 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44956,23 +45979,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 3085 "parsing/parser.mly" +# 3176 "parsing/parser.mly" ( Ppat_variant(_1, None) ) -# 44962 "parsing/parser.ml" +# 45985 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 44970 "parsing/parser.ml" +# 45993 "parsing/parser.ml" in -# 3073 "parsing/parser.mly" +# 3164 "parsing/parser.mly" ( _1 ) -# 44976 "parsing/parser.ml" +# 45999 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45009,15 +46032,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 45015 "parsing/parser.ml" +# 46038 "parsing/parser.ml" in -# 3087 "parsing/parser.mly" +# 3178 "parsing/parser.mly" ( Ppat_type (_2) ) -# 45021 "parsing/parser.ml" +# 46044 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -45025,15 +46048,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 45031 "parsing/parser.ml" +# 46054 "parsing/parser.ml" in -# 3073 "parsing/parser.mly" +# 3164 "parsing/parser.mly" ( _1 ) -# 45037 "parsing/parser.ml" +# 46060 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45076,15 +46099,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 45082 "parsing/parser.ml" +# 46105 "parsing/parser.ml" in -# 3089 "parsing/parser.mly" +# 3180 "parsing/parser.mly" ( Ppat_open(_1, _3) ) -# 45088 "parsing/parser.ml" +# 46111 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -45092,15 +46115,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 45098 "parsing/parser.ml" +# 46121 "parsing/parser.ml" in -# 3073 "parsing/parser.mly" +# 3164 "parsing/parser.mly" ( _1 ) -# 45104 "parsing/parser.ml" +# 46127 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45148,18 +46171,18 @@ module Tables = struct let _3 = let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in let _1 = -# 3090 "parsing/parser.mly" +# 3181 "parsing/parser.mly" (Lident "[]") -# 45154 "parsing/parser.ml" +# 46177 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 45163 "parsing/parser.ml" +# 46186 "parsing/parser.ml" in let _endpos__3_ = _endpos__2_inlined1_ in @@ -45168,18 +46191,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 45174 "parsing/parser.ml" +# 46197 "parsing/parser.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3091 "parsing/parser.mly" +# 3182 "parsing/parser.mly" ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) ) -# 45183 "parsing/parser.ml" +# 46206 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -45187,15 +46210,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 45193 "parsing/parser.ml" +# 46216 "parsing/parser.ml" in -# 3073 "parsing/parser.mly" +# 3164 "parsing/parser.mly" ( _1 ) -# 45199 "parsing/parser.ml" +# 46222 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45243,18 +46266,18 @@ module Tables = struct let _3 = let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in let _1 = -# 3092 "parsing/parser.mly" +# 3183 "parsing/parser.mly" (Lident "()") -# 45249 "parsing/parser.ml" +# 46272 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 45258 "parsing/parser.ml" +# 46281 "parsing/parser.ml" in let _endpos__3_ = _endpos__2_inlined1_ in @@ -45263,18 +46286,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 45269 "parsing/parser.ml" +# 46292 "parsing/parser.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3093 "parsing/parser.mly" +# 3184 "parsing/parser.mly" ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) ) -# 45278 "parsing/parser.ml" +# 46301 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -45282,15 +46305,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 45288 "parsing/parser.ml" +# 46311 "parsing/parser.ml" in -# 3073 "parsing/parser.mly" +# 3164 "parsing/parser.mly" ( _1 ) -# 45294 "parsing/parser.ml" +# 46317 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45347,15 +46370,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 45353 "parsing/parser.ml" +# 46376 "parsing/parser.ml" in -# 3095 "parsing/parser.mly" +# 3186 "parsing/parser.mly" ( Ppat_open (_1, _4) ) -# 45359 "parsing/parser.ml" +# 46382 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -45363,15 +46386,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 45369 "parsing/parser.ml" +# 46392 "parsing/parser.ml" in -# 3073 "parsing/parser.mly" +# 3164 "parsing/parser.mly" ( _1 ) -# 45375 "parsing/parser.ml" +# 46398 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45426,9 +46449,9 @@ module Tables = struct let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3097 "parsing/parser.mly" +# 3188 "parsing/parser.mly" ( unclosed "(" _loc__3_ ")" _loc__5_ ) -# 45432 "parsing/parser.ml" +# 46455 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -45436,15 +46459,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 45442 "parsing/parser.ml" +# 46465 "parsing/parser.ml" in -# 3073 "parsing/parser.mly" +# 3164 "parsing/parser.mly" ( _1 ) -# 45448 "parsing/parser.ml" +# 46471 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45491,9 +46514,9 @@ module Tables = struct let _1 = let _loc__4_ = (_startpos__4_, _endpos__4_) in -# 3099 "parsing/parser.mly" +# 3190 "parsing/parser.mly" ( expecting _loc__4_ "pattern" ) -# 45497 "parsing/parser.ml" +# 46520 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -45501,15 +46524,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 45507 "parsing/parser.ml" +# 46530 "parsing/parser.ml" in -# 3073 "parsing/parser.mly" +# 3164 "parsing/parser.mly" ( _1 ) -# 45513 "parsing/parser.ml" +# 46536 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45550,9 +46573,9 @@ module Tables = struct let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3101 "parsing/parser.mly" +# 3192 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__3_ ) -# 45556 "parsing/parser.ml" +# 46579 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -45560,15 +46583,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 45566 "parsing/parser.ml" +# 46589 "parsing/parser.ml" in -# 3073 "parsing/parser.mly" +# 3164 "parsing/parser.mly" ( _1 ) -# 45572 "parsing/parser.ml" +# 46595 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45620,24 +46643,24 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 3103 "parsing/parser.mly" +# 3194 "parsing/parser.mly" ( Ppat_constraint(_2, _4) ) -# 45626 "parsing/parser.ml" +# 46649 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 45635 "parsing/parser.ml" +# 46658 "parsing/parser.ml" in -# 3073 "parsing/parser.mly" +# 3164 "parsing/parser.mly" ( _1 ) -# 45641 "parsing/parser.ml" +# 46664 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45692,9 +46715,9 @@ module Tables = struct let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3105 "parsing/parser.mly" +# 3196 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__5_ ) -# 45698 "parsing/parser.ml" +# 46721 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -45702,15 +46725,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 45708 "parsing/parser.ml" +# 46731 "parsing/parser.ml" in -# 3073 "parsing/parser.mly" +# 3164 "parsing/parser.mly" ( _1 ) -# 45714 "parsing/parser.ml" +# 46737 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45757,9 +46780,9 @@ module Tables = struct let _1 = let _loc__4_ = (_startpos__4_, _endpos__4_) in -# 3107 "parsing/parser.mly" +# 3198 "parsing/parser.mly" ( expecting _loc__4_ "type" ) -# 45763 "parsing/parser.ml" +# 46786 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -45767,15 +46790,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 45773 "parsing/parser.ml" +# 46796 "parsing/parser.ml" in -# 3073 "parsing/parser.mly" +# 3164 "parsing/parser.mly" ( _1 ) -# 45779 "parsing/parser.ml" +# 46802 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45854,11 +46877,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3799 "parsing/parser.mly" +# 3933 "parsing/parser.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 45862 "parsing/parser.ml" +# 46885 "parsing/parser.ml" in let _3 = @@ -45866,23 +46889,23 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 45872 "parsing/parser.ml" +# 46895 "parsing/parser.ml" in -# 4241 "parsing/parser.mly" +# 4382 "parsing/parser.mly" ( _1, _2 ) -# 45878 "parsing/parser.ml" +# 46901 "parsing/parser.ml" in let _loc__7_ = (_startpos__7_, _endpos__7_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3110 "parsing/parser.mly" +# 3201 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__7_ ) -# 45886 "parsing/parser.ml" +# 46909 "parsing/parser.ml" in let _endpos__1_ = _endpos__7_ in @@ -45890,15 +46913,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 45896 "parsing/parser.ml" +# 46919 "parsing/parser.ml" in -# 3073 "parsing/parser.mly" +# 3164 "parsing/parser.mly" ( _1 ) -# 45902 "parsing/parser.ml" +# 46925 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45922,23 +46945,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 3112 "parsing/parser.mly" +# 3203 "parsing/parser.mly" ( Ppat_extension _1 ) -# 45928 "parsing/parser.ml" +# 46951 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1059 "parsing/parser.mly" +# 1130 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 45936 "parsing/parser.ml" +# 46959 "parsing/parser.ml" in -# 3073 "parsing/parser.mly" +# 3164 "parsing/parser.mly" ( _1 ) -# 45942 "parsing/parser.ml" +# 46965 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45957,17 +46980,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 45963 "parsing/parser.ml" +# 46986 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4147 "parsing/parser.mly" +# 4288 "parsing/parser.mly" ( _1 ) -# 45971 "parsing/parser.ml" +# 46994 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45986,17 +47009,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 891 "parsing/parser.mly" +# 962 "parsing/parser.mly" (string) -# 45992 "parsing/parser.ml" +# 47015 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4148 "parsing/parser.mly" +# 4289 "parsing/parser.mly" ( _1 ) -# 46000 "parsing/parser.ml" +# 47023 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46019,9 +47042,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4149 "parsing/parser.mly" +# 4290 "parsing/parser.mly" ( "and" ) -# 46025 "parsing/parser.ml" +# 47048 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46044,9 +47067,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4150 "parsing/parser.mly" +# 4291 "parsing/parser.mly" ( "as" ) -# 46050 "parsing/parser.ml" +# 47073 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46069,9 +47092,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4151 "parsing/parser.mly" +# 4292 "parsing/parser.mly" ( "assert" ) -# 46075 "parsing/parser.ml" +# 47098 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46094,9 +47117,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4152 "parsing/parser.mly" +# 4293 "parsing/parser.mly" ( "begin" ) -# 46100 "parsing/parser.ml" +# 47123 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46119,9 +47142,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4153 "parsing/parser.mly" +# 4294 "parsing/parser.mly" ( "class" ) -# 46125 "parsing/parser.ml" +# 47148 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46144,9 +47167,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4154 "parsing/parser.mly" +# 4295 "parsing/parser.mly" ( "constraint" ) -# 46150 "parsing/parser.ml" +# 47173 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46169,9 +47192,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4155 "parsing/parser.mly" +# 4296 "parsing/parser.mly" ( "do" ) -# 46175 "parsing/parser.ml" +# 47198 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46194,9 +47217,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4156 "parsing/parser.mly" +# 4297 "parsing/parser.mly" ( "done" ) -# 46200 "parsing/parser.ml" +# 47223 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46219,9 +47242,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4157 "parsing/parser.mly" +# 4298 "parsing/parser.mly" ( "downto" ) -# 46225 "parsing/parser.ml" +# 47248 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46244,9 +47267,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4158 "parsing/parser.mly" +# 4299 "parsing/parser.mly" ( "else" ) -# 46250 "parsing/parser.ml" +# 47273 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46269,9 +47292,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4159 "parsing/parser.mly" +# 4300 "parsing/parser.mly" ( "end" ) -# 46275 "parsing/parser.ml" +# 47298 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46294,9 +47317,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4160 "parsing/parser.mly" +# 4301 "parsing/parser.mly" ( "exception" ) -# 46300 "parsing/parser.ml" +# 47323 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46319,9 +47342,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4161 "parsing/parser.mly" +# 4302 "parsing/parser.mly" ( "external" ) -# 46325 "parsing/parser.ml" +# 47348 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46344,9 +47367,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4162 "parsing/parser.mly" +# 4303 "parsing/parser.mly" ( "false" ) -# 46350 "parsing/parser.ml" +# 47373 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46369,9 +47392,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4163 "parsing/parser.mly" +# 4304 "parsing/parser.mly" ( "for" ) -# 46375 "parsing/parser.ml" +# 47398 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46394,9 +47417,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4164 "parsing/parser.mly" +# 4305 "parsing/parser.mly" ( "fun" ) -# 46400 "parsing/parser.ml" +# 47423 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46419,9 +47442,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4165 "parsing/parser.mly" +# 4306 "parsing/parser.mly" ( "function" ) -# 46425 "parsing/parser.ml" +# 47448 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46444,9 +47467,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4166 "parsing/parser.mly" +# 4307 "parsing/parser.mly" ( "functor" ) -# 46450 "parsing/parser.ml" +# 47473 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46469,9 +47492,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4167 "parsing/parser.mly" +# 4308 "parsing/parser.mly" ( "nonlocal_" ) -# 46475 "parsing/parser.ml" +# 47498 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46494,9 +47517,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4168 "parsing/parser.mly" +# 4309 "parsing/parser.mly" ( "if" ) -# 46500 "parsing/parser.ml" +# 47523 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46519,9 +47542,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4169 "parsing/parser.mly" +# 4310 "parsing/parser.mly" ( "in" ) -# 46525 "parsing/parser.ml" +# 47548 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46544,9 +47567,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4170 "parsing/parser.mly" +# 4311 "parsing/parser.mly" ( "include" ) -# 46550 "parsing/parser.ml" +# 47573 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46569,9 +47592,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4171 "parsing/parser.mly" +# 4312 "parsing/parser.mly" ( "inherit" ) -# 46575 "parsing/parser.ml" +# 47598 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46594,9 +47617,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4172 "parsing/parser.mly" +# 4313 "parsing/parser.mly" ( "initializer" ) -# 46600 "parsing/parser.ml" +# 47623 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46619,9 +47642,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4173 "parsing/parser.mly" +# 4314 "parsing/parser.mly" ( "lazy" ) -# 46625 "parsing/parser.ml" +# 47648 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46644,9 +47667,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4174 "parsing/parser.mly" +# 4315 "parsing/parser.mly" ( "let" ) -# 46650 "parsing/parser.ml" +# 47673 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46669,9 +47692,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4175 "parsing/parser.mly" +# 4316 "parsing/parser.mly" ( "local_" ) -# 46675 "parsing/parser.ml" +# 47698 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46694,9 +47717,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4176 "parsing/parser.mly" +# 4317 "parsing/parser.mly" ( "match" ) -# 46700 "parsing/parser.ml" +# 47723 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46719,9 +47742,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4177 "parsing/parser.mly" +# 4318 "parsing/parser.mly" ( "method" ) -# 46725 "parsing/parser.ml" +# 47748 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46744,9 +47767,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4178 "parsing/parser.mly" +# 4319 "parsing/parser.mly" ( "module" ) -# 46750 "parsing/parser.ml" +# 47773 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46769,9 +47792,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4179 "parsing/parser.mly" +# 4320 "parsing/parser.mly" ( "mutable" ) -# 46775 "parsing/parser.ml" +# 47798 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46794,9 +47817,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4180 "parsing/parser.mly" +# 4321 "parsing/parser.mly" ( "new" ) -# 46800 "parsing/parser.ml" +# 47823 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46819,9 +47842,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4181 "parsing/parser.mly" +# 4322 "parsing/parser.mly" ( "nonrec" ) -# 46825 "parsing/parser.ml" +# 47848 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46844,9 +47867,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4182 "parsing/parser.mly" +# 4323 "parsing/parser.mly" ( "object" ) -# 46850 "parsing/parser.ml" +# 47873 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46869,9 +47892,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4183 "parsing/parser.mly" +# 4324 "parsing/parser.mly" ( "of" ) -# 46875 "parsing/parser.ml" +# 47898 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46894,9 +47917,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4184 "parsing/parser.mly" +# 4325 "parsing/parser.mly" ( "open" ) -# 46900 "parsing/parser.ml" +# 47923 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46919,9 +47942,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4185 "parsing/parser.mly" +# 4326 "parsing/parser.mly" ( "or" ) -# 46925 "parsing/parser.ml" +# 47948 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46944,9 +47967,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4186 "parsing/parser.mly" +# 4327 "parsing/parser.mly" ( "private" ) -# 46950 "parsing/parser.ml" +# 47973 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46969,9 +47992,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4187 "parsing/parser.mly" +# 4328 "parsing/parser.mly" ( "rec" ) -# 46975 "parsing/parser.ml" +# 47998 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46994,9 +48017,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4188 "parsing/parser.mly" +# 4329 "parsing/parser.mly" ( "sig" ) -# 47000 "parsing/parser.ml" +# 48023 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47019,9 +48042,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4189 "parsing/parser.mly" +# 4330 "parsing/parser.mly" ( "struct" ) -# 47025 "parsing/parser.ml" +# 48048 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47044,9 +48067,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4190 "parsing/parser.mly" +# 4331 "parsing/parser.mly" ( "then" ) -# 47050 "parsing/parser.ml" +# 48073 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47069,9 +48092,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4191 "parsing/parser.mly" +# 4332 "parsing/parser.mly" ( "to" ) -# 47075 "parsing/parser.ml" +# 48098 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47094,9 +48117,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4192 "parsing/parser.mly" +# 4333 "parsing/parser.mly" ( "true" ) -# 47100 "parsing/parser.ml" +# 48123 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47119,9 +48142,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4193 "parsing/parser.mly" +# 4334 "parsing/parser.mly" ( "try" ) -# 47125 "parsing/parser.ml" +# 48148 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47144,9 +48167,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4194 "parsing/parser.mly" +# 4335 "parsing/parser.mly" ( "type" ) -# 47150 "parsing/parser.ml" +# 48173 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47169,9 +48192,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4195 "parsing/parser.mly" +# 4336 "parsing/parser.mly" ( "val" ) -# 47175 "parsing/parser.ml" +# 48198 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47194,9 +48217,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4196 "parsing/parser.mly" +# 4337 "parsing/parser.mly" ( "virtual" ) -# 47200 "parsing/parser.ml" +# 48223 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47219,9 +48242,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4197 "parsing/parser.mly" +# 4338 "parsing/parser.mly" ( "when" ) -# 47225 "parsing/parser.ml" +# 48248 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47244,9 +48267,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4198 "parsing/parser.mly" +# 4339 "parsing/parser.mly" ( "while" ) -# 47250 "parsing/parser.ml" +# 48273 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47269,9 +48292,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4199 "parsing/parser.mly" +# 4340 "parsing/parser.mly" ( "with" ) -# 47275 "parsing/parser.ml" +# 48298 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47294,9 +48317,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.type_exception * string Asttypes.loc option) = -# 3410 "parsing/parser.mly" +# 3514 "parsing/parser.mly" ( _1 ) -# 47300 "parsing/parser.ml" +# 48323 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47370,18 +48393,18 @@ module Tables = struct let _v : (Parsetree.type_exception * string Asttypes.loc option) = let attrs = let _1 = _1_inlined5 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 47376 "parsing/parser.ml" +# 48399 "parsing/parser.ml" in let _endpos_attrs_ = _endpos__1_inlined5_ in let attrs2 = let _1 = _1_inlined4 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 47385 "parsing/parser.ml" +# 48408 "parsing/parser.ml" in let lid = @@ -47390,9 +48413,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 47396 "parsing/parser.ml" +# 48419 "parsing/parser.ml" in let id = @@ -47401,30 +48424,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 47407 "parsing/parser.ml" +# 48430 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 47415 "parsing/parser.ml" +# 48438 "parsing/parser.ml" in let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3419 "parsing/parser.mly" +# 3523 "parsing/parser.mly" ( let loc = make_loc _sloc in let docs = symbol_docs _sloc in Te.mk_exception ~attrs (Te.rebind id lid ~attrs:(attrs1 @ attrs2) ~loc ~docs) , ext ) -# 47428 "parsing/parser.ml" +# 48451 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47454,9 +48477,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = -# 2884 "parsing/parser.mly" +# 2958 "parsing/parser.mly" ( _2 ) -# 47460 "parsing/parser.ml" +# 48483 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47489,9 +48512,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2886 "parsing/parser.mly" +# 2960 "parsing/parser.mly" ( let (l, o, p) = _1 in ghexp ~loc:_sloc (Pexp_fun(l, o, p, _2)) ) -# 47495 "parsing/parser.ml" +# 48518 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47514,9 +48537,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -47535,24 +48558,104 @@ module Tables = struct } = _menhir_stack in let _5 : (Parsetree.expression) = Obj.magic _5 in let _4 : unit = Obj.magic _4 in - let xs : (string Asttypes.loc list) = Obj.magic xs in + let _3 : ((string Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _3 = -# 2760 "parsing/parser.mly" - ( xs ) -# 47548 "parsing/parser.ml" - in - let _endpos = _endpos__5_ in + let _v : (Parsetree.expression) = let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2888 "parsing/parser.mly" +# 2962 "parsing/parser.mly" ( mk_newtypes ~loc:_sloc _3 _5 ) -# 47556 "parsing/parser.ml" +# 48574 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _7 : (Parsetree.expression) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _5 : (Asttypes.layout_annotation) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _1_inlined1 : ( +# 909 "parsing/parser.mly" + (string) +# 48635 "parsing/parser.ml" + ) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__7_ in + let _v : (Parsetree.expression) = let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1095 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 48650 "parsing/parser.ml" + + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2964 "parsing/parser.mly" + ( mk_newtypes ~loc:_sloc [_3, Some _5] _7 ) +# 48659 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47617,7 +48720,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -47634,24 +48737,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 47638 "parsing/parser.ml" +# 48741 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 47643 "parsing/parser.ml" +# 48746 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 47649 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 48752 "parsing/parser.ml" in -# 3707 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 47655 "parsing/parser.ml" +# 3816 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 48758 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -47659,40 +48762,40 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 47665 "parsing/parser.ml" +# 48768 "parsing/parser.ml" in -# 3709 "parsing/parser.mly" +# 3818 "parsing/parser.mly" ( _1 ) -# 47671 "parsing/parser.ml" +# 48774 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 47678 "parsing/parser.ml" +# 48781 "parsing/parser.ml" in let local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 47684 "parsing/parser.ml" +# 48787 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos_label_, _endpos_label_) in let label = -# 3692 "parsing/parser.mly" +# 3801 "parsing/parser.mly" ( Optional label ) -# 47690 "parsing/parser.ml" +# 48793 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3672 "parsing/parser.mly" +# 3781 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 47696 "parsing/parser.ml" +# 48799 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -47700,15 +48803,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 47706 "parsing/parser.ml" +# 48809 "parsing/parser.ml" in -# 3674 "parsing/parser.mly" +# 3783 "parsing/parser.mly" ( _1 ) -# 47712 "parsing/parser.ml" +# 48815 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47755,33 +48858,33 @@ module Tables = struct let _1 = let domain = let _1 = -# 3711 "parsing/parser.mly" +# 3820 "parsing/parser.mly" ( ty ) -# 47761 "parsing/parser.ml" +# 48864 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 47767 "parsing/parser.ml" +# 48870 "parsing/parser.ml" in let local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 47773 "parsing/parser.ml" +# 48876 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos_label_, _endpos_label_) in let label = -# 3692 "parsing/parser.mly" +# 3801 "parsing/parser.mly" ( Optional label ) -# 47779 "parsing/parser.ml" +# 48882 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3672 "parsing/parser.mly" +# 3781 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 47785 "parsing/parser.ml" +# 48888 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -47789,15 +48892,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 47795 "parsing/parser.ml" +# 48898 "parsing/parser.ml" in -# 3674 "parsing/parser.mly" +# 3783 "parsing/parser.mly" ( _1 ) -# 47801 "parsing/parser.ml" +# 48904 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47868,7 +48971,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -47887,24 +48990,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 47891 "parsing/parser.ml" +# 48994 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 47896 "parsing/parser.ml" +# 48999 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 47902 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 49005 "parsing/parser.ml" in -# 3707 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 47908 "parsing/parser.ml" +# 3816 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 49011 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -47912,40 +49015,40 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 47918 "parsing/parser.ml" +# 49021 "parsing/parser.ml" in -# 3709 "parsing/parser.mly" +# 3818 "parsing/parser.mly" ( _1 ) -# 47924 "parsing/parser.ml" +# 49027 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 47931 "parsing/parser.ml" +# 49034 "parsing/parser.ml" in let local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 47937 "parsing/parser.ml" +# 49040 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3692 "parsing/parser.mly" +# 3801 "parsing/parser.mly" ( Optional label ) -# 47943 "parsing/parser.ml" +# 49046 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3672 "parsing/parser.mly" +# 3781 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 47949 "parsing/parser.ml" +# 49052 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -47953,15 +49056,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 47959 "parsing/parser.ml" +# 49062 "parsing/parser.ml" in -# 3674 "parsing/parser.mly" +# 3783 "parsing/parser.mly" ( _1 ) -# 47965 "parsing/parser.ml" +# 49068 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48015,33 +49118,33 @@ module Tables = struct let _1 = let domain = let _1 = -# 3711 "parsing/parser.mly" +# 3820 "parsing/parser.mly" ( ty ) -# 48021 "parsing/parser.ml" +# 49124 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 48027 "parsing/parser.ml" +# 49130 "parsing/parser.ml" in let local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 48033 "parsing/parser.ml" +# 49136 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3692 "parsing/parser.mly" +# 3801 "parsing/parser.mly" ( Optional label ) -# 48039 "parsing/parser.ml" +# 49142 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3672 "parsing/parser.mly" +# 3781 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 48045 "parsing/parser.ml" +# 49148 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -48049,15 +49152,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48055 "parsing/parser.ml" +# 49158 "parsing/parser.ml" in -# 3674 "parsing/parser.mly" +# 3783 "parsing/parser.mly" ( _1 ) -# 48061 "parsing/parser.ml" +# 49164 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48128,13 +49231,13 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 48138 "parsing/parser.ml" +# 49241 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -48150,24 +49253,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 48154 "parsing/parser.ml" +# 49257 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 48159 "parsing/parser.ml" +# 49262 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 48165 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 49268 "parsing/parser.ml" in -# 3707 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 48171 "parsing/parser.ml" +# 3816 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 49274 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -48175,40 +49278,40 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48181 "parsing/parser.ml" +# 49284 "parsing/parser.ml" in -# 3709 "parsing/parser.mly" +# 3818 "parsing/parser.mly" ( _1 ) -# 48187 "parsing/parser.ml" +# 49290 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 48194 "parsing/parser.ml" +# 49297 "parsing/parser.ml" in let local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 48200 "parsing/parser.ml" +# 49303 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__2_, _endpos__2_) in let label = -# 3694 "parsing/parser.mly" +# 3803 "parsing/parser.mly" ( Labelled label ) -# 48206 "parsing/parser.ml" +# 49309 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3672 "parsing/parser.mly" +# 3781 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 48212 "parsing/parser.ml" +# 49315 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -48216,15 +49319,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48222 "parsing/parser.ml" +# 49325 "parsing/parser.ml" in -# 3674 "parsing/parser.mly" +# 3783 "parsing/parser.mly" ( _1 ) -# 48228 "parsing/parser.ml" +# 49331 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48271,9 +49374,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 48277 "parsing/parser.ml" +# 49380 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -48282,33 +49385,33 @@ module Tables = struct let _1 = let domain = let _1 = -# 3711 "parsing/parser.mly" +# 3820 "parsing/parser.mly" ( ty ) -# 48288 "parsing/parser.ml" +# 49391 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 48294 "parsing/parser.ml" +# 49397 "parsing/parser.ml" in let local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 48300 "parsing/parser.ml" +# 49403 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__2_, _endpos__2_) in let label = -# 3694 "parsing/parser.mly" +# 3803 "parsing/parser.mly" ( Labelled label ) -# 48306 "parsing/parser.ml" +# 49409 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3672 "parsing/parser.mly" +# 3781 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 48312 "parsing/parser.ml" +# 49415 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -48316,15 +49419,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48322 "parsing/parser.ml" +# 49425 "parsing/parser.ml" in -# 3674 "parsing/parser.mly" +# 3783 "parsing/parser.mly" ( _1 ) -# 48328 "parsing/parser.ml" +# 49431 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48401,14 +49504,14 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 48412 "parsing/parser.ml" +# 49515 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -48425,24 +49528,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 48429 "parsing/parser.ml" +# 49532 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 48434 "parsing/parser.ml" +# 49537 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 48440 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 49543 "parsing/parser.ml" in -# 3707 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 48446 "parsing/parser.ml" +# 3816 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 49549 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -48450,40 +49553,40 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48456 "parsing/parser.ml" +# 49559 "parsing/parser.ml" in -# 3709 "parsing/parser.mly" +# 3818 "parsing/parser.mly" ( _1 ) -# 48462 "parsing/parser.ml" +# 49565 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 48469 "parsing/parser.ml" +# 49572 "parsing/parser.ml" in let local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 48475 "parsing/parser.ml" +# 49578 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3694 "parsing/parser.mly" +# 3803 "parsing/parser.mly" ( Labelled label ) -# 48481 "parsing/parser.ml" +# 49584 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3672 "parsing/parser.mly" +# 3781 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 48487 "parsing/parser.ml" +# 49590 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -48491,15 +49594,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48497 "parsing/parser.ml" +# 49600 "parsing/parser.ml" in -# 3674 "parsing/parser.mly" +# 3783 "parsing/parser.mly" ( _1 ) -# 48503 "parsing/parser.ml" +# 49606 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48553,9 +49656,9 @@ module Tables = struct let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 48559 "parsing/parser.ml" +# 49662 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -48564,33 +49667,33 @@ module Tables = struct let _1 = let domain = let _1 = -# 3711 "parsing/parser.mly" +# 3820 "parsing/parser.mly" ( ty ) -# 48570 "parsing/parser.ml" +# 49673 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 48576 "parsing/parser.ml" +# 49679 "parsing/parser.ml" in let local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 48582 "parsing/parser.ml" +# 49685 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3694 "parsing/parser.mly" +# 3803 "parsing/parser.mly" ( Labelled label ) -# 48588 "parsing/parser.ml" +# 49691 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3672 "parsing/parser.mly" +# 3781 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 48594 "parsing/parser.ml" +# 49697 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -48598,15 +49701,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48604 "parsing/parser.ml" +# 49707 "parsing/parser.ml" in -# 3674 "parsing/parser.mly" +# 3783 "parsing/parser.mly" ( _1 ) -# 48610 "parsing/parser.ml" +# 49713 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48665,7 +49768,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -48681,24 +49784,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 48685 "parsing/parser.ml" +# 49788 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 48690 "parsing/parser.ml" +# 49793 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 48696 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 49799 "parsing/parser.ml" in -# 3707 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 48702 "parsing/parser.ml" +# 3816 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 49805 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -48706,40 +49809,40 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48712 "parsing/parser.ml" +# 49815 "parsing/parser.ml" in -# 3709 "parsing/parser.mly" +# 3818 "parsing/parser.mly" ( _1 ) -# 48718 "parsing/parser.ml" +# 49821 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 48725 "parsing/parser.ml" +# 49828 "parsing/parser.ml" in let local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 48731 "parsing/parser.ml" +# 49834 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__0_, _endpos__0_) in let label = -# 3696 "parsing/parser.mly" +# 3805 "parsing/parser.mly" ( Nolabel ) -# 48737 "parsing/parser.ml" +# 49840 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3672 "parsing/parser.mly" +# 3781 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 48743 "parsing/parser.ml" +# 49846 "parsing/parser.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -48747,15 +49850,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48753 "parsing/parser.ml" +# 49856 "parsing/parser.ml" in -# 3674 "parsing/parser.mly" +# 3783 "parsing/parser.mly" ( _1 ) -# 48759 "parsing/parser.ml" +# 49862 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48795,33 +49898,33 @@ module Tables = struct let _1 = let domain = let _1 = -# 3711 "parsing/parser.mly" +# 3820 "parsing/parser.mly" ( ty ) -# 48801 "parsing/parser.ml" +# 49904 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 48807 "parsing/parser.ml" +# 49910 "parsing/parser.ml" in let local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 48813 "parsing/parser.ml" +# 49916 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__0_, _endpos__0_) in let label = -# 3696 "parsing/parser.mly" +# 3805 "parsing/parser.mly" ( Nolabel ) -# 48819 "parsing/parser.ml" +# 49922 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3672 "parsing/parser.mly" +# 3781 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 48825 "parsing/parser.ml" +# 49928 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in @@ -48829,15 +49932,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48835 "parsing/parser.ml" +# 49938 "parsing/parser.ml" in -# 3674 "parsing/parser.mly" +# 3783 "parsing/parser.mly" ( _1 ) -# 48841 "parsing/parser.ml" +# 49944 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48902,7 +50005,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -48920,24 +50023,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 48924 "parsing/parser.ml" +# 50027 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 48929 "parsing/parser.ml" +# 50032 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 48935 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 50038 "parsing/parser.ml" in -# 3707 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 48941 "parsing/parser.ml" +# 3816 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 50044 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -48945,40 +50048,40 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48951 "parsing/parser.ml" +# 50054 "parsing/parser.ml" in -# 3709 "parsing/parser.mly" +# 3818 "parsing/parser.mly" ( _1 ) -# 48957 "parsing/parser.ml" +# 50060 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 48964 "parsing/parser.ml" +# 50067 "parsing/parser.ml" in let local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 48970 "parsing/parser.ml" +# 50073 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3696 "parsing/parser.mly" +# 3805 "parsing/parser.mly" ( Nolabel ) -# 48976 "parsing/parser.ml" +# 50079 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3672 "parsing/parser.mly" +# 3781 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 48982 "parsing/parser.ml" +# 50085 "parsing/parser.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -48986,15 +50089,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48992 "parsing/parser.ml" +# 50095 "parsing/parser.ml" in -# 3674 "parsing/parser.mly" +# 3783 "parsing/parser.mly" ( _1 ) -# 48998 "parsing/parser.ml" +# 50101 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49041,33 +50144,33 @@ module Tables = struct let _1 = let domain = let _1 = -# 3711 "parsing/parser.mly" +# 3820 "parsing/parser.mly" ( ty ) -# 49047 "parsing/parser.ml" +# 50150 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 49053 "parsing/parser.ml" +# 50156 "parsing/parser.ml" in let local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 49059 "parsing/parser.ml" +# 50162 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3696 "parsing/parser.mly" +# 3805 "parsing/parser.mly" ( Nolabel ) -# 49065 "parsing/parser.ml" +# 50168 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3672 "parsing/parser.mly" +# 3781 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 49071 "parsing/parser.ml" +# 50174 "parsing/parser.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -49075,15 +50178,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49081 "parsing/parser.ml" +# 50184 "parsing/parser.ml" in -# 3674 "parsing/parser.mly" +# 3783 "parsing/parser.mly" ( _1 ) -# 49087 "parsing/parser.ml" +# 50190 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49148,7 +50251,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -49157,9 +50260,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 49163 "parsing/parser.ml" +# 50266 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = @@ -49171,24 +50274,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 49175 "parsing/parser.ml" +# 50278 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 49180 "parsing/parser.ml" +# 50283 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 49186 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 50289 "parsing/parser.ml" in -# 3707 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 49192 "parsing/parser.ml" +# 3816 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 50295 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -49196,45 +50299,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49202 "parsing/parser.ml" +# 50305 "parsing/parser.ml" in -# 3709 "parsing/parser.mly" +# 3818 "parsing/parser.mly" ( _1 ) -# 49208 "parsing/parser.ml" +# 50311 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 49215 "parsing/parser.ml" +# 50318 "parsing/parser.ml" in let arg_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 49221 "parsing/parser.ml" +# 50324 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos_label_, _endpos_label_) in let label = -# 3692 "parsing/parser.mly" +# 3801 "parsing/parser.mly" ( Optional label ) -# 49227 "parsing/parser.ml" +# 50330 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 49238 "parsing/parser.ml" +# 50341 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -49242,15 +50345,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49248 "parsing/parser.ml" +# 50351 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 49254 "parsing/parser.ml" +# 50357 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49322,7 +50425,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -49331,9 +50434,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 49337 "parsing/parser.ml" +# 50440 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let domain = @@ -49345,24 +50448,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 49349 "parsing/parser.ml" +# 50452 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 49354 "parsing/parser.ml" +# 50457 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 49360 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 50463 "parsing/parser.ml" in -# 3707 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 49366 "parsing/parser.ml" +# 3816 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 50469 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -49370,45 +50473,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49376 "parsing/parser.ml" +# 50479 "parsing/parser.ml" in -# 3709 "parsing/parser.mly" +# 3818 "parsing/parser.mly" ( _1 ) -# 49382 "parsing/parser.ml" +# 50485 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 49389 "parsing/parser.ml" +# 50492 "parsing/parser.ml" in let arg_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 49395 "parsing/parser.ml" +# 50498 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos_label_, _endpos_label_) in let label = -# 3692 "parsing/parser.mly" +# 3801 "parsing/parser.mly" ( Optional label ) -# 49401 "parsing/parser.ml" +# 50504 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 49412 "parsing/parser.ml" +# 50515 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -49416,15 +50519,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49422 "parsing/parser.ml" +# 50525 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 49428 "parsing/parser.ml" +# 50531 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49470,45 +50573,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 49476 "parsing/parser.ml" +# 50579 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = let _1 = -# 3711 "parsing/parser.mly" +# 3820 "parsing/parser.mly" ( ty ) -# 49483 "parsing/parser.ml" +# 50586 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 49489 "parsing/parser.ml" +# 50592 "parsing/parser.ml" in let arg_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 49495 "parsing/parser.ml" +# 50598 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos_label_, _endpos_label_) in let label = -# 3692 "parsing/parser.mly" +# 3801 "parsing/parser.mly" ( Optional label ) -# 49501 "parsing/parser.ml" +# 50604 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 49512 "parsing/parser.ml" +# 50615 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -49516,15 +50619,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49522 "parsing/parser.ml" +# 50625 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 49528 "parsing/parser.ml" +# 50631 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49577,45 +50680,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 49583 "parsing/parser.ml" +# 50686 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_, _startpos__1_) in let domain = let _1 = -# 3711 "parsing/parser.mly" +# 3820 "parsing/parser.mly" ( ty ) -# 49590 "parsing/parser.ml" +# 50693 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 49596 "parsing/parser.ml" +# 50699 "parsing/parser.ml" in let arg_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 49602 "parsing/parser.ml" +# 50705 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos_label_, _endpos_label_) in let label = -# 3692 "parsing/parser.mly" +# 3801 "parsing/parser.mly" ( Optional label ) -# 49608 "parsing/parser.ml" +# 50711 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 49619 "parsing/parser.ml" +# 50722 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -49623,15 +50726,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49629 "parsing/parser.ml" +# 50732 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 49635 "parsing/parser.ml" +# 50738 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49702,7 +50805,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -49712,9 +50815,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 49718 "parsing/parser.ml" +# 50821 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = @@ -49727,24 +50830,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 49731 "parsing/parser.ml" +# 50834 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 49736 "parsing/parser.ml" +# 50839 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 49742 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 50845 "parsing/parser.ml" in -# 3707 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 49748 "parsing/parser.ml" +# 3816 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 50851 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -49752,45 +50855,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49758 "parsing/parser.ml" +# 50861 "parsing/parser.ml" in -# 3709 "parsing/parser.mly" +# 3818 "parsing/parser.mly" ( _1 ) -# 49764 "parsing/parser.ml" +# 50867 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 49771 "parsing/parser.ml" +# 50874 "parsing/parser.ml" in let arg_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 49777 "parsing/parser.ml" +# 50880 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3692 "parsing/parser.mly" +# 3801 "parsing/parser.mly" ( Optional label ) -# 49783 "parsing/parser.ml" +# 50886 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 49794 "parsing/parser.ml" +# 50897 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -49798,15 +50901,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49804 "parsing/parser.ml" +# 50907 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 49810 "parsing/parser.ml" +# 50913 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49884,7 +50987,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -49894,9 +50997,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 49900 "parsing/parser.ml" +# 51003 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in let domain = @@ -49909,24 +51012,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 49913 "parsing/parser.ml" +# 51016 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 49918 "parsing/parser.ml" +# 51021 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 49924 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 51027 "parsing/parser.ml" in -# 3707 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 49930 "parsing/parser.ml" +# 3816 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 51033 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -49934,45 +51037,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49940 "parsing/parser.ml" +# 51043 "parsing/parser.ml" in -# 3709 "parsing/parser.mly" +# 3818 "parsing/parser.mly" ( _1 ) -# 49946 "parsing/parser.ml" +# 51049 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 49953 "parsing/parser.ml" +# 51056 "parsing/parser.ml" in let arg_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 49959 "parsing/parser.ml" +# 51062 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3692 "parsing/parser.mly" +# 3801 "parsing/parser.mly" ( Optional label ) -# 49965 "parsing/parser.ml" +# 51068 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 49976 "parsing/parser.ml" +# 51079 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -49980,15 +51083,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49986 "parsing/parser.ml" +# 51089 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 49992 "parsing/parser.ml" +# 51095 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50041,45 +51144,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 50047 "parsing/parser.ml" +# 51150 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = let _1 = -# 3711 "parsing/parser.mly" +# 3820 "parsing/parser.mly" ( ty ) -# 50054 "parsing/parser.ml" +# 51157 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 50060 "parsing/parser.ml" +# 51163 "parsing/parser.ml" in let arg_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 50066 "parsing/parser.ml" +# 51169 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3692 "parsing/parser.mly" +# 3801 "parsing/parser.mly" ( Optional label ) -# 50072 "parsing/parser.ml" +# 51175 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 50083 "parsing/parser.ml" +# 51186 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -50087,15 +51190,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50093 "parsing/parser.ml" +# 51196 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 50099 "parsing/parser.ml" +# 51202 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50155,45 +51258,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 50161 "parsing/parser.ml" +# 51264 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let domain = let _1 = -# 3711 "parsing/parser.mly" +# 3820 "parsing/parser.mly" ( ty ) -# 50168 "parsing/parser.ml" +# 51271 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 50174 "parsing/parser.ml" +# 51277 "parsing/parser.ml" in let arg_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 50180 "parsing/parser.ml" +# 51283 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3692 "parsing/parser.mly" +# 3801 "parsing/parser.mly" ( Optional label ) -# 50186 "parsing/parser.ml" +# 51289 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 50197 "parsing/parser.ml" +# 51300 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -50201,15 +51304,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50207 "parsing/parser.ml" +# 51310 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 50213 "parsing/parser.ml" +# 51316 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50280,13 +51383,13 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 50290 "parsing/parser.ml" +# 51393 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -50294,9 +51397,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 50300 "parsing/parser.ml" +# 51403 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = @@ -50308,24 +51411,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 50312 "parsing/parser.ml" +# 51415 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 50317 "parsing/parser.ml" +# 51420 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 50323 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 51426 "parsing/parser.ml" in -# 3707 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 50329 "parsing/parser.ml" +# 3816 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 51432 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -50333,45 +51436,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50339 "parsing/parser.ml" +# 51442 "parsing/parser.ml" in -# 3709 "parsing/parser.mly" +# 3818 "parsing/parser.mly" ( _1 ) -# 50345 "parsing/parser.ml" +# 51448 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 50352 "parsing/parser.ml" +# 51455 "parsing/parser.ml" in let arg_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 50358 "parsing/parser.ml" +# 51461 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__2_, _endpos__2_) in let label = -# 3694 "parsing/parser.mly" +# 3803 "parsing/parser.mly" ( Labelled label ) -# 50364 "parsing/parser.ml" +# 51467 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 50375 "parsing/parser.ml" +# 51478 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -50379,15 +51482,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50385 "parsing/parser.ml" +# 51488 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 50391 "parsing/parser.ml" +# 51494 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50465,13 +51568,13 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 50475 "parsing/parser.ml" +# 51578 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -50479,9 +51582,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 50485 "parsing/parser.ml" +# 51588 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let domain = @@ -50493,24 +51596,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 50497 "parsing/parser.ml" +# 51600 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 50502 "parsing/parser.ml" +# 51605 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 50508 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 51611 "parsing/parser.ml" in -# 3707 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 50514 "parsing/parser.ml" +# 3816 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 51617 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -50518,45 +51621,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50524 "parsing/parser.ml" +# 51627 "parsing/parser.ml" in -# 3709 "parsing/parser.mly" +# 3818 "parsing/parser.mly" ( _1 ) -# 50530 "parsing/parser.ml" +# 51633 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 50537 "parsing/parser.ml" +# 51640 "parsing/parser.ml" in let arg_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 50543 "parsing/parser.ml" +# 51646 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__2_, _endpos__2_) in let label = -# 3694 "parsing/parser.mly" +# 3803 "parsing/parser.mly" ( Labelled label ) -# 50549 "parsing/parser.ml" +# 51652 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 50560 "parsing/parser.ml" +# 51663 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -50564,15 +51667,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50570 "parsing/parser.ml" +# 51673 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 50576 "parsing/parser.ml" +# 51679 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50619,9 +51722,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 50625 "parsing/parser.ml" +# 51728 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -50629,45 +51732,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 50635 "parsing/parser.ml" +# 51738 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = let _1 = -# 3711 "parsing/parser.mly" +# 3820 "parsing/parser.mly" ( ty ) -# 50642 "parsing/parser.ml" +# 51745 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 50648 "parsing/parser.ml" +# 51751 "parsing/parser.ml" in let arg_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 50654 "parsing/parser.ml" +# 51757 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__2_, _endpos__2_) in let label = -# 3694 "parsing/parser.mly" +# 3803 "parsing/parser.mly" ( Labelled label ) -# 50660 "parsing/parser.ml" +# 51763 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 50671 "parsing/parser.ml" +# 51774 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -50675,15 +51778,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50681 "parsing/parser.ml" +# 51784 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 50687 "parsing/parser.ml" +# 51790 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50737,9 +51840,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 50743 "parsing/parser.ml" +# 51846 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -50747,45 +51850,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 50753 "parsing/parser.ml" +# 51856 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_, _startpos__1_) in let domain = let _1 = -# 3711 "parsing/parser.mly" +# 3820 "parsing/parser.mly" ( ty ) -# 50760 "parsing/parser.ml" +# 51863 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 50766 "parsing/parser.ml" +# 51869 "parsing/parser.ml" in let arg_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 50772 "parsing/parser.ml" +# 51875 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__2_, _endpos__2_) in let label = -# 3694 "parsing/parser.mly" +# 3803 "parsing/parser.mly" ( Labelled label ) -# 50778 "parsing/parser.ml" +# 51881 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 50789 "parsing/parser.ml" +# 51892 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -50793,15 +51896,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50799 "parsing/parser.ml" +# 51902 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 50805 "parsing/parser.ml" +# 51908 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50878,14 +51981,14 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 50889 "parsing/parser.ml" +# 51992 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -50893,9 +51996,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 50899 "parsing/parser.ml" +# 52002 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = @@ -50908,24 +52011,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 50912 "parsing/parser.ml" +# 52015 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 50917 "parsing/parser.ml" +# 52020 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 50923 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 52026 "parsing/parser.ml" in -# 3707 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 50929 "parsing/parser.ml" +# 3816 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 52032 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -50933,45 +52036,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50939 "parsing/parser.ml" +# 52042 "parsing/parser.ml" in -# 3709 "parsing/parser.mly" +# 3818 "parsing/parser.mly" ( _1 ) -# 50945 "parsing/parser.ml" +# 52048 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 50952 "parsing/parser.ml" +# 52055 "parsing/parser.ml" in let arg_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 50958 "parsing/parser.ml" +# 52061 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3694 "parsing/parser.mly" +# 3803 "parsing/parser.mly" ( Labelled label ) -# 50964 "parsing/parser.ml" +# 52067 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 50975 "parsing/parser.ml" +# 52078 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -50979,15 +52082,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50985 "parsing/parser.ml" +# 52088 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 50991 "parsing/parser.ml" +# 52094 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51071,14 +52174,14 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 51082 "parsing/parser.ml" +# 52185 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -51086,9 +52189,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 51092 "parsing/parser.ml" +# 52195 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in let domain = @@ -51101,24 +52204,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 51105 "parsing/parser.ml" +# 52208 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 51110 "parsing/parser.ml" +# 52213 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 51116 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 52219 "parsing/parser.ml" in -# 3707 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 51122 "parsing/parser.ml" +# 3816 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 52225 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -51126,45 +52229,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 51132 "parsing/parser.ml" +# 52235 "parsing/parser.ml" in -# 3709 "parsing/parser.mly" +# 3818 "parsing/parser.mly" ( _1 ) -# 51138 "parsing/parser.ml" +# 52241 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 51145 "parsing/parser.ml" +# 52248 "parsing/parser.ml" in let arg_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 51151 "parsing/parser.ml" +# 52254 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3694 "parsing/parser.mly" +# 3803 "parsing/parser.mly" ( Labelled label ) -# 51157 "parsing/parser.ml" +# 52260 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 51168 "parsing/parser.ml" +# 52271 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -51172,15 +52275,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 51178 "parsing/parser.ml" +# 52281 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 51184 "parsing/parser.ml" +# 52287 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51234,9 +52337,9 @@ module Tables = struct let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 51240 "parsing/parser.ml" +# 52343 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -51244,45 +52347,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 51250 "parsing/parser.ml" +# 52353 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = let _1 = -# 3711 "parsing/parser.mly" +# 3820 "parsing/parser.mly" ( ty ) -# 51257 "parsing/parser.ml" +# 52360 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 51263 "parsing/parser.ml" +# 52366 "parsing/parser.ml" in let arg_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 51269 "parsing/parser.ml" +# 52372 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3694 "parsing/parser.mly" +# 3803 "parsing/parser.mly" ( Labelled label ) -# 51275 "parsing/parser.ml" +# 52378 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 51286 "parsing/parser.ml" +# 52389 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -51290,15 +52393,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 51296 "parsing/parser.ml" +# 52399 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 51302 "parsing/parser.ml" +# 52405 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51359,9 +52462,9 @@ module Tables = struct let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 51365 "parsing/parser.ml" +# 52468 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -51369,45 +52472,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 51375 "parsing/parser.ml" +# 52478 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let domain = let _1 = -# 3711 "parsing/parser.mly" +# 3820 "parsing/parser.mly" ( ty ) -# 51382 "parsing/parser.ml" +# 52485 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 51388 "parsing/parser.ml" +# 52491 "parsing/parser.ml" in let arg_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 51394 "parsing/parser.ml" +# 52497 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3694 "parsing/parser.mly" +# 3803 "parsing/parser.mly" ( Labelled label ) -# 51400 "parsing/parser.ml" +# 52503 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 51411 "parsing/parser.ml" +# 52514 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -51415,15 +52518,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 51421 "parsing/parser.ml" +# 52524 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 51427 "parsing/parser.ml" +# 52530 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51482,7 +52585,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -51490,9 +52593,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 51496 "parsing/parser.ml" +# 52599 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = @@ -51504,24 +52607,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 51508 "parsing/parser.ml" +# 52611 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 51513 "parsing/parser.ml" +# 52616 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 51519 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 52622 "parsing/parser.ml" in -# 3707 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 51525 "parsing/parser.ml" +# 3816 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 52628 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -51529,45 +52632,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 51535 "parsing/parser.ml" +# 52638 "parsing/parser.ml" in -# 3709 "parsing/parser.mly" +# 3818 "parsing/parser.mly" ( _1 ) -# 51541 "parsing/parser.ml" +# 52644 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 51548 "parsing/parser.ml" +# 52651 "parsing/parser.ml" in let arg_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 51554 "parsing/parser.ml" +# 52657 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__0_, _endpos__0_) in let label = -# 3696 "parsing/parser.mly" +# 3805 "parsing/parser.mly" ( Nolabel ) -# 51560 "parsing/parser.ml" +# 52663 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 51571 "parsing/parser.ml" +# 52674 "parsing/parser.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -51575,15 +52678,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 51581 "parsing/parser.ml" +# 52684 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 51587 "parsing/parser.ml" +# 52690 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51649,7 +52752,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -51657,9 +52760,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 51663 "parsing/parser.ml" +# 52766 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let domain = @@ -51671,24 +52774,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 51675 "parsing/parser.ml" +# 52778 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 51680 "parsing/parser.ml" +# 52783 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 51686 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 52789 "parsing/parser.ml" in -# 3707 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 51692 "parsing/parser.ml" +# 3816 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 52795 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -51696,45 +52799,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 51702 "parsing/parser.ml" +# 52805 "parsing/parser.ml" in -# 3709 "parsing/parser.mly" +# 3818 "parsing/parser.mly" ( _1 ) -# 51708 "parsing/parser.ml" +# 52811 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 51715 "parsing/parser.ml" +# 52818 "parsing/parser.ml" in let arg_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 51721 "parsing/parser.ml" +# 52824 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__0_, _endpos__0_) in let label = -# 3696 "parsing/parser.mly" +# 3805 "parsing/parser.mly" ( Nolabel ) -# 51727 "parsing/parser.ml" +# 52830 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 51738 "parsing/parser.ml" +# 52841 "parsing/parser.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -51742,15 +52845,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 51748 "parsing/parser.ml" +# 52851 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 51754 "parsing/parser.ml" +# 52857 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51789,45 +52892,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 51795 "parsing/parser.ml" +# 52898 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = let _1 = -# 3711 "parsing/parser.mly" +# 3820 "parsing/parser.mly" ( ty ) -# 51802 "parsing/parser.ml" +# 52905 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 51808 "parsing/parser.ml" +# 52911 "parsing/parser.ml" in let arg_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 51814 "parsing/parser.ml" +# 52917 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__0_, _endpos__0_) in let label = -# 3696 "parsing/parser.mly" +# 3805 "parsing/parser.mly" ( Nolabel ) -# 51820 "parsing/parser.ml" +# 52923 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 51831 "parsing/parser.ml" +# 52934 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in @@ -51835,15 +52938,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 51841 "parsing/parser.ml" +# 52944 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 51847 "parsing/parser.ml" +# 52950 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51889,45 +52992,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 51895 "parsing/parser.ml" +# 52998 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_, _startpos__1_) in let domain = let _1 = -# 3711 "parsing/parser.mly" +# 3820 "parsing/parser.mly" ( ty ) -# 51902 "parsing/parser.ml" +# 53005 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 51908 "parsing/parser.ml" +# 53011 "parsing/parser.ml" in let arg_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 51914 "parsing/parser.ml" +# 53017 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__0_, _endpos__0_) in let label = -# 3696 "parsing/parser.mly" +# 3805 "parsing/parser.mly" ( Nolabel ) -# 51920 "parsing/parser.ml" +# 53023 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 51931 "parsing/parser.ml" +# 53034 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in @@ -51935,15 +53038,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 51941 "parsing/parser.ml" +# 53044 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 51947 "parsing/parser.ml" +# 53050 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52008,7 +53111,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -52017,9 +53120,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 52023 "parsing/parser.ml" +# 53126 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = @@ -52032,24 +53135,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 52036 "parsing/parser.ml" +# 53139 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 52041 "parsing/parser.ml" +# 53144 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 52047 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 53150 "parsing/parser.ml" in -# 3707 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 52053 "parsing/parser.ml" +# 3816 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 53156 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -52057,45 +53160,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 52063 "parsing/parser.ml" +# 53166 "parsing/parser.ml" in -# 3709 "parsing/parser.mly" +# 3818 "parsing/parser.mly" ( _1 ) -# 52069 "parsing/parser.ml" +# 53172 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 52076 "parsing/parser.ml" +# 53179 "parsing/parser.ml" in let arg_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 52082 "parsing/parser.ml" +# 53185 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3696 "parsing/parser.mly" +# 3805 "parsing/parser.mly" ( Nolabel ) -# 52088 "parsing/parser.ml" +# 53191 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 52099 "parsing/parser.ml" +# 53202 "parsing/parser.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -52103,15 +53206,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 52109 "parsing/parser.ml" +# 53212 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 52115 "parsing/parser.ml" +# 53218 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52183,7 +53286,7 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * Asttypes.layout_annotation option) list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -52192,9 +53295,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 52198 "parsing/parser.ml" +# 53301 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in let domain = @@ -52207,24 +53310,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 52211 "parsing/parser.ml" +# 53314 "parsing/parser.ml" in -# 1126 "parsing/parser.mly" +# 1197 "parsing/parser.mly" ( xs ) -# 52216 "parsing/parser.ml" +# 53319 "parsing/parser.ml" in -# 3595 "parsing/parser.mly" - ( _1 ) -# 52222 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( List.split _1 ) +# 53325 "parsing/parser.ml" in -# 3707 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 52228 "parsing/parser.ml" +# 3816 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 53331 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -52232,45 +53335,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 52238 "parsing/parser.ml" +# 53341 "parsing/parser.ml" in -# 3709 "parsing/parser.mly" +# 3818 "parsing/parser.mly" ( _1 ) -# 52244 "parsing/parser.ml" +# 53347 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 52251 "parsing/parser.ml" +# 53354 "parsing/parser.ml" in let arg_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 52257 "parsing/parser.ml" +# 53360 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3696 "parsing/parser.mly" +# 3805 "parsing/parser.mly" ( Nolabel ) -# 52263 "parsing/parser.ml" +# 53366 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 52274 "parsing/parser.ml" +# 53377 "parsing/parser.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -52278,15 +53381,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 52284 "parsing/parser.ml" +# 53387 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 52290 "parsing/parser.ml" +# 53393 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52332,45 +53435,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3700 "parsing/parser.mly" +# 3809 "parsing/parser.mly" ( false ) -# 52338 "parsing/parser.ml" +# 53441 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = let _1 = -# 3711 "parsing/parser.mly" +# 3820 "parsing/parser.mly" ( ty ) -# 52345 "parsing/parser.ml" +# 53448 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 52351 "parsing/parser.ml" +# 53454 "parsing/parser.ml" in let arg_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 52357 "parsing/parser.ml" +# 53460 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3696 "parsing/parser.mly" +# 3805 "parsing/parser.mly" ( Nolabel ) -# 52363 "parsing/parser.ml" +# 53466 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 52374 "parsing/parser.ml" +# 53477 "parsing/parser.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -52378,15 +53481,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 52384 "parsing/parser.ml" +# 53487 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 52390 "parsing/parser.ml" +# 53493 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52439,45 +53542,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 52445 "parsing/parser.ml" +# 53548 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let domain = let _1 = -# 3711 "parsing/parser.mly" +# 3820 "parsing/parser.mly" ( ty ) -# 52452 "parsing/parser.ml" +# 53555 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 1022 "parsing/parser.mly" +# 1093 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 52458 "parsing/parser.ml" +# 53561 "parsing/parser.ml" in let arg_local = -# 3702 "parsing/parser.mly" +# 3811 "parsing/parser.mly" ( true ) -# 52464 "parsing/parser.ml" +# 53567 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3696 "parsing/parser.mly" +# 3805 "parsing/parser.mly" ( Nolabel ) -# 52470 "parsing/parser.ml" +# 53573 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3683 "parsing/parser.mly" +# 3792 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 52481 "parsing/parser.ml" +# 53584 "parsing/parser.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -52485,15 +53588,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 52491 "parsing/parser.ml" +# 53594 "parsing/parser.ml" in -# 3688 "parsing/parser.mly" +# 3797 "parsing/parser.mly" ( _1 ) -# 52497 "parsing/parser.ml" +# 53600 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : ( +# 909 "parsing/parser.mly" + (string) +# 53633 "parsing/parser.ml" + ) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (Longident.t) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Longident.t) = +# 4120 "parsing/parser.mly" + ( Ldot(_1, _3) ) +# 53643 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52520,39 +53666,39 @@ module Tables = struct let ys = # 260 "" ( List.flatten xss ) -# 52524 "parsing/parser.ml" +# 53670 "parsing/parser.ml" in let xs = let items = -# 1094 "parsing/parser.mly" +# 1165 "parsing/parser.mly" ( [] ) -# 52530 "parsing/parser.ml" +# 53676 "parsing/parser.ml" in -# 1523 "parsing/parser.mly" +# 1594 "parsing/parser.mly" ( items ) -# 52535 "parsing/parser.ml" +# 53681 "parsing/parser.ml" in # 267 "" ( xs @ ys ) -# 52541 "parsing/parser.ml" +# 53687 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1016 "parsing/parser.mly" +# 1087 "parsing/parser.mly" ( extra_str _startpos _endpos _1 ) -# 52550 "parsing/parser.ml" +# 53696 "parsing/parser.ml" in -# 1516 "parsing/parser.mly" +# 1587 "parsing/parser.mly" ( _1 ) -# 52556 "parsing/parser.ml" +# 53702 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52593,7 +53739,7 @@ module Tables = struct let ys = # 260 "" ( List.flatten xss ) -# 52597 "parsing/parser.ml" +# 53743 "parsing/parser.ml" in let xs = let items = @@ -52601,65 +53747,65 @@ module Tables = struct let _1 = let _1 = let attrs = -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 52607 "parsing/parser.ml" +# 53753 "parsing/parser.ml" in -# 1530 "parsing/parser.mly" +# 1601 "parsing/parser.mly" ( mkstrexp e attrs ) -# 52612 "parsing/parser.ml" +# 53758 "parsing/parser.ml" in let _startpos__1_ = _startpos_e_ in let _startpos = _startpos__1_ in -# 1028 "parsing/parser.mly" +# 1099 "parsing/parser.mly" ( text_str _startpos @ [_1] ) -# 52620 "parsing/parser.ml" +# 53766 "parsing/parser.ml" in let _startpos__1_ = _startpos_e_ in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1047 "parsing/parser.mly" +# 1118 "parsing/parser.mly" ( mark_rhs_docs _startpos _endpos; _1 ) -# 52630 "parsing/parser.ml" +# 53776 "parsing/parser.ml" in -# 1096 "parsing/parser.mly" +# 1167 "parsing/parser.mly" ( x ) -# 52636 "parsing/parser.ml" +# 53782 "parsing/parser.ml" in -# 1523 "parsing/parser.mly" +# 1594 "parsing/parser.mly" ( items ) -# 52642 "parsing/parser.ml" +# 53788 "parsing/parser.ml" in # 267 "" ( xs @ ys ) -# 52648 "parsing/parser.ml" +# 53794 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1016 "parsing/parser.mly" +# 1087 "parsing/parser.mly" ( extra_str _startpos _endpos _1 ) -# 52657 "parsing/parser.ml" +# 53803 "parsing/parser.ml" in -# 1516 "parsing/parser.mly" +# 1587 "parsing/parser.mly" ( _1 ) -# 52663 "parsing/parser.ml" +# 53809 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52685,9 +53831,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1545 "parsing/parser.mly" +# 1616 "parsing/parser.mly" ( val_of_let_bindings ~loc:_sloc _1 ) -# 52691 "parsing/parser.ml" +# 53837 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52721,9 +53867,9 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 52727 "parsing/parser.ml" +# 53873 "parsing/parser.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -52731,10 +53877,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1548 "parsing/parser.mly" +# 1619 "parsing/parser.mly" ( let docs = symbol_docs _sloc in Pstr_extension (_1, add_docs_attrs docs _2) ) -# 52738 "parsing/parser.ml" +# 53884 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -52742,15 +53888,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1063 "parsing/parser.mly" +# 1134 "parsing/parser.mly" ( mkstr ~loc:_sloc _1 ) -# 52748 "parsing/parser.ml" +# 53894 "parsing/parser.ml" in -# 1582 "parsing/parser.mly" +# 1653 "parsing/parser.mly" ( _1 ) -# 52754 "parsing/parser.ml" +# 53900 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52774,23 +53920,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1551 "parsing/parser.mly" +# 1622 "parsing/parser.mly" ( Pstr_attribute _1 ) -# 52780 "parsing/parser.ml" +# 53926 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1063 "parsing/parser.mly" +# 1134 "parsing/parser.mly" ( mkstr ~loc:_sloc _1 ) -# 52788 "parsing/parser.ml" +# 53934 "parsing/parser.ml" in -# 1582 "parsing/parser.mly" +# 1653 "parsing/parser.mly" ( _1 ) -# 52794 "parsing/parser.ml" +# 53940 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52814,23 +53960,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1555 "parsing/parser.mly" +# 1626 "parsing/parser.mly" ( pstr_primitive _1 ) -# 52820 "parsing/parser.ml" +# 53966 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1080 "parsing/parser.mly" +# 1151 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 52828 "parsing/parser.ml" +# 53974 "parsing/parser.ml" in -# 1582 "parsing/parser.mly" +# 1653 "parsing/parser.mly" ( _1 ) -# 52834 "parsing/parser.ml" +# 53980 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52854,23 +54000,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1557 "parsing/parser.mly" +# 1628 "parsing/parser.mly" ( pstr_primitive _1 ) -# 52860 "parsing/parser.ml" +# 54006 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1080 "parsing/parser.mly" +# 1151 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 52868 "parsing/parser.ml" +# 54014 "parsing/parser.ml" in -# 1582 "parsing/parser.mly" +# 1653 "parsing/parser.mly" ( _1 ) -# 52874 "parsing/parser.ml" +# 54020 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52905,26 +54051,26 @@ module Tables = struct let _1 = let _1 = let _1 = -# 1255 "parsing/parser.mly" +# 1326 "parsing/parser.mly" ( let (x, b) = a in x, b :: bs ) -# 52911 "parsing/parser.ml" +# 54057 "parsing/parser.ml" in -# 3239 "parsing/parser.mly" +# 3330 "parsing/parser.mly" ( _1 ) -# 52916 "parsing/parser.ml" +# 54062 "parsing/parser.ml" in -# 3222 "parsing/parser.mly" +# 3313 "parsing/parser.mly" ( _1 ) -# 52922 "parsing/parser.ml" +# 54068 "parsing/parser.ml" in -# 1559 "parsing/parser.mly" +# 1630 "parsing/parser.mly" ( pstr_type _1 ) -# 52928 "parsing/parser.ml" +# 54074 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in @@ -52932,15 +54078,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1080 "parsing/parser.mly" +# 1151 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 52938 "parsing/parser.ml" +# 54084 "parsing/parser.ml" in -# 1582 "parsing/parser.mly" +# 1653 "parsing/parser.mly" ( _1 ) -# 52944 "parsing/parser.ml" +# 54090 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53025,16 +54171,16 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 53031 "parsing/parser.ml" +# 54177 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in let cs = -# 1247 "parsing/parser.mly" +# 1318 "parsing/parser.mly" ( List.rev xs ) -# 53038 "parsing/parser.ml" +# 54184 "parsing/parser.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in @@ -53042,46 +54188,46 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 53048 "parsing/parser.ml" +# 54194 "parsing/parser.ml" in let _4 = -# 4056 "parsing/parser.mly" +# 4197 "parsing/parser.mly" ( Recursive ) -# 53054 "parsing/parser.ml" +# 54200 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 53061 "parsing/parser.ml" +# 54207 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3520 "parsing/parser.mly" +# 3624 "parsing/parser.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 53073 "parsing/parser.ml" +# 54219 "parsing/parser.ml" in -# 3503 "parsing/parser.mly" +# 3607 "parsing/parser.mly" ( _1 ) -# 53079 "parsing/parser.ml" +# 54225 "parsing/parser.ml" in -# 1561 "parsing/parser.mly" +# 1632 "parsing/parser.mly" ( pstr_typext _1 ) -# 53085 "parsing/parser.ml" +# 54231 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -53089,15 +54235,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1080 "parsing/parser.mly" +# 1151 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 53095 "parsing/parser.ml" +# 54241 "parsing/parser.ml" in -# 1582 "parsing/parser.mly" +# 1653 "parsing/parser.mly" ( _1 ) -# 53101 "parsing/parser.ml" +# 54247 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53189,16 +54335,16 @@ module Tables = struct let attrs2 = let _1 = _1_inlined4 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 53195 "parsing/parser.ml" +# 54341 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in let cs = -# 1247 "parsing/parser.mly" +# 1318 "parsing/parser.mly" ( List.rev xs ) -# 53202 "parsing/parser.ml" +# 54348 "parsing/parser.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in @@ -53206,9 +54352,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 53212 "parsing/parser.ml" +# 54358 "parsing/parser.ml" in let _4 = @@ -53217,41 +54363,41 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 4058 "parsing/parser.mly" +# 4199 "parsing/parser.mly" ( not_expecting _loc "nonrec flag" ) -# 53223 "parsing/parser.ml" +# 54369 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 53231 "parsing/parser.ml" +# 54377 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3520 "parsing/parser.mly" +# 3624 "parsing/parser.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 53243 "parsing/parser.ml" +# 54389 "parsing/parser.ml" in -# 3503 "parsing/parser.mly" +# 3607 "parsing/parser.mly" ( _1 ) -# 53249 "parsing/parser.ml" +# 54395 "parsing/parser.ml" in -# 1561 "parsing/parser.mly" +# 1632 "parsing/parser.mly" ( pstr_typext _1 ) -# 53255 "parsing/parser.ml" +# 54401 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined4_ in @@ -53259,15 +54405,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1080 "parsing/parser.mly" +# 1151 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 53265 "parsing/parser.ml" +# 54411 "parsing/parser.ml" in -# 1582 "parsing/parser.mly" +# 1653 "parsing/parser.mly" ( _1 ) -# 53271 "parsing/parser.ml" +# 54417 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53291,23 +54437,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1563 "parsing/parser.mly" +# 1634 "parsing/parser.mly" ( pstr_exception _1 ) -# 53297 "parsing/parser.ml" +# 54443 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1080 "parsing/parser.mly" +# 1151 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 53305 "parsing/parser.ml" +# 54451 "parsing/parser.ml" in -# 1582 "parsing/parser.mly" +# 1653 "parsing/parser.mly" ( _1 ) -# 53311 "parsing/parser.ml" +# 54457 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53370,9 +54516,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 53376 "parsing/parser.ml" +# 54522 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -53382,36 +54528,36 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 53388 "parsing/parser.ml" +# 54534 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 53396 "parsing/parser.ml" +# 54542 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1592 "parsing/parser.mly" +# 1663 "parsing/parser.mly" ( let docs = symbol_docs _sloc in let loc = make_loc _sloc in let attrs = attrs1 @ attrs2 in let body = Mb.mk name body ~attrs ~loc ~docs in Pstr_module body, ext ) -# 53409 "parsing/parser.ml" +# 54555 "parsing/parser.ml" in -# 1565 "parsing/parser.mly" +# 1636 "parsing/parser.mly" ( _1 ) -# 53415 "parsing/parser.ml" +# 54561 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -53419,15 +54565,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1080 "parsing/parser.mly" +# 1151 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 53425 "parsing/parser.ml" +# 54571 "parsing/parser.ml" in -# 1582 "parsing/parser.mly" +# 1653 "parsing/parser.mly" ( _1 ) -# 53431 "parsing/parser.ml" +# 54577 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53506,9 +54652,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 53512 "parsing/parser.ml" +# 54658 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -53518,24 +54664,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 53524 "parsing/parser.ml" +# 54670 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 53532 "parsing/parser.ml" +# 54678 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1627 "parsing/parser.mly" +# 1698 "parsing/parser.mly" ( let loc = make_loc _sloc in let attrs = attrs1 @ attrs2 in @@ -53543,25 +54689,25 @@ module Tables = struct ext, Mb.mk name body ~attrs ~loc ~docs ) -# 53547 "parsing/parser.ml" +# 54693 "parsing/parser.ml" in -# 1255 "parsing/parser.mly" +# 1326 "parsing/parser.mly" ( let (x, b) = a in x, b :: bs ) -# 53553 "parsing/parser.ml" +# 54699 "parsing/parser.ml" in -# 1615 "parsing/parser.mly" +# 1686 "parsing/parser.mly" ( _1 ) -# 53559 "parsing/parser.ml" +# 54705 "parsing/parser.ml" in -# 1567 "parsing/parser.mly" +# 1638 "parsing/parser.mly" ( pstr_recmodule _1 ) -# 53565 "parsing/parser.ml" +# 54711 "parsing/parser.ml" in let _endpos__1_ = _endpos_bs_ in @@ -53569,15 +54715,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1080 "parsing/parser.mly" +# 1151 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 53575 "parsing/parser.ml" +# 54721 "parsing/parser.ml" in -# 1582 "parsing/parser.mly" +# 1653 "parsing/parser.mly" ( _1 ) -# 53581 "parsing/parser.ml" +# 54727 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53601,23 +54747,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1569 "parsing/parser.mly" +# 1640 "parsing/parser.mly" ( let (body, ext) = _1 in (Pstr_modtype body, ext) ) -# 53607 "parsing/parser.ml" +# 54753 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1080 "parsing/parser.mly" +# 1151 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 53615 "parsing/parser.ml" +# 54761 "parsing/parser.ml" in -# 1582 "parsing/parser.mly" +# 1653 "parsing/parser.mly" ( _1 ) -# 53621 "parsing/parser.ml" +# 54767 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53641,23 +54787,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1571 "parsing/parser.mly" +# 1642 "parsing/parser.mly" ( let (body, ext) = _1 in (Pstr_open body, ext) ) -# 53647 "parsing/parser.ml" +# 54793 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1080 "parsing/parser.mly" +# 1151 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 53655 "parsing/parser.ml" +# 54801 "parsing/parser.ml" in -# 1582 "parsing/parser.mly" +# 1653 "parsing/parser.mly" ( _1 ) -# 53661 "parsing/parser.ml" +# 54807 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53727,9 +54873,9 @@ module Tables = struct let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in let body : (Parsetree.class_expr) = Obj.magic body in let _1_inlined2 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 53733 "parsing/parser.ml" +# 54879 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -53747,9 +54893,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 53753 "parsing/parser.ml" +# 54899 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -53759,24 +54905,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 53765 "parsing/parser.ml" +# 54911 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 53773 "parsing/parser.ml" +# 54919 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1980 "parsing/parser.mly" +# 2051 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -53784,25 +54930,25 @@ module Tables = struct ext, Ci.mk id body ~virt ~params ~attrs ~loc ~docs ) -# 53788 "parsing/parser.ml" +# 54934 "parsing/parser.ml" in -# 1255 "parsing/parser.mly" +# 1326 "parsing/parser.mly" ( let (x, b) = a in x, b :: bs ) -# 53794 "parsing/parser.ml" +# 54940 "parsing/parser.ml" in -# 1969 "parsing/parser.mly" +# 2040 "parsing/parser.mly" ( _1 ) -# 53800 "parsing/parser.ml" +# 54946 "parsing/parser.ml" in -# 1573 "parsing/parser.mly" +# 1644 "parsing/parser.mly" ( let (ext, l) = _1 in (Pstr_class l, ext) ) -# 53806 "parsing/parser.ml" +# 54952 "parsing/parser.ml" in let _endpos__1_ = _endpos_bs_ in @@ -53810,15 +54956,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1080 "parsing/parser.mly" +# 1151 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 53816 "parsing/parser.ml" +# 54962 "parsing/parser.ml" in -# 1582 "parsing/parser.mly" +# 1653 "parsing/parser.mly" ( _1 ) -# 53822 "parsing/parser.ml" +# 54968 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53842,23 +54988,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1575 "parsing/parser.mly" +# 1646 "parsing/parser.mly" ( let (ext, l) = _1 in (Pstr_class_type l, ext) ) -# 53848 "parsing/parser.ml" +# 54994 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1080 "parsing/parser.mly" +# 1151 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 53856 "parsing/parser.ml" +# 55002 "parsing/parser.ml" in -# 1582 "parsing/parser.mly" +# 1653 "parsing/parser.mly" ( _1 ) -# 53862 "parsing/parser.ml" +# 55008 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53914,22 +55060,22 @@ module Tables = struct let attrs2 = let _1 = _1_inlined1 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 53920 "parsing/parser.ml" +# 55066 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined1_ in let attrs1 = -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 53927 "parsing/parser.ml" +# 55073 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos_is_functor_ in let _sloc = (_symbolstartpos, _endpos) in -# 1671 "parsing/parser.mly" +# 1742 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -53941,16 +55087,16 @@ module Tables = struct else wrap (incl, ext) ) -# 53945 "parsing/parser.ml" +# 55091 "parsing/parser.ml" in -# 1577 "parsing/parser.mly" +# 1648 "parsing/parser.mly" ( _1 pstr_include (fun ~loc incl -> Jane_syntax.Include_functor.str_item_of ~loc (Ifstr_include_functor incl)) ) -# 53954 "parsing/parser.ml" +# 55100 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_is_functor_) in @@ -53958,15 +55104,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1080 "parsing/parser.mly" +# 1151 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 53964 "parsing/parser.ml" +# 55110 "parsing/parser.ml" in -# 1582 "parsing/parser.mly" +# 1653 "parsing/parser.mly" ( _1 ) -# 53970 "parsing/parser.ml" +# 55116 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53989,9 +55135,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4132 "parsing/parser.mly" +# 4273 "parsing/parser.mly" ( "-" ) -# 53995 "parsing/parser.ml" +# 55141 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54014,9 +55160,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4133 "parsing/parser.mly" +# 4274 "parsing/parser.mly" ( "-." ) -# 54020 "parsing/parser.ml" +# 55166 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54069,9 +55215,9 @@ module Tables = struct let _v : (Parsetree.row_field) = let _5 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 54075 "parsing/parser.ml" +# 55221 "parsing/parser.ml" in let _endpos__5_ = _endpos__1_inlined1_ in @@ -54080,18 +55226,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 54084 "parsing/parser.ml" +# 55230 "parsing/parser.ml" in -# 1158 "parsing/parser.mly" +# 1229 "parsing/parser.mly" ( xs ) -# 54089 "parsing/parser.ml" +# 55235 "parsing/parser.ml" in -# 3829 "parsing/parser.mly" +# 3963 "parsing/parser.mly" ( _1 ) -# 54095 "parsing/parser.ml" +# 55241 "parsing/parser.ml" in let _1 = @@ -54099,20 +55245,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 54105 "parsing/parser.ml" +# 55251 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3815 "parsing/parser.mly" +# 3949 "parsing/parser.mly" ( let info = symbol_info _endpos in let attrs = add_info_attrs info _5 in Rf.tag ~loc:(make_loc _sloc) ~attrs _1 _3 _4 ) -# 54116 "parsing/parser.ml" +# 55262 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54144,9 +55290,9 @@ module Tables = struct let _v : (Parsetree.row_field) = let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 54150 "parsing/parser.ml" +# 55296 "parsing/parser.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -54155,20 +55301,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 54161 "parsing/parser.ml" +# 55307 "parsing/parser.ml" in let _endpos = _endpos__2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3819 "parsing/parser.mly" +# 3953 "parsing/parser.mly" ( let info = symbol_info _endpos in let attrs = add_info_attrs info _2 in Rf.tag ~loc:(make_loc _sloc) ~attrs _1 true [] ) -# 54172 "parsing/parser.ml" +# 55318 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54200,7 +55346,7 @@ module Tables = struct let _v : (Parsetree.toplevel_phrase) = let arg = # 124 "" ( None ) -# 54204 "parsing/parser.ml" +# 55350 "parsing/parser.ml" in let _endpos_arg_ = _endpos__1_inlined1_ in let dir = @@ -54209,18 +55355,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 54215 "parsing/parser.ml" +# 55361 "parsing/parser.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4019 "parsing/parser.mly" +# 4160 "parsing/parser.mly" ( mk_directive ~loc:_sloc dir arg ) -# 54224 "parsing/parser.ml" +# 55370 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54251,9 +55397,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : ( -# 878 "parsing/parser.mly" +# 949 "parsing/parser.mly" (string * Location.t * string option) -# 54257 "parsing/parser.ml" +# 55403 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -54264,23 +55410,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 4023 "parsing/parser.mly" +# 4164 "parsing/parser.mly" ( let (s, _, _) = _1 in Pdir_string s ) -# 54270 "parsing/parser.ml" +# 55416 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1085 "parsing/parser.mly" +# 1156 "parsing/parser.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 54278 "parsing/parser.ml" +# 55424 "parsing/parser.ml" in # 126 "" ( Some x ) -# 54284 "parsing/parser.ml" +# 55430 "parsing/parser.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -54290,18 +55436,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 54296 "parsing/parser.ml" +# 55442 "parsing/parser.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4019 "parsing/parser.mly" +# 4160 "parsing/parser.mly" ( mk_directive ~loc:_sloc dir arg ) -# 54305 "parsing/parser.ml" +# 55451 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54332,9 +55478,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : ( -# 823 "parsing/parser.mly" +# 894 "parsing/parser.mly" (string * char option) -# 54338 "parsing/parser.ml" +# 55484 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -54345,23 +55491,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 4024 "parsing/parser.mly" +# 4165 "parsing/parser.mly" ( let (n, m) = _1 in Pdir_int (n ,m) ) -# 54351 "parsing/parser.ml" +# 55497 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1085 "parsing/parser.mly" +# 1156 "parsing/parser.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 54359 "parsing/parser.ml" +# 55505 "parsing/parser.ml" in # 126 "" ( Some x ) -# 54365 "parsing/parser.ml" +# 55511 "parsing/parser.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -54371,18 +55517,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 54377 "parsing/parser.ml" +# 55523 "parsing/parser.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4019 "parsing/parser.mly" +# 4160 "parsing/parser.mly" ( mk_directive ~loc:_sloc dir arg ) -# 54386 "parsing/parser.ml" +# 55532 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54422,23 +55568,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 4025 "parsing/parser.mly" +# 4166 "parsing/parser.mly" ( Pdir_ident _1 ) -# 54428 "parsing/parser.ml" +# 55574 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1085 "parsing/parser.mly" +# 1156 "parsing/parser.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 54436 "parsing/parser.ml" +# 55582 "parsing/parser.ml" in # 126 "" ( Some x ) -# 54442 "parsing/parser.ml" +# 55588 "parsing/parser.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -54448,18 +55594,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 54454 "parsing/parser.ml" +# 55600 "parsing/parser.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4019 "parsing/parser.mly" +# 4160 "parsing/parser.mly" ( mk_directive ~loc:_sloc dir arg ) -# 54463 "parsing/parser.ml" +# 55609 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54499,23 +55645,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 4026 "parsing/parser.mly" +# 4167 "parsing/parser.mly" ( Pdir_ident _1 ) -# 54505 "parsing/parser.ml" +# 55651 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1085 "parsing/parser.mly" +# 1156 "parsing/parser.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 54513 "parsing/parser.ml" +# 55659 "parsing/parser.ml" in # 126 "" ( Some x ) -# 54519 "parsing/parser.ml" +# 55665 "parsing/parser.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -54525,18 +55671,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 54531 "parsing/parser.ml" +# 55677 "parsing/parser.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4019 "parsing/parser.mly" +# 4160 "parsing/parser.mly" ( mk_directive ~loc:_sloc dir arg ) -# 54540 "parsing/parser.ml" +# 55686 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54576,23 +55722,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in let x = let _1 = -# 4027 "parsing/parser.mly" +# 4168 "parsing/parser.mly" ( Pdir_bool false ) -# 54582 "parsing/parser.ml" +# 55728 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1085 "parsing/parser.mly" +# 1156 "parsing/parser.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 54590 "parsing/parser.ml" +# 55736 "parsing/parser.ml" in # 126 "" ( Some x ) -# 54596 "parsing/parser.ml" +# 55742 "parsing/parser.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -54602,18 +55748,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 54608 "parsing/parser.ml" +# 55754 "parsing/parser.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4019 "parsing/parser.mly" +# 4160 "parsing/parser.mly" ( mk_directive ~loc:_sloc dir arg ) -# 54617 "parsing/parser.ml" +# 55763 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54653,23 +55799,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in let x = let _1 = -# 4028 "parsing/parser.mly" +# 4169 "parsing/parser.mly" ( Pdir_bool true ) -# 54659 "parsing/parser.ml" +# 55805 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1085 "parsing/parser.mly" +# 1156 "parsing/parser.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 54667 "parsing/parser.ml" +# 55813 "parsing/parser.ml" in # 126 "" ( Some x ) -# 54673 "parsing/parser.ml" +# 55819 "parsing/parser.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -54679,18 +55825,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 54685 "parsing/parser.ml" +# 55831 "parsing/parser.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4019 "parsing/parser.mly" +# 4160 "parsing/parser.mly" ( mk_directive ~loc:_sloc dir arg ) -# 54694 "parsing/parser.ml" +# 55840 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54730,37 +55876,37 @@ module Tables = struct let _1 = let _1 = let attrs = -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 54736 "parsing/parser.ml" +# 55882 "parsing/parser.ml" in -# 1530 "parsing/parser.mly" +# 1601 "parsing/parser.mly" ( mkstrexp e attrs ) -# 54741 "parsing/parser.ml" +# 55887 "parsing/parser.ml" in let _startpos__1_ = _startpos_e_ in let _startpos = _startpos__1_ in -# 1028 "parsing/parser.mly" +# 1099 "parsing/parser.mly" ( text_str _startpos @ [_1] ) -# 54749 "parsing/parser.ml" +# 55895 "parsing/parser.ml" in let _startpos__1_ = _startpos_e_ in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1016 "parsing/parser.mly" +# 1087 "parsing/parser.mly" ( extra_str _startpos _endpos _1 ) -# 54758 "parsing/parser.ml" +# 55904 "parsing/parser.ml" in -# 1295 "parsing/parser.mly" +# 1366 "parsing/parser.mly" ( Ptop_def _1 ) -# 54764 "parsing/parser.ml" +# 55910 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54793,21 +55939,21 @@ module Tables = struct let _1 = # 260 "" ( List.flatten xss ) -# 54797 "parsing/parser.ml" +# 55943 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1016 "parsing/parser.mly" +# 1087 "parsing/parser.mly" ( extra_str _startpos _endpos _1 ) -# 54805 "parsing/parser.ml" +# 55951 "parsing/parser.ml" in -# 1299 "parsing/parser.mly" +# 1370 "parsing/parser.mly" ( Ptop_def _1 ) -# 54811 "parsing/parser.ml" +# 55957 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54837,9 +55983,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.toplevel_phrase) = -# 1303 "parsing/parser.mly" +# 1374 "parsing/parser.mly" ( _1 ) -# 54843 "parsing/parser.ml" +# 55989 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54862,9 +56008,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.toplevel_phrase) = -# 1306 "parsing/parser.mly" +# 1377 "parsing/parser.mly" ( raise End_of_file ) -# 54868 "parsing/parser.ml" +# 56014 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54887,9 +56033,9 @@ module Tables = struct let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.core_type) = -# 3721 "parsing/parser.mly" +# 3830 "parsing/parser.mly" ( ty ) -# 54893 "parsing/parser.ml" +# 56039 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54917,18 +56063,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 54921 "parsing/parser.ml" +# 56067 "parsing/parser.ml" in -# 1186 "parsing/parser.mly" +# 1257 "parsing/parser.mly" ( xs ) -# 54926 "parsing/parser.ml" +# 56072 "parsing/parser.ml" in -# 3724 "parsing/parser.mly" +# 3833 "parsing/parser.mly" ( Ptyp_tuple tys ) -# 54932 "parsing/parser.ml" +# 56078 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_xs_) in @@ -54936,15 +56082,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 54942 "parsing/parser.ml" +# 56088 "parsing/parser.ml" in -# 3726 "parsing/parser.mly" +# 3835 "parsing/parser.mly" ( _1 ) -# 54948 "parsing/parser.ml" +# 56094 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54974,9 +56120,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.core_type option * Parsetree.core_type option) = -# 2976 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( (Some _2, None) ) -# 54980 "parsing/parser.ml" +# 56126 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55020,9 +56166,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.core_type option * Parsetree.core_type option) = -# 2977 "parsing/parser.mly" +# 3057 "parsing/parser.mly" ( (Some _2, Some _4) ) -# 55026 "parsing/parser.ml" +# 56172 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55052,9 +56198,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.core_type option * Parsetree.core_type option) = -# 2978 "parsing/parser.mly" +# 3058 "parsing/parser.mly" ( (None, Some _2) ) -# 55058 "parsing/parser.ml" +# 56204 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55084,9 +56230,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.core_type option * Parsetree.core_type option) = -# 2979 "parsing/parser.mly" +# 3059 "parsing/parser.mly" ( syntax_error() ) -# 55090 "parsing/parser.ml" +# 56236 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55116,9 +56262,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.core_type option * Parsetree.core_type option) = -# 2980 "parsing/parser.mly" +# 3060 "parsing/parser.mly" ( syntax_error() ) -# 55122 "parsing/parser.ml" +# 56268 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55134,9 +56280,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = -# 3313 "parsing/parser.mly" +# 3406 "parsing/parser.mly" ( (Ptype_abstract, Public, None) ) -# 55140 "parsing/parser.ml" +# 56286 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55166,9 +56312,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = -# 3315 "parsing/parser.mly" +# 3408 "parsing/parser.mly" ( _2 ) -# 55172 "parsing/parser.ml" +# 56318 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55191,9 +56337,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 3980 "parsing/parser.mly" +# 4114 "parsing/parser.mly" ( _1 ) -# 55197 "parsing/parser.ml" +# 56343 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55232,15 +56378,15 @@ module Tables = struct let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = let _3 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 55238 "parsing/parser.ml" +# 56384 "parsing/parser.ml" in -# 3344 "parsing/parser.mly" +# 3448 "parsing/parser.mly" ( {_2 with ptyp_attributes = _3}, _1 ) -# 55244 "parsing/parser.ml" +# 56390 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55256,9 +56402,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = -# 3323 "parsing/parser.mly" +# 3416 "parsing/parser.mly" ( [] ) -# 55262 "parsing/parser.ml" +# 56408 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55281,9 +56427,9 @@ module Tables = struct let _startpos = _startpos_p_ in let _endpos = _endpos_p_ in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = -# 3325 "parsing/parser.mly" +# 3418 "parsing/parser.mly" ( [p] ) -# 55287 "parsing/parser.ml" +# 56433 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55323,18 +56469,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 55327 "parsing/parser.ml" +# 56473 "parsing/parser.ml" in -# 1158 "parsing/parser.mly" +# 1229 "parsing/parser.mly" ( xs ) -# 55332 "parsing/parser.ml" +# 56478 "parsing/parser.ml" in -# 3329 "parsing/parser.mly" +# 3422 "parsing/parser.mly" ( ps ) -# 55338 "parsing/parser.ml" +# 56484 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55365,24 +56511,24 @@ module Tables = struct let _endpos = _endpos_tyvar_ in let _v : (Parsetree.core_type) = let _1 = let _1 = -# 3350 "parsing/parser.mly" +# 3454 "parsing/parser.mly" ( Ptyp_var tyvar ) -# 55371 "parsing/parser.ml" +# 56517 "parsing/parser.ml" in let _endpos__1_ = _endpos_tyvar_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 55380 "parsing/parser.ml" +# 56526 "parsing/parser.ml" in -# 3353 "parsing/parser.mly" +# 3457 "parsing/parser.mly" ( _1 ) -# 55386 "parsing/parser.ml" +# 56532 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55406,23 +56552,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = let _1 = let _1 = -# 3352 "parsing/parser.mly" +# 3456 "parsing/parser.mly" ( Ptyp_any ) -# 55412 "parsing/parser.ml" +# 56558 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1061 "parsing/parser.mly" +# 1132 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 55420 "parsing/parser.ml" +# 56566 "parsing/parser.ml" in -# 3353 "parsing/parser.mly" +# 3457 "parsing/parser.mly" ( _1 ) -# 55426 "parsing/parser.ml" +# 56572 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55438,9 +56584,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 3357 "parsing/parser.mly" +# 3461 "parsing/parser.mly" ( NoVariance, NoInjectivity ) -# 55444 "parsing/parser.ml" +# 56590 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55463,9 +56609,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 3358 "parsing/parser.mly" +# 3462 "parsing/parser.mly" ( Covariant, NoInjectivity ) -# 55469 "parsing/parser.ml" +# 56615 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55488,9 +56634,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 3359 "parsing/parser.mly" +# 3463 "parsing/parser.mly" ( Contravariant, NoInjectivity ) -# 55494 "parsing/parser.ml" +# 56640 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55513,9 +56659,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 3360 "parsing/parser.mly" +# 3464 "parsing/parser.mly" ( NoVariance, Injective ) -# 55519 "parsing/parser.ml" +# 56665 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55545,9 +56691,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 3361 "parsing/parser.mly" +# 3465 "parsing/parser.mly" ( Covariant, Injective ) -# 55551 "parsing/parser.ml" +# 56697 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55577,9 +56723,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 3361 "parsing/parser.mly" +# 3465 "parsing/parser.mly" ( Covariant, Injective ) -# 55583 "parsing/parser.ml" +# 56729 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55609,9 +56755,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 3362 "parsing/parser.mly" +# 3466 "parsing/parser.mly" ( Contravariant, Injective ) -# 55615 "parsing/parser.ml" +# 56761 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55641,9 +56787,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 3362 "parsing/parser.mly" +# 3466 "parsing/parser.mly" ( Contravariant, Injective ) -# 55647 "parsing/parser.ml" +# 56793 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55662,20 +56808,20 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 815 "parsing/parser.mly" +# 886 "parsing/parser.mly" (string) -# 55668 "parsing/parser.ml" +# 56814 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3364 "parsing/parser.mly" +# 3468 "parsing/parser.mly" ( if _1 = "+!" then Covariant, Injective else if _1 = "-!" then Contravariant, Injective else expecting _loc__1_ "type_variance" ) -# 55679 "parsing/parser.ml" +# 56825 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55694,20 +56840,20 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 864 "parsing/parser.mly" +# 935 "parsing/parser.mly" (string) -# 55700 "parsing/parser.ml" +# 56846 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3368 "parsing/parser.mly" +# 3472 "parsing/parser.mly" ( if _1 = "!+" then Covariant, Injective else if _1 = "!-" then Contravariant, Injective else expecting _loc__1_ "type_variance" ) -# 55711 "parsing/parser.ml" +# 56857 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55741,39 +56887,39 @@ module Tables = struct let ys = # 260 "" ( List.flatten xss ) -# 55745 "parsing/parser.ml" +# 56891 "parsing/parser.ml" in let xs = let _1 = -# 1094 "parsing/parser.mly" +# 1165 "parsing/parser.mly" ( [] ) -# 55751 "parsing/parser.ml" +# 56897 "parsing/parser.ml" in -# 1326 "parsing/parser.mly" +# 1397 "parsing/parser.mly" ( _1 ) -# 55756 "parsing/parser.ml" +# 56902 "parsing/parser.ml" in # 267 "" ( xs @ ys ) -# 55762 "parsing/parser.ml" +# 56908 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1020 "parsing/parser.mly" +# 1091 "parsing/parser.mly" ( extra_def _startpos _endpos _1 ) -# 55771 "parsing/parser.ml" +# 56917 "parsing/parser.ml" in -# 1319 "parsing/parser.mly" +# 1390 "parsing/parser.mly" ( _1 ) -# 55777 "parsing/parser.ml" +# 56923 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55821,7 +56967,7 @@ module Tables = struct let ys = # 260 "" ( List.flatten xss ) -# 55825 "parsing/parser.ml" +# 56971 "parsing/parser.ml" in let xs = let _1 = @@ -55829,61 +56975,61 @@ module Tables = struct let _1 = let _1 = let attrs = -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 55835 "parsing/parser.ml" +# 56981 "parsing/parser.ml" in -# 1530 "parsing/parser.mly" +# 1601 "parsing/parser.mly" ( mkstrexp e attrs ) -# 55840 "parsing/parser.ml" +# 56986 "parsing/parser.ml" in -# 1038 "parsing/parser.mly" +# 1109 "parsing/parser.mly" ( Ptop_def [_1] ) -# 55846 "parsing/parser.ml" +# 56992 "parsing/parser.ml" in let _startpos__1_ = _startpos_e_ in let _startpos = _startpos__1_ in -# 1036 "parsing/parser.mly" +# 1107 "parsing/parser.mly" ( text_def _startpos @ [_1] ) -# 55854 "parsing/parser.ml" +# 57000 "parsing/parser.ml" in -# 1096 "parsing/parser.mly" +# 1167 "parsing/parser.mly" ( x ) -# 55860 "parsing/parser.ml" +# 57006 "parsing/parser.ml" in -# 1326 "parsing/parser.mly" +# 1397 "parsing/parser.mly" ( _1 ) -# 55866 "parsing/parser.ml" +# 57012 "parsing/parser.ml" in # 267 "" ( xs @ ys ) -# 55872 "parsing/parser.ml" +# 57018 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1020 "parsing/parser.mly" +# 1091 "parsing/parser.mly" ( extra_def _startpos _endpos _1 ) -# 55881 "parsing/parser.ml" +# 57027 "parsing/parser.ml" in -# 1319 "parsing/parser.mly" +# 1390 "parsing/parser.mly" ( _1 ) -# 55887 "parsing/parser.ml" +# 57033 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55920,9 +57066,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Asttypes.label) = -# 3899 "parsing/parser.mly" +# 4033 "parsing/parser.mly" ( _2 ) -# 55926 "parsing/parser.ml" +# 57072 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55961,9 +57107,9 @@ module Tables = struct let _v : (Asttypes.label) = let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3900 "parsing/parser.mly" +# 4034 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__3_ ) -# 55967 "parsing/parser.ml" +# 57113 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55994,9 +57140,9 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : (Asttypes.label) = let _loc__2_ = (_startpos__2_, _endpos__2_) in -# 3901 "parsing/parser.mly" +# 4035 "parsing/parser.mly" ( expecting _loc__2_ "operator" ) -# 56000 "parsing/parser.ml" +# 57146 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56034,9 +57180,9 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Asttypes.label) = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3902 "parsing/parser.mly" +# 4036 "parsing/parser.mly" ( expecting _loc__3_ "module-expr" ) -# 56040 "parsing/parser.ml" +# 57186 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56055,17 +57201,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 56061 "parsing/parser.ml" +# 57207 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3905 "parsing/parser.mly" +# 4039 "parsing/parser.mly" ( _1 ) -# 56069 "parsing/parser.ml" +# 57215 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56088,9 +57234,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3906 "parsing/parser.mly" +# 4040 "parsing/parser.mly" ( _1 ) -# 56094 "parsing/parser.ml" +# 57240 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56113,9 +57259,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 3974 "parsing/parser.mly" +# 4108 "parsing/parser.mly" ( _1 ) -# 56119 "parsing/parser.ml" +# 57265 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56160,9 +57306,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _5 : unit = Obj.magic _5 in let _1_inlined1 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 56166 "parsing/parser.ml" +# 57312 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let mutable_ : (Asttypes.mutable_flag) = Obj.magic mutable_ in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -56174,33 +57320,33 @@ module Tables = struct Parsetree.attributes) = let label = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 3873 "parsing/parser.mly" +# 4007 "parsing/parser.mly" ( _1 ) -# 56180 "parsing/parser.ml" +# 57326 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 56188 "parsing/parser.ml" +# 57334 "parsing/parser.ml" in let attrs = -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 56194 "parsing/parser.ml" +# 57340 "parsing/parser.ml" in let _1 = -# 4125 "parsing/parser.mly" +# 4266 "parsing/parser.mly" ( Fresh ) -# 56199 "parsing/parser.ml" +# 57345 "parsing/parser.ml" in -# 2120 "parsing/parser.mly" +# 2191 "parsing/parser.mly" ( (label, mutable_, Cfk_virtual ty), attrs ) -# 56204 "parsing/parser.ml" +# 57350 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56245,9 +57391,9 @@ module Tables = struct let _6 : (Parsetree.expression) = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined1 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 56251 "parsing/parser.ml" +# 57397 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -56259,33 +57405,33 @@ module Tables = struct Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 3873 "parsing/parser.mly" +# 4007 "parsing/parser.mly" ( _1 ) -# 56265 "parsing/parser.ml" +# 57411 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 56273 "parsing/parser.ml" +# 57419 "parsing/parser.ml" in let _2 = -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 56279 "parsing/parser.ml" +# 57425 "parsing/parser.ml" in let _1 = -# 4128 "parsing/parser.mly" +# 4269 "parsing/parser.mly" ( Fresh ) -# 56284 "parsing/parser.ml" +# 57430 "parsing/parser.ml" in -# 2122 "parsing/parser.mly" +# 2193 "parsing/parser.mly" ( (_4, _3, Cfk_concrete (_1, _6)), _2 ) -# 56289 "parsing/parser.ml" +# 57435 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56336,9 +57482,9 @@ module Tables = struct let _6 : (Parsetree.expression) = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined2 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 56342 "parsing/parser.ml" +# 57488 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -56351,36 +57497,36 @@ module Tables = struct Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 3873 "parsing/parser.mly" +# 4007 "parsing/parser.mly" ( _1 ) -# 56357 "parsing/parser.ml" +# 57503 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 56365 "parsing/parser.ml" +# 57511 "parsing/parser.ml" in let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 56373 "parsing/parser.ml" +# 57519 "parsing/parser.ml" in let _1 = -# 4129 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( Override ) -# 56379 "parsing/parser.ml" +# 57525 "parsing/parser.ml" in -# 2122 "parsing/parser.mly" +# 2193 "parsing/parser.mly" ( (_4, _3, Cfk_concrete (_1, _6)), _2 ) -# 56384 "parsing/parser.ml" +# 57530 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56432,9 +57578,9 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _5 : (Parsetree.core_type option * Parsetree.core_type option) = Obj.magic _5 in let _1_inlined1 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 56438 "parsing/parser.ml" +# 57584 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -56446,30 +57592,30 @@ module Tables = struct Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 3873 "parsing/parser.mly" +# 4007 "parsing/parser.mly" ( _1 ) -# 56452 "parsing/parser.ml" +# 57598 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 56460 "parsing/parser.ml" +# 57606 "parsing/parser.ml" in let _startpos__4_ = _startpos__1_inlined1_ in let _2 = -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 56467 "parsing/parser.ml" +# 57613 "parsing/parser.ml" in let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in let _1 = -# 4128 "parsing/parser.mly" +# 4269 "parsing/parser.mly" ( Fresh ) -# 56473 "parsing/parser.ml" +# 57619 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos__7_ in @@ -56485,11 +57631,11 @@ module Tables = struct _startpos__4_ in let _sloc = (_symbolstartpos, _endpos) in -# 2125 "parsing/parser.mly" +# 2196 "parsing/parser.mly" ( let e = mkexp_constraint ~loc:_sloc _7 _5 in (_4, _3, Cfk_concrete (_1, e)), _2 ) -# 56493 "parsing/parser.ml" +# 57639 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56547,9 +57693,9 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _5 : (Parsetree.core_type option * Parsetree.core_type option) = Obj.magic _5 in let _1_inlined2 : ( -# 838 "parsing/parser.mly" +# 909 "parsing/parser.mly" (string) -# 56553 "parsing/parser.ml" +# 57699 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -56562,33 +57708,33 @@ module Tables = struct Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 3873 "parsing/parser.mly" +# 4007 "parsing/parser.mly" ( _1 ) -# 56568 "parsing/parser.ml" +# 57714 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 56576 "parsing/parser.ml" +# 57722 "parsing/parser.ml" in let _startpos__4_ = _startpos__1_inlined2_ in let _2 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 56585 "parsing/parser.ml" +# 57731 "parsing/parser.ml" in let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let _1 = -# 4129 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( Override ) -# 56592 "parsing/parser.ml" +# 57738 "parsing/parser.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -56603,11 +57749,11 @@ module Tables = struct _startpos__4_ in let _sloc = (_symbolstartpos, _endpos) in -# 2125 "parsing/parser.mly" +# 2196 "parsing/parser.mly" ( let e = mkexp_constraint ~loc:_sloc _7 _5 in (_4, _3, Cfk_concrete (_1, e)), _2 ) -# 56611 "parsing/parser.ml" +# 57757 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56674,9 +57820,9 @@ module Tables = struct let _v : (Parsetree.value_description * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined3 in -# 4224 "parsing/parser.mly" +# 4365 "parsing/parser.mly" ( _1 ) -# 56680 "parsing/parser.ml" +# 57826 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -56686,30 +57832,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 56692 "parsing/parser.ml" +# 57838 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4228 "parsing/parser.mly" +# 4369 "parsing/parser.mly" ( _1 ) -# 56700 "parsing/parser.ml" +# 57846 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3184 "parsing/parser.mly" +# 3275 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Val.mk id ty ~attrs ~loc ~docs, ext ) -# 56713 "parsing/parser.ml" +# 57859 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56725,9 +57871,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.virtual_flag) = -# 4089 "parsing/parser.mly" +# 4230 "parsing/parser.mly" ( Concrete ) -# 56731 "parsing/parser.ml" +# 57877 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56750,9 +57896,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.virtual_flag) = -# 4090 "parsing/parser.mly" +# 4231 "parsing/parser.mly" ( Virtual ) -# 56756 "parsing/parser.ml" +# 57902 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56775,9 +57921,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.mutable_flag) = -# 4113 "parsing/parser.mly" +# 4254 "parsing/parser.mly" ( Immutable ) -# 56781 "parsing/parser.ml" +# 57927 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56807,9 +57953,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.mutable_flag) = -# 4114 "parsing/parser.mly" +# 4255 "parsing/parser.mly" ( Mutable ) -# 56813 "parsing/parser.ml" +# 57959 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56839,9 +57985,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.mutable_flag) = -# 4115 "parsing/parser.mly" +# 4256 "parsing/parser.mly" ( Mutable ) -# 56845 "parsing/parser.ml" +# 57991 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56864,9 +58010,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag) = -# 4120 "parsing/parser.mly" +# 4261 "parsing/parser.mly" ( Public ) -# 56870 "parsing/parser.ml" +# 58016 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56896,9 +58042,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag) = -# 4121 "parsing/parser.mly" +# 4262 "parsing/parser.mly" ( Private ) -# 56902 "parsing/parser.ml" +# 58048 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56928,9 +58074,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag) = -# 4122 "parsing/parser.mly" +# 4263 "parsing/parser.mly" ( Private ) -# 56934 "parsing/parser.ml" +# 58080 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56992,27 +58138,27 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 56996 "parsing/parser.ml" +# 58142 "parsing/parser.ml" in -# 1108 "parsing/parser.mly" +# 1179 "parsing/parser.mly" ( xs ) -# 57001 "parsing/parser.ml" +# 58147 "parsing/parser.ml" in -# 3284 "parsing/parser.mly" +# 3377 "parsing/parser.mly" ( _1 ) -# 57007 "parsing/parser.ml" +# 58153 "parsing/parser.ml" in let _endpos__6_ = _endpos_xs_ in let _5 = let _1 = _1_inlined2 in -# 3634 "parsing/parser.mly" +# 3743 "parsing/parser.mly" ( _1 ) -# 57016 "parsing/parser.ml" +# 58162 "parsing/parser.ml" in let _3 = @@ -57021,16 +58167,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 57027 "parsing/parser.ml" +# 58173 "parsing/parser.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3553 "parsing/parser.mly" +# 3657 "parsing/parser.mly" ( let lident = loc_last _3 in Pwith_type (_3, @@ -57040,7 +58186,7 @@ module Tables = struct ~manifest:_5 ~priv:_4 ~loc:(make_loc _sloc))) ) -# 57044 "parsing/parser.ml" +# 58190 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57093,9 +58239,9 @@ module Tables = struct let _v : (Parsetree.with_constraint) = let _5 = let _1 = _1_inlined2 in -# 3634 "parsing/parser.mly" +# 3743 "parsing/parser.mly" ( _1 ) -# 57099 "parsing/parser.ml" +# 58245 "parsing/parser.ml" in let _endpos__5_ = _endpos__1_inlined2_ in @@ -57105,16 +58251,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 57111 "parsing/parser.ml" +# 58257 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3566 "parsing/parser.mly" +# 3670 "parsing/parser.mly" ( let lident = loc_last _3 in Pwith_typesubst (_3, @@ -57122,7 +58268,7 @@ module Tables = struct ~params:_2 ~manifest:_5 ~loc:(make_loc _sloc))) ) -# 57126 "parsing/parser.ml" +# 58272 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57171,9 +58317,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 57177 "parsing/parser.ml" +# 58323 "parsing/parser.ml" in let _2 = @@ -57182,15 +58328,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 57188 "parsing/parser.ml" +# 58334 "parsing/parser.ml" in -# 3574 "parsing/parser.mly" +# 3678 "parsing/parser.mly" ( Pwith_module (_2, _4) ) -# 57194 "parsing/parser.ml" +# 58340 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57239,9 +58385,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 57245 "parsing/parser.ml" +# 58391 "parsing/parser.ml" in let _2 = @@ -57250,15 +58396,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 57256 "parsing/parser.ml" +# 58402 "parsing/parser.ml" in -# 3576 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Pwith_modsubst (_2, _4) ) -# 57262 "parsing/parser.ml" +# 58408 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57314,15 +58460,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 57320 "parsing/parser.ml" +# 58466 "parsing/parser.ml" in -# 3578 "parsing/parser.mly" +# 3682 "parsing/parser.mly" ( Pwith_modtype (l, rhs) ) -# 57326 "parsing/parser.ml" +# 58472 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57378,15 +58524,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1024 "parsing/parser.mly" +# 1095 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 57384 "parsing/parser.ml" +# 58530 "parsing/parser.ml" in -# 3580 "parsing/parser.mly" +# 3684 "parsing/parser.mly" ( Pwith_modtypesubst (l, rhs) ) -# 57390 "parsing/parser.ml" +# 58536 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57409,9 +58555,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag) = -# 3583 "parsing/parser.mly" +# 3687 "parsing/parser.mly" ( Public ) -# 57415 "parsing/parser.ml" +# 58561 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57441,9 +58587,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag) = -# 3584 "parsing/parser.mly" +# 3688 "parsing/parser.mly" ( Private ) -# 57447 "parsing/parser.ml" +# 58593 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57471,59 +58617,59 @@ end let use_file = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2089 lexer lexbuf) : (Parsetree.toplevel_phrase list)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2159 lexer lexbuf) : (Parsetree.toplevel_phrase list)) and toplevel_phrase = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2069 lexer lexbuf) : (Parsetree.toplevel_phrase)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2139 lexer lexbuf) : (Parsetree.toplevel_phrase)) and parse_val_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2063 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2133 lexer lexbuf) : (Longident.t)) and parse_pattern = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2059 lexer lexbuf) : (Parsetree.pattern)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2129 lexer lexbuf) : (Parsetree.pattern)) and parse_mty_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2055 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2125 lexer lexbuf) : (Longident.t)) and parse_module_type = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2051 lexer lexbuf) : (Parsetree.module_type)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2121 lexer lexbuf) : (Parsetree.module_type)) and parse_module_expr = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2047 lexer lexbuf) : (Parsetree.module_expr)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2117 lexer lexbuf) : (Parsetree.module_expr)) and parse_mod_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2043 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2113 lexer lexbuf) : (Longident.t)) and parse_mod_ext_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2039 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2109 lexer lexbuf) : (Longident.t)) and parse_expression = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2035 lexer lexbuf) : (Parsetree.expression)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2105 lexer lexbuf) : (Parsetree.expression)) and parse_core_type = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2031 lexer lexbuf) : (Parsetree.core_type)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2101 lexer lexbuf) : (Parsetree.core_type)) and parse_constr_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2027 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2097 lexer lexbuf) : (Longident.t)) and parse_any_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2009 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2079 lexer lexbuf) : (Longident.t)) and interface = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2005 lexer lexbuf) : (Parsetree.signature)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2075 lexer lexbuf) : (Parsetree.signature)) and implementation = fun lexer lexbuf -> @@ -57533,59 +58679,59 @@ module Incremental = struct let use_file = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2089 initial_position) : (Parsetree.toplevel_phrase list) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2159 initial_position) : (Parsetree.toplevel_phrase list) MenhirInterpreter.checkpoint) and toplevel_phrase = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2069 initial_position) : (Parsetree.toplevel_phrase) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2139 initial_position) : (Parsetree.toplevel_phrase) MenhirInterpreter.checkpoint) and parse_val_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2063 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2133 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_pattern = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2059 initial_position) : (Parsetree.pattern) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2129 initial_position) : (Parsetree.pattern) MenhirInterpreter.checkpoint) and parse_mty_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2055 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2125 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_module_type = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2051 initial_position) : (Parsetree.module_type) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2121 initial_position) : (Parsetree.module_type) MenhirInterpreter.checkpoint) and parse_module_expr = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2047 initial_position) : (Parsetree.module_expr) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2117 initial_position) : (Parsetree.module_expr) MenhirInterpreter.checkpoint) and parse_mod_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2043 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2113 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_mod_ext_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2039 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2109 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_expression = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2035 initial_position) : (Parsetree.expression) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2105 initial_position) : (Parsetree.expression) MenhirInterpreter.checkpoint) and parse_core_type = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2031 initial_position) : (Parsetree.core_type) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2101 initial_position) : (Parsetree.core_type) MenhirInterpreter.checkpoint) and parse_constr_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2027 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2097 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_any_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2009 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2079 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and interface = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2005 initial_position) : (Parsetree.signature) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2075 initial_position) : (Parsetree.signature) MenhirInterpreter.checkpoint) and implementation = fun initial_position -> @@ -57593,12 +58739,12 @@ module Incremental = struct end -# 4266 "parsing/parser.mly" +# 4407 "parsing/parser.mly" -# 57600 "parsing/parser.ml" +# 58746 "parsing/parser.ml" # 269 "" -# 57605 "parsing/parser.ml" +# 58751 "parsing/parser.ml" diff --git a/ocaml/parsing/ast_helper.ml b/ocaml/parsing/ast_helper.ml index 13e981f72cb..86ab5e49fa7 100644 --- a/ocaml/parsing/ast_helper.ml +++ b/ocaml/parsing/ast_helper.ml @@ -69,14 +69,15 @@ module Typ = struct let class_ ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_class (a, b)) let alias ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_alias (a, b)) let variant ?loc ?attrs a b c = mk ?loc ?attrs (Ptyp_variant (a, b, c)) - let poly ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_poly (a, b)) + let poly ?loc ?attrs a b c = mk ?loc ?attrs (Ptyp_poly (a, b, c)) let package ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_package (a, b)) let extension ?loc ?attrs a = mk ?loc ?attrs (Ptyp_extension a) + let layout ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_layout (a, b)) let force_poly t = match t.ptyp_desc with | Ptyp_poly _ -> t - | _ -> poly ~loc:t.ptyp_loc [] t (* -> ghost? *) + | _ -> poly ~loc:t.ptyp_loc [] t [] (* -> ghost? *) let varify_constructors var_names t = let check_variable vl loc v = @@ -114,14 +115,16 @@ module Typ = struct | Ptyp_variant(row_field_list, flag, lbl_lst_option) -> Ptyp_variant(List.map loop_row_field row_field_list, flag, lbl_lst_option) - | Ptyp_poly(string_lst, core_type) -> + | Ptyp_poly(string_lst, core_type, layouts) -> List.iter (fun v -> check_variable var_names t.ptyp_loc v.txt) string_lst; - Ptyp_poly(string_lst, loop core_type) + Ptyp_poly(string_lst, loop core_type, layouts) | Ptyp_package(longident,lst) -> Ptyp_package(longident,List.map (fun (n,typ) -> (n,loop typ) ) lst) | Ptyp_extension (s, arg) -> Ptyp_extension (s, arg) + | Ptyp_layout (t, layout) -> + Ptyp_layout (loop t, layout) in {t with ptyp_desc = desc} and loop_row_field field = @@ -212,7 +215,7 @@ module Exp = struct let lazy_ ?loc ?attrs a = mk ?loc ?attrs (Pexp_lazy a) let poly ?loc ?attrs a b = mk ?loc ?attrs (Pexp_poly (a, b)) let object_ ?loc ?attrs a = mk ?loc ?attrs (Pexp_object a) - let newtype ?loc ?attrs a b = mk ?loc ?attrs (Pexp_newtype (a, b)) + let newtype ?loc ?attrs a b c = mk ?loc ?attrs (Pexp_newtype (a, b, c)) let pack ?loc ?attrs a = mk ?loc ?attrs (Pexp_pack a) let open_ ?loc ?attrs a b = mk ?loc ?attrs (Pexp_open (a, b)) let letop ?loc ?attrs let_ ands body = @@ -517,11 +520,13 @@ module Type = struct let mk ?(loc = !default_loc) ?(attrs = []) ?(docs = empty_docs) ?(text = []) ?(params = []) + ?layout ?(cstrs = []) ?(kind = Ptype_abstract) ?(priv = Public) ?manifest name = + let layout_attrs = Option.to_list layout in { ptype_name = name; ptype_params = params; @@ -530,15 +535,17 @@ module Type = struct ptype_private = priv; ptype_manifest = manifest; ptype_attributes = - add_text_attrs text (add_docs_attrs docs attrs); + layout_attrs @ add_text_attrs text (add_docs_attrs docs attrs); ptype_loc = loc; } let constructor ?(loc = !default_loc) ?(attrs = []) ?(info = empty_info) - ?(vars = []) ?(args = Pcstr_tuple []) ?res name = + ?(vars = [],[]) ?(args = Pcstr_tuple []) ?res name = + let vars, layouts = vars in { pcd_name = name; pcd_vars = vars; + pcd_layouts = layouts; pcd_args = args; pcd_res = res; pcd_loc = loc; @@ -588,10 +595,11 @@ module Te = struct } let decl ?(loc = !default_loc) ?(attrs = []) ?(docs = empty_docs) - ?(info = empty_info) ?(vars = []) ?(args = Pcstr_tuple []) ?res name = + ?(info = empty_info) ?(vars = [],[]) ?(args = Pcstr_tuple []) ?res name = + let vars, layouts = vars in { pext_name = name; - pext_kind = Pext_decl(vars, args, res); + pext_kind = Pext_decl(vars, args, res, layouts); pext_loc = loc; pext_attributes = add_docs_attrs docs (add_info_attrs info attrs); } diff --git a/ocaml/parsing/ast_helper.mli b/ocaml/parsing/ast_helper.mli index 8e778e8c433..b0b013a78d6 100644 --- a/ocaml/parsing/ast_helper.mli +++ b/ocaml/parsing/ast_helper.mli @@ -80,10 +80,13 @@ module Typ : val alias: ?loc:loc -> ?attrs:attrs -> core_type -> string -> core_type val variant: ?loc:loc -> ?attrs:attrs -> row_field list -> closed_flag -> label list option -> core_type - val poly: ?loc:loc -> ?attrs:attrs -> str list -> core_type -> core_type + val poly: ?loc:loc -> ?attrs:attrs -> str list -> core_type + -> layout_annotation option list -> core_type val package: ?loc:loc -> ?attrs:attrs -> lid -> (lid * core_type) list -> core_type val extension: ?loc:loc -> ?attrs:attrs -> extension -> core_type + val layout: ?loc:loc -> ?attrs:attrs -> core_type + -> layout_annotation -> core_type val force_poly: core_type -> core_type @@ -181,7 +184,8 @@ module Exp: val poly: ?loc:loc -> ?attrs:attrs -> expression -> core_type option -> expression val object_: ?loc:loc -> ?attrs:attrs -> class_structure -> expression - val newtype: ?loc:loc -> ?attrs:attrs -> str -> expression -> expression + val newtype: ?loc:loc -> ?attrs:attrs -> str -> expression + -> layout_annotation option -> expression val pack: ?loc:loc -> ?attrs:attrs -> module_expr -> expression val open_: ?loc:loc -> ?attrs:attrs -> open_declaration -> expression -> expression @@ -206,12 +210,14 @@ module Type: sig val mk: ?loc:loc -> ?attrs:attrs -> ?docs:docs -> ?text:text -> ?params:(core_type * (variance * injectivity)) list -> + ?layout:attribute -> ?cstrs:(core_type * core_type * loc) list -> ?kind:type_kind -> ?priv:private_flag -> ?manifest:core_type -> str -> type_declaration val constructor: ?loc:loc -> ?attrs:attrs -> ?info:info -> - ?vars:str list -> ?args:constructor_arguments -> ?res:core_type -> + ?vars:(str list * layout_annotation option list) -> + ?args:constructor_arguments -> ?res:core_type -> str -> constructor_declaration val field: ?loc:loc -> ?attrs:attrs -> ?info:info -> @@ -232,7 +238,8 @@ module Te: str -> extension_constructor_kind -> extension_constructor val decl: ?loc:loc -> ?attrs:attrs -> ?docs:docs -> ?info:info -> - ?vars:str list -> ?args:constructor_arguments -> ?res:core_type -> + ?vars:(str list * layout_annotation option list) -> + ?args:constructor_arguments -> ?res:core_type -> str -> extension_constructor val rebind: ?loc:loc -> ?attrs:attrs -> ?docs:docs -> ?info:info -> diff --git a/ocaml/parsing/ast_iterator.ml b/ocaml/parsing/ast_iterator.ml index fdea717c4cb..c6ad34bc66e 100644 --- a/ocaml/parsing/ast_iterator.ml +++ b/ocaml/parsing/ast_iterator.ml @@ -47,6 +47,7 @@ type iterator = { include_declaration: iterator -> include_declaration -> unit; include_description: iterator -> include_description -> unit; label_declaration: iterator -> label_declaration -> unit; + layout_annotation:iterator -> Asttypes.const_layout -> unit; location: iterator -> Location.t -> unit; module_binding: iterator -> module_binding -> unit; module_declaration: iterator -> module_declaration -> unit; @@ -90,6 +91,9 @@ let iter_tuple3 f1 f2 f3 (x, y, z) = f1 x; f2 y; f3 z let iter_opt f = function None -> () | Some x -> f x let iter_loc sub {loc; txt = _} = sub.location sub loc +let iter_loc2 sub f { loc; txt } = + sub.location sub loc; + f sub txt module T = struct (* Type expressions for the core language *) @@ -116,6 +120,9 @@ module T = struct | Otag (_, t) -> sub.typ sub t | Oinherit t -> sub.typ sub t + let type_vars_layouts sub (tvls : type_vars_layouts) = + List.iter (iter_opt (iter_loc2 sub sub.layout_annotation)) tvls + let iter_jst _sub : Jane_syntax.Core_type.t -> _ = function | _ -> . @@ -141,11 +148,17 @@ module T = struct | Ptyp_alias (t, _) -> sub.typ sub t | Ptyp_variant (rl, _b, _ll) -> List.iter (row_field sub) rl - | Ptyp_poly (_, t) -> sub.typ sub t + | Ptyp_poly (_, t, lays) -> + sub.typ sub t; + type_vars_layouts sub lays | Ptyp_package (lid, l) -> iter_loc sub lid; List.iter (iter_tuple (iter_loc sub) (sub.typ sub)) l | Ptyp_extension x -> sub.extension sub x + | Ptyp_layout (t, layout) -> + sub.typ sub t; + iter_loc sub layout; + sub.layout_annotation sub layout.txt let iter_type_declaration sub {ptype_name; ptype_params; ptype_cstrs; @@ -195,10 +208,11 @@ module T = struct sub.attributes sub ptyexn_attributes let iter_extension_constructor_kind sub = function - Pext_decl(vars, ctl, cto) -> + Pext_decl(vars, ctl, cto, layouts) -> List.iter (iter_loc sub) vars; iter_constructor_arguments sub ctl; - iter_opt (sub.typ sub) cto + iter_opt (sub.typ sub) cto; + type_vars_layouts sub layouts | Pext_rebind li -> iter_loc sub li @@ -495,7 +509,9 @@ module E = struct | Pexp_poly (e, t) -> sub.expr sub e; iter_opt (sub.typ sub) t | Pexp_object cls -> sub.class_structure sub cls - | Pexp_newtype (_s, e) -> sub.expr sub e + | Pexp_newtype (_s, e, l) -> + iter_opt (iter_loc2 sub sub.layout_annotation) l; + sub.expr sub e | Pexp_pack me -> sub.module_expr sub me | Pexp_open (o, e) -> sub.open_declaration sub o; sub.expr sub e @@ -745,10 +761,11 @@ let default_iterator = constructor_declaration = - (fun this {pcd_name; pcd_vars; pcd_args; + (fun this {pcd_name; pcd_vars; pcd_layouts; pcd_args; pcd_res; pcd_loc; pcd_attributes} -> iter_loc this pcd_name; List.iter (iter_loc this) pcd_vars; + T.type_vars_layouts this pcd_layouts; T.iter_constructor_arguments this pcd_args; iter_opt (this.typ this) pcd_res; this.location this pcd_loc; @@ -787,4 +804,6 @@ let default_iterator = | PTyp x -> this.typ this x | PPat (x, g) -> this.pat this x; iter_opt (this.expr this) g ); + + layout_annotation = (fun _this _l -> ()); } diff --git a/ocaml/parsing/ast_iterator.mli b/ocaml/parsing/ast_iterator.mli index 0d63a0cf7c7..0ef7f98e12d 100644 --- a/ocaml/parsing/ast_iterator.mli +++ b/ocaml/parsing/ast_iterator.mli @@ -50,6 +50,7 @@ type iterator = { include_declaration: iterator -> include_declaration -> unit; include_description: iterator -> include_description -> unit; label_declaration: iterator -> label_declaration -> unit; + layout_annotation: iterator -> Asttypes.const_layout -> unit; location: iterator -> Location.t -> unit; module_binding: iterator -> module_binding -> unit; module_declaration: iterator -> module_declaration -> unit; diff --git a/ocaml/parsing/ast_mapper.ml b/ocaml/parsing/ast_mapper.ml index 3c58e79c9c6..a3fb3963c67 100644 --- a/ocaml/parsing/ast_mapper.ml +++ b/ocaml/parsing/ast_mapper.ml @@ -54,6 +54,7 @@ type mapper = { include_declaration: mapper -> include_declaration -> include_declaration; include_description: mapper -> include_description -> include_description; label_declaration: mapper -> label_declaration -> label_declaration; + layout_annotation: mapper -> Asttypes.const_layout -> Asttypes.const_layout; location: mapper -> Location.t -> Location.t; module_binding: mapper -> module_binding -> module_binding; module_declaration: mapper -> module_declaration -> module_declaration; @@ -95,6 +96,8 @@ let map_tuple3 f1 f2 f3 (x, y, z) = (f1 x, f2 y, f3 z) let map_opt f = function None -> None | Some x -> Some (f x) let map_loc sub {loc; txt} = {loc = sub.location sub loc; txt} +let map_loc_txt sub f {loc; txt} = + {loc = sub.location sub loc; txt = f sub txt} module C = struct (* Constants *) @@ -138,6 +141,9 @@ module T = struct in Of.mk ~loc ~attrs desc + let type_vars_layouts sub (tvls : type_vars_layouts) = + List.map (map_opt (map_loc_txt sub sub.layout_annotation)) tvls + let map_jst _sub : Jane_syntax.Core_type.t -> Jane_syntax.Core_type.t = function | _ -> . @@ -169,12 +175,17 @@ module T = struct | Ptyp_alias (t, s) -> alias ~loc ~attrs (sub.typ sub t) s | Ptyp_variant (rl, b, ll) -> variant ~loc ~attrs (List.map (row_field sub) rl) b ll - | Ptyp_poly (sl, t) -> poly ~loc ~attrs - (List.map (map_loc sub) sl) (sub.typ sub t) + | Ptyp_poly (sl, t, lays) -> + poly ~loc ~attrs (List.map (map_loc sub) sl) + (sub.typ sub t) + (type_vars_layouts sub lays) | Ptyp_package (lid, l) -> package ~loc ~attrs (map_loc sub lid) (List.map (map_tuple (map_loc sub) (sub.typ sub)) l) | Ptyp_extension x -> extension ~loc ~attrs (sub.extension sub x) + | Ptyp_layout (t, lay) -> layout ~loc ~attrs + (sub.typ sub t) + (map_loc_txt sub sub.layout_annotation lay) let map_type_declaration sub {ptype_name; ptype_params; ptype_cstrs; @@ -228,10 +239,11 @@ module T = struct (sub.extension_constructor sub ptyexn_constructor) let map_extension_constructor_kind sub = function - Pext_decl(vars, ctl, cto) -> + Pext_decl(vars, ctl, cto, layouts) -> Pext_decl(List.map (map_loc sub) vars, map_constructor_arguments sub ctl, - map_opt (sub.typ sub) cto) + map_opt (sub.typ sub) cto, + type_vars_layouts sub layouts) | Pext_rebind li -> Pext_rebind (map_loc sub li) @@ -580,8 +592,9 @@ module E = struct | Pexp_poly (e, t) -> poly ~loc ~attrs (sub.expr sub e) (map_opt (sub.typ sub) t) | Pexp_object cls -> object_ ~loc ~attrs (sub.class_structure sub cls) - | Pexp_newtype (s, e) -> + | Pexp_newtype (s, e, l) -> newtype ~loc ~attrs (map_loc sub s) (sub.expr sub e) + (map_opt (map_loc_txt sub sub.layout_annotation) l) | Pexp_pack me -> pack ~loc ~attrs (sub.module_expr sub me) | Pexp_open (o, e) -> open_ ~loc ~attrs (sub.open_declaration sub o) (sub.expr sub e) @@ -851,11 +864,12 @@ let default_mapper = constructor_declaration = - (fun this {pcd_name; pcd_vars; pcd_args; + (fun this {pcd_name; pcd_vars; pcd_layouts; pcd_args; pcd_res; pcd_loc; pcd_attributes} -> Type.constructor (map_loc this pcd_name) - ~vars:(List.map (map_loc this) pcd_vars) + ~vars:(List.map (map_loc this) pcd_vars, + List.map (Option.map (map_loc this)) pcd_layouts) ~args:(T.map_constructor_arguments this pcd_args) ?res:(map_opt (this.typ this) pcd_res) ~loc:(this.location this pcd_loc) @@ -902,6 +916,8 @@ let default_mapper = | PTyp x -> PTyp (this.typ this x) | PPat (x, g) -> PPat (this.pat this x, map_opt (this.expr this) g) ); + + layout_annotation = (fun _this l -> l); } let extension_of_error {kind; main; sub} = diff --git a/ocaml/parsing/ast_mapper.mli b/ocaml/parsing/ast_mapper.mli index 42fefea223e..7747c0f7d81 100644 --- a/ocaml/parsing/ast_mapper.mli +++ b/ocaml/parsing/ast_mapper.mli @@ -92,6 +92,7 @@ type mapper = { type *) label_declaration: mapper -> label_declaration -> label_declaration; + layout_annotation: mapper -> Asttypes.const_layout -> Asttypes.const_layout; location: mapper -> Location.t -> Location.t; module_binding: mapper -> module_binding -> module_binding; module_declaration: mapper -> module_declaration -> module_declaration; diff --git a/ocaml/parsing/asttypes.mli b/ocaml/parsing/asttypes.mli index 15536fc684f..d8da28e0fc3 100644 --- a/ocaml/parsing/asttypes.mli +++ b/ocaml/parsing/asttypes.mli @@ -49,6 +49,11 @@ type global_flag = | Nonlocal | Nothing +type 'a loc = 'a Location.loc = { + txt : 'a; + loc : Location.t; +} + (* constant layouts are parsed as layout annotations, and also used in the type checker as already-inferred (i.e. non-variable) layouts *) type const_layout = @@ -57,6 +62,7 @@ type const_layout = | Void | Immediate64 | Immediate +type layout_annotation = const_layout loc type label = string @@ -65,12 +71,6 @@ type arg_label = | Labelled of string (** [label:T -> ...] *) | Optional of string (** [?label:T -> ...] *) -type 'a loc = 'a Location.loc = { - txt : 'a; - loc : Location.t; -} - - type variance = | Covariant | Contravariant @@ -79,3 +79,4 @@ type variance = type injectivity = | Injective | NoInjectivity + diff --git a/ocaml/parsing/builtin_attributes.mli b/ocaml/parsing/builtin_attributes.mli index dc7743b9526..2ab6acf5790 100644 --- a/ocaml/parsing/builtin_attributes.mli +++ b/ocaml/parsing/builtin_attributes.mli @@ -199,5 +199,5 @@ val tailcall : Parsetree.attributes -> (* CR layouts: we should eventually be able to delete ~legacy_immediate (after we turn on layouts by default). *) val layout : legacy_immediate:bool -> Parsetree.attributes -> - (Asttypes.const_layout Location.loc option, - Asttypes.const_layout Location.loc) result + (Asttypes.layout_annotation option, + Asttypes.layout_annotation) result diff --git a/ocaml/parsing/depend.ml b/ocaml/parsing/depend.ml index e809a0c4c3e..12da17cd777 100644 --- a/ocaml/parsing/depend.ml +++ b/ocaml/parsing/depend.ml @@ -118,9 +118,10 @@ let rec add_type bv ty = | Rtag(_, _, stl) -> List.iter (add_type bv) stl | Rinherit sty -> add_type bv sty) fl - | Ptyp_poly(_, t) -> add_type bv t + | Ptyp_poly(_, t, _) -> add_type bv t | Ptyp_package pt -> add_package_type bv pt | Ptyp_extension e -> handle_extension e + | Ptyp_layout(t, _) -> add_type bv t and add_type_jst _bv : Jane_syntax.Core_type.t -> _ = function | _ -> . @@ -157,7 +158,7 @@ let add_type_declaration bv td = let add_extension_constructor bv ext = match ext.pext_kind with - Pext_decl(_, args, rty) -> + Pext_decl(_, args, rty, _) -> add_constructor_arguments bv args; Option.iter (add_type bv) rty | Pext_rebind lid -> add bv lid @@ -267,7 +268,7 @@ let rec add_expr bv exp = | Pexp_poly (e, t) -> add_expr bv e; add_opt add_type bv t | Pexp_object { pcstr_self = pat; pcstr_fields = fieldl } -> let bv = add_pattern bv pat in List.iter (add_class_field bv) fieldl - | Pexp_newtype (_, e) -> add_expr bv e + | Pexp_newtype (_, e, _) -> add_expr bv e | Pexp_pack m -> add_module_expr bv m | Pexp_open (o, e) -> let bv = open_declaration bv o in diff --git a/ocaml/parsing/location.ml b/ocaml/parsing/location.ml index 5d77c90d4e4..d48e4bff3eb 100644 --- a/ocaml/parsing/location.ml +++ b/ocaml/parsing/location.ml @@ -83,6 +83,7 @@ type 'a loc = { let mkloc txt loc = { txt ; loc } let mknoloc txt = mkloc txt none let get_txt { txt } = txt +let map f { txt; loc} = {txt = f txt; loc} (******************************************************************************) (* Input info *) diff --git a/ocaml/parsing/location.mli b/ocaml/parsing/location.mli index 5bda0f5361a..8d23b6a8136 100644 --- a/ocaml/parsing/location.mli +++ b/ocaml/parsing/location.mli @@ -91,6 +91,7 @@ type 'a loc = { val mknoloc : 'a -> 'a loc val mkloc : 'a -> t -> 'a loc val get_txt : 'a loc -> 'a +val map : ('a -> 'b) -> 'a loc -> 'b loc (** {1 Input info} *) diff --git a/ocaml/parsing/parser.mly b/ocaml/parsing/parser.mly index 28c0c99c096..9d7961dbf81 100644 --- a/ocaml/parsing/parser.mly +++ b/ocaml/parsing/parser.mly @@ -343,8 +343,10 @@ let ppat_iarray loc elts = ~loc:(make_loc loc) (Iapat_immutable_array elts) -let expecting loc nonterm = - raise Syntaxerr.(Error(Expecting(make_loc loc, nonterm))) +let expecting_loc (loc : Location.t) (nonterm : string) = + raise Syntaxerr.(Error(Expecting(loc, nonterm))) +let expecting (loc : Lexing.position * Lexing.position) nonterm = + expecting_loc (make_loc loc) nonterm (* Using the function [not_expecting] in a semantic action means that this syntactic form is recognized by the parser but is in fact incorrect. This @@ -495,23 +497,19 @@ let lapply ~loc p1 p2 = else raise (Syntaxerr.Error( Syntaxerr.Applicative_path (make_loc loc))) -(* [loc_map] could be [Location.map]. *) -let loc_map (f : 'a -> 'b) (x : 'a Location.loc) : 'b Location.loc = - { x with txt = f x.txt } - let make_ghost x = if x.loc.loc_ghost then x (* Save an allocation *) else { x with loc = Location.ghostify x.loc } let loc_last (id : Longident.t Location.loc) : string Location.loc = - loc_map Longident.last id + Location.map Longident.last id let loc_lident (id : string Location.loc) : Longident.t Location.loc = - loc_map (fun x -> Lident x) id + Location.map (fun x -> Lident x) id let exp_of_longident lid = - let lid = loc_map (fun id -> Lident (Longident.last id)) lid in + let lid = Location.map (fun id -> Lident (Longident.last id)) lid in Exp.mk ~loc:lid.loc (Pexp_ident lid) let exp_of_label lbl = @@ -522,7 +520,8 @@ let pat_of_label lbl = let mk_newtypes ~loc newtypes exp = let mkexp = mkexp ~loc in - List.fold_right (fun newtype exp -> mkexp (Pexp_newtype (newtype, exp))) + List.fold_right (fun (name, layout) exp -> + mkexp (Pexp_newtype (name, exp, layout))) newtypes exp let wrap_type_annotation ~loc newtypes core_type body = @@ -530,7 +529,8 @@ let wrap_type_annotation ~loc newtypes core_type body = let mk_newtypes = mk_newtypes ~loc in let exp = mkexp(Pexp_constraint(body,core_type)) in let exp = mk_newtypes newtypes exp in - (exp, ghtyp(Ptyp_poly(newtypes, Typ.varify_constructors newtypes core_type))) + let vars, layouts = List.split newtypes in + (exp, ghtyp(Ptyp_poly(vars, Typ.varify_constructors vars core_type, layouts))) let wrap_exp_attrs ~loc body (ext, attrs) = let ghexp = ghexp ~loc in @@ -744,14 +744,85 @@ let mk_directive ~loc name arg = pdir_loc = make_loc loc; } -let check_layout loc id = - begin - match id with - | ("any" | "value" | "void" | "immediate64" | "immediate") -> () - | _ -> expecting loc "layout" - end; - let loc = make_loc loc in - Attr.mk ~loc (mkloc id loc) (PStr []) +(* returns both the translated layout and the string, because + the string is useful for building an Attribute *) +let check_layout loc id : (const_layout * string) with_loc = + let layout_annotation = match id with + | "any" -> Any + | "value" -> Value + | "void" -> Void + | "immediate64" -> Immediate64 + | "immediate" -> Immediate + | _ -> expecting_loc loc "layout" + in + mkloc (layout_annotation, id) loc + +(* See Note [Parsing layout annotations in types] *) +let check_layout_from_type layout_type : layout_annotation = + match layout_type.ptyp_desc with + | Ptyp_constr({ txt = Lident lay_string }, []) -> + Location.map fst (check_layout layout_type.ptyp_loc lay_string) + | _ -> expecting_loc layout_type.ptyp_loc "layout" + +(* See Note [Parsing layout annotations in types], the [Similar story] *) +let check_type_var_from_type tv_type : string with_loc = + match tv_type.ptyp_desc with + | Ptyp_var name -> mkloc name tv_type.ptyp_loc + | _ -> expecting_loc tv_type.ptyp_loc "type variable" + +(* Note [Parsing layout annotations in types] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + We wish to be able to parse [(int list : value)] as a layout annotation + in a type. This is slightly fraught, though: if we see [(int : value ...] + as we're parsing, have we seen the beginning a layout annotation, or have we + seen the beginning of a function type whose argument is labeled [int]? + + In order to build a non-conflicting parser with support for these layout + annotations, we must keep the productions for layout annotations in line + with those for labeled functions. The key action happens in the definition + of nonterminal [non_ident_atomic_type]. We have two problems to solve: + + 1. Before the COLON + + There are two different productions for layout annotations, one beginning with + [LPAREN LIDENT COLON] and the other wish [LPAREN non_ident_atomic_type COLON]. The + former nicely overlaps with the production for labeled functions (in + [strict_function_type]); this overlap allows menhir to avoid conflicts. + We similarly must be careful to avoid conflicts between these two productions, + which is why we define non_ident_atomic_type, which parses types that are + anything other than a single identifier. + + 2. After the COLON + + Because we need to keep the labeled-function parser and the layout-annotations + parser lined up until the disambiguator (either an [->] or a [)]), we still + must be careful after the colon. Here, we use [tuple_type], which again + dovetails with the productions in [strict_function_type]. + + Of course, a layout annotation is not quite a [tuple_type], and so + [check_layout_from_type] converts, reporting an error if the conversion + is impossible. + + The current design works well, but it is not as powerful as it could be. + In particular, the "before the colon" part accepts only non_ident_atomic_type, + meaning that e.g. [(int * bool * string : value)] cannot be parsed. If we + want to, we can extend this treatment to tuples or even function types, + but doing so seems under-motivated. + + [Similar story]: There is a similar overlap around [let f : ('a : value) ...]. + Is that the beginning of, say, a function type where ['a] is the argument? + Or is it the beginning of a list of universal variables. To avoid conflicts + in this case (the non-terminal of interest is [possibly_poly], which can't + know which side to take), we have layout-annotation case of [typevar] parse + liberally, lining up with the layout-annotation case of [non_ident_atomic_type], + checking that the variable is really a variable and the layout annotation + is really a layout annotation in [check_type_var_from_type] and + [check_layout_from_type]. +*) + + + + %} @@ -2143,7 +2214,7 @@ method_: let loc = ($startpos($6), $endpos($8)) in ghexp ~loc (Pexp_poly($8, Some $6)) in ($4, $3, Cfk_concrete ($1, poly_exp)), $2 } - | override_flag attributes private_flag mkrhs(label) COLON TYPE lident_list + | override_flag attributes private_flag mkrhs(label) COLON TYPE newtypes DOT core_type EQUAL seq_expr { let poly_exp_loc = ($startpos($7), $endpos($11)) in let poly_exp = @@ -2394,7 +2465,8 @@ label_let_pattern: lab, mkpat ~loc:$sloc (Ppat_constraint (pat, cty)) } | x = label_var COLON - cty = mktyp (vars = typevar_list DOT ty = core_type { Ptyp_poly(vars, ty) }) + cty = mktyp (vars = typevar_list DOT ty = core_type + { Ptyp_poly(fst vars, ty, snd vars) }) { let lab, pat = x in lab, mkpat ~loc:$sloc (Ppat_constraint (pat, cty)) } @@ -2417,7 +2489,7 @@ let_pattern: pat = pattern COLON cty = mktyp(vars = typevar_list DOT ty = core_type - { Ptyp_poly(vars, ty) }) + { Ptyp_poly(fst vars, ty, snd vars) }) { Ppat_constraint(pat, cty) }) { $1 } ; @@ -2491,8 +2563,10 @@ expr: | FUN ext_attributes labeled_simple_pattern fun_def { let (l,o,p) = $3 in Pexp_fun(l, o, p, $4), $2 } - | FUN ext_attributes LPAREN TYPE lident_list RPAREN fun_def + | FUN ext_attributes LPAREN TYPE newtypes RPAREN fun_def { (mk_newtypes ~loc:$sloc $5 $7).pexp_desc, $2 } + | FUN ext_attributes LPAREN TYPE mkrhs(LIDENT) COLON layout_annotation RPAREN fun_def + { (mk_newtypes ~loc:$sloc [$5, Some $7] $9).pexp_desc, $2 } | MATCH ext_attributes seq_expr WITH match_cases { Pexp_match($3, $5), $2 } | TRY ext_attributes seq_expr WITH match_cases @@ -2775,7 +2849,7 @@ let_binding_body_no_punning: in let loc = Location.(t.ptyp_loc.loc_start, t.ptyp_loc.loc_end) in let local_loc = $loc($1) in - let typ = ghtyp ~loc (Ptyp_poly([],t)) in + let typ = ghtyp ~loc (Ptyp_poly([],t,[])) in let patloc = ($startpos($2), $endpos($3)) in let pat = mkpat_local_if $1 (ghpat ~loc:patloc (Ppat_constraint(v, typ))) @@ -2797,7 +2871,7 @@ let_binding_body_no_punning: in let exp = mkexp_local_if $1 ~loc:$sloc ~kwd_loc:($loc($1)) $6 in (pat, exp) } - | let_ident COLON TYPE lident_list DOT core_type EQUAL seq_expr + | let_ident COLON TYPE newtypes DOT core_type EQUAL seq_expr { let exp, poly = wrap_type_annotation ~loc:$sloc $4 $6 $8 in let loc = ($startpos($1), $endpos($6)) in @@ -2884,8 +2958,10 @@ strict_binding: { $2 } | labeled_simple_pattern fun_binding { let (l, o, p) = $1 in ghexp ~loc:$sloc (Pexp_fun(l, o, p, $2)) } - | LPAREN TYPE lident_list RPAREN fun_binding + | LPAREN TYPE newtypes RPAREN fun_binding { mk_newtypes ~loc:$sloc $3 $5 } + | LPAREN TYPE mkrhs(LIDENT) COLON layout_annotation RPAREN fun_binding + { mk_newtypes ~loc:$sloc [$3, Some $5] $7 } ; local_fun_binding: local_strict_binding @@ -2898,8 +2974,10 @@ local_strict_binding: { $2 } | labeled_simple_pattern local_fun_binding { let (l, o, p) = $1 in ghexp ~loc:$sloc (Pexp_fun(l, o, p, $2)) } - | LPAREN TYPE lident_list RPAREN local_fun_binding + | LPAREN TYPE newtypes RPAREN local_fun_binding { mk_newtypes ~loc:$sloc $3 $5 } + | LPAREN TYPE mkrhs(LIDENT) COLON layout_annotation RPAREN fun_binding + { mk_newtypes ~loc:$sloc [$3, Some $5] $7 } ; %inline match_cases: xs = preceded_or_separated_nonempty_llist(BAR, match_case) @@ -2925,8 +3003,10 @@ fun_def: let (l,o,p) = $1 in ghexp ~loc:$sloc (Pexp_fun(l, o, p, $2)) } - | LPAREN TYPE lident_list RPAREN fun_def + | LPAREN TYPE newtypes RPAREN fun_def { mk_newtypes ~loc:$sloc $3 $5 } + | LPAREN TYPE mkrhs(LIDENT) COLON layout_annotation RPAREN fun_def + { mk_newtypes ~loc:$sloc [$3, Some $5] $7 } ; %inline expr_comma_list: es = separated_nontrivial_llist(COMMA, expr) @@ -2980,6 +3060,17 @@ type_constraint: | COLONGREATER error { syntax_error() } ; +(* the thing between the [type] and the [.] in + [let : type <>. 'a -> 'a = ...] *) +newtypes: (* : (string with_loc * layout_annotation option) list *) + newtype+ + { $1 } + +newtype: (* : string with_loc * layout_annotation option *) + mkrhs(LIDENT) { $1, None } + | LPAREN name=mkrhs(LIDENT) COLON layout=layout_annotation RPAREN + { name, Some layout } + /* Patterns */ (* Whereas [pattern] is an arbitrary pattern, [pattern_no_exn] is a pattern @@ -3250,6 +3341,7 @@ generic_type_declaration(flag, kind): flag = flag params = type_parameters id = mkrhs(LIDENT) + layout = layout_attr? kind_priv_manifest = kind cstrs = constraints attrs2 = post_item_attributes @@ -3259,7 +3351,7 @@ generic_type_declaration(flag, kind): let attrs = attrs1 @ attrs2 in let loc = make_loc $sloc in (flag, ext), - Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs + Type.mk id ~params ?layout ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs } ; %inline generic_and_type_declaration(kind): @@ -3267,6 +3359,7 @@ generic_type_declaration(flag, kind): attrs1 = attributes params = type_parameters id = mkrhs(LIDENT) + layout = layout_attr? kind_priv_manifest = kind cstrs = constraints attrs2 = post_item_attributes @@ -3276,7 +3369,7 @@ generic_type_declaration(flag, kind): let attrs = attrs1 @ attrs2 in let loc = make_loc $sloc in let text = symbol_text $symbolstartpos in - Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text + Type.mk id ~params ?layout ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text } ; %inline constraints: @@ -3329,14 +3422,25 @@ type_parameters: { ps } ; -layout: - ident { check_layout $loc($1) $1 } +layout_annotation: (* : layout_annotation *) + layout { Location.map fst $1 } + +layout: (* : (const_layout * string) with_loc *) + (* this includes the string form of the layout annotation; useful for + some clients *) + ident { check_layout (make_loc $sloc) $1 } +; + +layout_attr: + COLON + layout=layout + { Attr.mk ~loc:layout.loc (Location.map snd layout) (PStr []) } ; parenthesized_type_parameter: type_parameter { $1 } - | type_variance type_variable COLON layout - { {$2 with ptyp_attributes = [$4]}, $1 } + | type_variance type_variable layout_annot=layout_attr + { Typ.attr $2 layout_annot, $1 } ; type_parameter: @@ -3443,15 +3547,15 @@ sig_exception_declaration: Te.decl $1 ~vars ~args ?res ~attrs:$3 ~loc:(make_loc $sloc) } ; generalized_constructor_arguments: - /*empty*/ { ([],Pcstr_tuple [],None) } - | OF constructor_arguments { ([],$2,None) } + /*empty*/ { (([],[]),Pcstr_tuple [],None) } + | OF constructor_arguments { (([],[]),$2,None) } | COLON constructor_arguments MINUSGREATER atomic_type %prec below_HASH - { ([],$2,Some $4) } + { (([],[]),$2,Some $4) } | COLON typevar_list DOT constructor_arguments MINUSGREATER atomic_type %prec below_HASH { ($2,$4,Some $6) } | COLON atomic_type %prec below_HASH - { ([],Pcstr_tuple [],Some $2) } + { (([],[]),Pcstr_tuple [],Some $2) } | COLON typevar_list DOT atomic_type %prec below_HASH { ($2,Pcstr_tuple [],Some $4) } ; @@ -3586,17 +3690,22 @@ with_type_binder: /* Polymorphic types */ -%inline typevar: - QUOTE mkrhs(ident) - { $2 } +%inline typevar: (* : string with_loc * layout_annotation option *) + QUOTE mkrhs(ident) + { ($2, None) } + (* See Note [Parsing layout annotations in types], the [Similar story], + for why this is different than you might expect *) + | LPAREN tv=non_ident_atomic_type COLON lay=tuple_type RPAREN + { (check_type_var_from_type tv, Some (check_layout_from_type lay)) } ; %inline typevar_list: + (* : string with_loc list * layout_annotation option list *) nonempty_llist(typevar) - { $1 } + { List.split $1 } ; %inline poly(X): typevar_list DOT X - { Ptyp_poly($1, $3) } + { let vars, layouts = $1 in Ptyp_poly(vars, $3, layouts) } ; possibly_poly(X): X @@ -3704,7 +3813,7 @@ strict_function_type: %inline param_type: | mktyp( LPAREN vars = typevar_list DOT ty = core_type RPAREN - { Ptyp_poly(vars, ty) } + { Ptyp_poly(fst vars, ty, snd vars) } ) { $1 } | ty = tuple_type @@ -3735,6 +3844,20 @@ tuple_type: - variant types: [`A] *) atomic_type: + | mktyp( + LIDENT + { Ptyp_constr(mkrhs (Lident $1) $sloc, []) } + ) + { $1 } + | non_ident_atomic_type + { $1 } +; + +(* This accepts types that are anything but a single identifier. Note some + care in the Ptyp_constr case to accept both [M.t] and [t1 t2] but not + [t]. Why is this separate from [atomic_type]? + See Note [Parsing layout annotations in types]. *) +non_ident_atomic_type: | LPAREN core_type RPAREN { $2 } | LPAREN MODULE ext_attributes package_type RPAREN @@ -3744,7 +3867,9 @@ atomic_type: { Ptyp_var $2 } | UNDERSCORE { Ptyp_any } - | tys = actual_type_parameters + | mkrhs(strict_type_longident) + { Ptyp_constr($1, []) } + | tys = nonempty_actual_type_parameters tid = mkrhs(type_longident) { Ptyp_constr(tid, tys) } | LESS meth_list GREATER @@ -3772,9 +3897,15 @@ atomic_type: { Ptyp_variant($3, Closed, Some $5) } | extension { Ptyp_extension $1 } + | LPAREN id=LIDENT COLON lay=tuple_type RPAREN + { let loc = $loc(id) in + Ptyp_layout(mktyp ~loc + (Ptyp_constr(mkrhs (Lident id) loc, [])), + check_layout_from_type lay) } + | LPAREN ty=non_ident_atomic_type COLON lay=tuple_type RPAREN + { Ptyp_layout(ty, check_layout_from_type lay) } ) - { $1 } /* end mktyp group */ -; + { $1 } (* This is the syntax of the actual type parameters in an application of a type constructor, such as int, int list, or (int, bool) Hashtbl.t. @@ -3789,11 +3920,14 @@ atomic_type: %inline actual_type_parameters: | /* empty */ { [] } + | nonempty_actual_type_parameters + { $1 } + +%inline nonempty_actual_type_parameters: | ty = atomic_type { [ty] } | LPAREN tys = separated_nontrivial_llist(COMMA, core_type) RPAREN { tys } -; %inline package_type: module_type { let (lid, cstrs, attrs) = package_type_of_module_type $1 in @@ -3979,6 +4113,13 @@ label_longident: type_longident: mk_longident(mod_ext_longident, LIDENT) { $1 } ; + +(* guaranteed to have at least one module prefix *) +strict_type_longident: + | mod_ext_longident DOT LIDENT + { Ldot($1, $3) } +; + mod_longident: mk_longident(mod_longident, UIDENT) { $1 } ; diff --git a/ocaml/parsing/parsetree.mli b/ocaml/parsing/parsetree.mli index 56a5d96dcb1..1f8a088e31e 100644 --- a/ocaml/parsing/parsetree.mli +++ b/ocaml/parsing/parsetree.mli @@ -137,7 +137,9 @@ and core_type_desc = when [flag] is {{!Asttypes.closed_flag.Closed}[Closed]}, and [labels] is [Some ["X";"Y"]]. *) - | Ptyp_poly of string loc list * core_type + | Ptyp_poly of string loc list * core_type * type_vars_layouts + (* XXX layouts RAE: move the layout annotations to use the extensions + mechanism *) (** ['a1 ... 'an. T] Can only appear in the following context: @@ -168,6 +170,14 @@ and core_type_desc = | Ptyp_package of package_type (** [(module S)]. *) | Ptyp_extension of extension (** [[%id]]. *) + (* XXX layouts RAE: use extension instead *) + | Ptyp_layout of core_type * layout_annotation + +and type_vars_layouts = layout_annotation option list + (* the layout annotations associated with a type-variable list, + typically a nearby [string loc list]; this list will always + be the same length as that one *) + and package_type = Longident.t loc * (Longident.t loc * core_type) list (** As {!package_type} typed values: - [(S, [])] represents [(module S)], @@ -415,7 +425,10 @@ and expression_desc = {{!class_field_kind.Cfk_concrete}[Cfk_concrete]} for methods (not values). *) | Pexp_object of class_structure (** [object ... end] *) - | Pexp_newtype of string loc * expression (** [fun (type t) -> E] *) + + (* XXX layouts RAE: move the layout_annotation to an extension *) + | Pexp_newtype of string loc * expression * layout_annotation option + (** [fun (type t : immediate) -> E] *) | Pexp_pack of module_expr (** [(module ME)]. @@ -541,6 +554,7 @@ and constructor_declaration = { pcd_name: string loc; pcd_vars: string loc list; + pcd_layouts: type_vars_layouts; pcd_args: constructor_arguments; pcd_res: core_type option; pcd_loc: Location.t; @@ -595,7 +609,9 @@ and type_exception = (** Definition of a new exception ([exception E]). *) and extension_constructor_kind = + (* XXX layouts RAE: use extensions for the type_vars_layouts *) | Pext_decl of string loc list * constructor_arguments * core_type option + * type_vars_layouts (** [Pext_decl(existentials, c_args, t_opt)] describes a new extension constructor. It can be: - [C of T1 * ... * Tn] when: diff --git a/ocaml/parsing/pprintast.ml b/ocaml/parsing/pprintast.ml index 45327655b34..1c610c2bb04 100644 --- a/ocaml/parsing/pprintast.ml +++ b/ocaml/parsing/pprintast.ml @@ -28,6 +28,13 @@ open Longident open Parsetree open Ast_helper +let const_layout_to_string = function + | Any -> "any" + | Value -> "value" + | Immediate -> "immediate" + | Immediate64 -> "immediate64" + | Void -> "void" + let prefix_symbols = [ '!'; '?'; '~' ] ;; let infix_symbols = [ '='; '<'; '>'; '@'; '^'; '|'; '&'; '+'; '-'; '*'; '/'; '$'; '%'; '#' ] @@ -295,7 +302,18 @@ let tyvar ppf s = else Format.fprintf ppf "'%s" s -let tyvar_loc f str = tyvar f str.txt +let const_layout ppf lay = + Format.fprintf ppf "%s" (const_layout_to_string lay) + +let tyvar_layout_loc ~print_quote f (str,layout) = + let pptv = + if print_quote + then tyvar + else fun ppf s -> Format.fprintf ppf "%s" s + in + match layout with + | None -> pptv f str.txt + | Some lay -> Format.fprintf f "(%a : %a)" pptv str.txt const_layout lay.txt let string_quot f x = pp f "`%s" x let maybe_local_type pty ctxt f c = @@ -330,16 +348,17 @@ and core_type ctxt f x = (type_with_label ctxt) (l,ct1) (return_type ctxt) ct2 | Ptyp_alias (ct, s) -> pp f "@[<2>%a@;as@;%a@]" (core_type1 ctxt) ct tyvar s - | Ptyp_poly ([], ct) -> + | Ptyp_poly ([], ct, []) -> core_type ctxt f ct - | Ptyp_poly (sl, ct) -> + | Ptyp_poly (sl, ct, lays) -> pp f "@[<2>%a%a@]" - (fun f l -> match l with + (fun f (v,l) -> match v with | [] -> () | _ -> pp f "%a@;.@;" - (list tyvar_loc ~sep:"@;") l) - sl (core_type ctxt) ct + (list (tyvar_layout_loc ~print_quote:true) ~sep:"@;") + (List.combine v l)) + (sl,lays) (core_type ctxt) ct | _ -> pp f "@[<2>%a@]" (core_type1 ctxt) x and core_type1 ctxt f x = @@ -689,8 +708,9 @@ and expression ctxt f x = pp f "@[<2>fun@;%a@;%a@]" (label_exp ctxt) (l, e0, p) (pp_print_pexp_function ctxt "->") e - | Pexp_newtype (lid, e) -> - pp f "@[<2>fun@;(type@;%s)@;%a@]" lid.txt + | Pexp_newtype (lid, e, lay) -> + pp f "@[<2>fun@;(type@;%a)@;%a@]" + (tyvar_layout_loc ~print_quote:false) (lid, lay) (pp_print_pexp_function ctxt "->") e | Pexp_function l -> pp f "@[function%a@]" (case_list ctxt) l @@ -1359,8 +1379,10 @@ and pp_print_pexp_function ctxt sep f x = | Pexp_fun (label, eo, p, e) -> pp f "%a@ %a" (label_exp ctxt) (label,eo,p) (pp_print_pexp_function ctxt sep) e - | Pexp_newtype (str,e) -> - pp f "(type@ %s)@ %a" str.txt (pp_print_pexp_function ctxt sep) e + | Pexp_newtype (str,e,lay) -> + pp f "(type@ %a)@ %a" + (tyvar_layout_loc ~print_quote:false) (str,lay) + (pp_print_pexp_function ctxt sep) e | _ -> pp f "%s@;%a" sep (expression ctxt) x @@ -1372,13 +1394,15 @@ and binding ctxt f {pvb_pat=p; pvb_expr=x; _} = let gadt_pattern = match p with | {ppat_desc=Ppat_constraint({ppat_desc=Ppat_var _} as pat, - {ptyp_desc=Ptyp_poly (args_tyvars, rt)}); + {ptyp_desc=Ptyp_poly (args_tyvars, rt, _)}); ppat_attributes=[]}-> Some (pat, args_tyvars, rt) | _ -> None in let rec gadt_exp tyvars e = match e with - | {pexp_desc=Pexp_newtype (tyvar, e); pexp_attributes=[]} -> + (* no need to handle layout annotations here; the extracted variables + don't get printed -- they're just used to decide how to print *) + | {pexp_desc=Pexp_newtype (tyvar, e, _); pexp_attributes=[]} -> gadt_exp (tyvar :: tyvars) e | {pexp_desc=Pexp_constraint (e, ct); pexp_attributes=[]} -> Some (List.rev tyvars, e, ct) @@ -1687,7 +1711,7 @@ and type_declaration ctxt f x = let constructor_declaration f pcd = pp f "|@;"; constructor_declaration ctxt f - (pcd.pcd_name.txt, pcd.pcd_vars, + (pcd.pcd_name.txt, pcd.pcd_vars, pcd.pcd_layouts, pcd.pcd_args, pcd.pcd_res, pcd.pcd_attributes) in let repr f = @@ -1731,15 +1755,17 @@ and type_extension ctxt f x = x.ptyext_constructors (item_attributes ctxt) x.ptyext_attributes -and constructor_declaration ctxt f (name, vars, args, res, attrs) = +and constructor_declaration ctxt f (name, vars, layouts, args, res, attrs) = let name = match name with | "::" -> "(::)" | s -> s in - let pp_vars f vs = + let pp_vars f (vs,ls) = match vs with | [] -> () - | vs -> pp f "%a@;.@;" (list tyvar_loc ~sep:"@;") vs in + | vs -> pp f "%a@;.@;" (list (tyvar_layout_loc ~print_quote:true) ~sep:"@;") + (List.combine vs ls) + in match res with | None -> pp f "%s%a@;%a" name @@ -1752,7 +1778,7 @@ and constructor_declaration ctxt f (name, vars, args, res, attrs) = (attributes ctxt) attrs | Some r -> pp f "%s:@;%a%a@;%a" name - pp_vars vars + pp_vars (vars, layouts) (fun f -> function | Pcstr_tuple [] -> core_type1 ctxt f r | Pcstr_tuple l -> pp f "%a@;->@;%a" @@ -1767,9 +1793,9 @@ and constructor_declaration ctxt f (name, vars, args, res, attrs) = and extension_constructor ctxt f x = (* Cf: #7200 *) match x.pext_kind with - | Pext_decl(v, l, r) -> + | Pext_decl(v, l, r, layouts) -> constructor_declaration ctxt f - (x.pext_name.txt, v, l, r, x.pext_attributes) + (x.pext_name.txt, v, layouts, l, r, x.pext_attributes) | Pext_rebind li -> pp f "%s@;=@;%a%a" x.pext_name.txt longident_loc li diff --git a/ocaml/parsing/pprintast.mli b/ocaml/parsing/pprintast.mli index 42acd5f15c4..27c7580e531 100644 --- a/ocaml/parsing/pprintast.mli +++ b/ocaml/parsing/pprintast.mli @@ -53,3 +53,8 @@ val payload: Format.formatter -> Parsetree.payload -> unit val tyvar: Format.formatter -> string -> unit (** Print a type variable name, taking care of the special treatment required for the single quote character in second position. *) + +val const_layout: Format.formatter -> Asttypes.const_layout -> unit + +(* CR layouts RAE: where should this go? *) +val const_layout_to_string : Asttypes.const_layout -> string diff --git a/ocaml/parsing/printast.ml b/ocaml/parsing/printast.ml index cf6c965a008..6a181087bcf 100644 --- a/ocaml/parsing/printast.ml +++ b/ocaml/parsing/printast.ml @@ -147,8 +147,20 @@ let arg_label i ppf = function | Labelled s -> line i ppf "Labelled \"%s\"\n" s ;; -let typevars ppf vs = - List.iter (fun x -> fprintf ppf " %a" Pprintast.tyvar x.txt) vs +let var_layout ~print_quote ppf (v, l) = + let pptv ppf = + if print_quote + then Pprintast.tyvar ppf + else fun s -> fprintf ppf "\"%s\"" s + in + match l with + | None -> fprintf ppf " %a" pptv v.txt + | Some lay -> fprintf ppf " (%a : %a)" + pptv v.txt + Pprintast.const_layout lay.txt + +let typevars ppf (vs, ls) = + List.iter2 (fun v l -> var_layout ~print_quote:true ppf (v, l)) vs ls let rec core_type i ppf x = line i ppf "core_type %a\n" fmt_location x.ptyp_loc; @@ -191,8 +203,8 @@ let rec core_type i ppf x = | Ptyp_alias (ct, s) -> line i ppf "Ptyp_alias \"%s\"\n" s; core_type i ppf ct; - | Ptyp_poly (sl, ct) -> - line i ppf "Ptyp_poly%a\n" typevars sl; + | Ptyp_poly (sl, ct, lays) -> + line i ppf "Ptyp_poly%a\n" typevars (sl, lays); core_type i ppf ct; | Ptyp_package (s, l) -> line i ppf "Ptyp_package %a\n" fmt_longident_loc s; @@ -200,6 +212,10 @@ let rec core_type i ppf x = | Ptyp_extension (s, arg) -> line i ppf "Ptyp_extension \"%s\"\n" s.txt; payload i ppf arg + | Ptyp_layout (t, layout) -> + line i ppf "Ptyp_layout %a" + Pprintast.const_layout layout.txt; + core_type i ppf t and package_with i ppf (s, t) = line i ppf "with type %a\n" fmt_longident_loc s; @@ -379,8 +395,8 @@ and expression i ppf x = | Pexp_object s -> line i ppf "Pexp_object\n"; class_structure i ppf s - | Pexp_newtype (s, e) -> - line i ppf "Pexp_newtype \"%s\"\n" s.txt; + | Pexp_newtype (s, e, l) -> + line i ppf "Pexp_newtype %a\n" (var_layout ~print_quote:false) (s, l); expression i ppf e | Pexp_pack me -> line i ppf "Pexp_pack\n"; @@ -488,9 +504,9 @@ and extension_constructor i ppf x = and extension_constructor_kind i ppf x = match x with - Pext_decl(v, a, r) -> + Pext_decl(v, a, r, l) -> line i ppf "Pext_decl\n"; - if v <> [] then line (i+1) ppf "vars%a\n" typevars v; + if v <> [] then line (i+1) ppf "vars%a\n" typevars (v,l); constructor_arguments (i+1) ppf a; option (i+1) core_type ppf r; | Pext_rebind li -> @@ -888,10 +904,11 @@ and core_type_x_core_type_x_location i ppf (ct1, ct2, l) = core_type (i+1) ppf ct2; and constructor_decl i ppf - {pcd_name; pcd_vars; pcd_args; pcd_res; pcd_loc; pcd_attributes} = + {pcd_name; pcd_vars; pcd_layouts; pcd_args; pcd_res; pcd_loc; pcd_attributes} = line i ppf "%a\n" fmt_location pcd_loc; line (i+1) ppf "%a\n" fmt_string_loc pcd_name; - if pcd_vars <> [] then line (i+1) ppf "pcd_vars =%a\n" typevars pcd_vars; + if pcd_vars <> [] then line (i+1) ppf "pcd_vars =%a\n" + typevars (pcd_vars, pcd_layouts); attributes i ppf pcd_attributes; constructor_arguments (i+1) ppf pcd_args; option (i+1) core_type ppf pcd_res diff --git a/ocaml/testsuite/tests/letrec-check/unboxed.ml b/ocaml/testsuite/tests/letrec-check/unboxed.ml index d98f9f87f49..b1b86167e0d 100644 --- a/ocaml/testsuite/tests/letrec-check/unboxed.ml +++ b/ocaml/testsuite/tests/letrec-check/unboxed.ml @@ -23,7 +23,7 @@ Error: This kind of expression is not allowed as right-hand side of `let rec' type r = A of r [@@unboxed] [@@value] let rec y = A y;; [%%expect{| -type r = A of r [@@value] [@@unboxed] +type r : value = A of r [@@unboxed] Line 2, characters 12-15: 2 | let rec y = A y;; ^^^ diff --git a/ocaml/testsuite/tests/parsetree/locations_test.compilers.reference b/ocaml/testsuite/tests/parsetree/locations_test.compilers.reference index 054a7db232f..14ed53562ab 100644 --- a/ocaml/testsuite/tests/parsetree/locations_test.compilers.reference +++ b/ocaml/testsuite/tests/parsetree/locations_test.compilers.reference @@ -262,7 +262,7 @@ Ptop_def core_type (//toplevel//[2,1+21]..[2,1+22]) Ptyp_var a expression (//toplevel//[2,1+4]..[2,1+35]) - Pexp_newtype "a" + Pexp_newtype "a" expression (//toplevel//[2,1+4]..[2,1+35]) Pexp_constraint expression (//toplevel//[2,1+25]..[2,1+35]) @@ -307,7 +307,7 @@ Ptop_def expression (//toplevel//[3,16+18]..[4,46+14]) ghost Pexp_poly expression (//toplevel//[3,16+9]..[4,46+14]) - Pexp_newtype "a" + Pexp_newtype "a" expression (//toplevel//[3,16+9]..[4,46+14]) Pexp_constraint expression (//toplevel//[4,46+4]..[4,46+14]) diff --git a/ocaml/testsuite/tests/typing-immediate/immediate.ml b/ocaml/testsuite/tests/typing-immediate/immediate.ml index 47dcbb2b1cf..fe942adcba4 100644 --- a/ocaml/testsuite/tests/typing-immediate/immediate.ml +++ b/ocaml/testsuite/tests/typing-immediate/immediate.ml @@ -5,7 +5,7 @@ module type S = sig type t [@@immediate] end;; module F (M : S) : S = M;; [%%expect{| -module type S = sig type t [@@immediate] end +module type S = sig type t : immediate end module F : functor (M : S) -> S |}];; @@ -37,14 +37,14 @@ end;; [%%expect{| module A : sig - type t [@@immediate] - type s = t [@@immediate] + type t : immediate + type s = t type r = s - type p = q [@@immediate] + type p = q and q = int - type o = Foo | Bar | Baz [@@immediate] - type m = int [@@immediate64] - type n = m [@@immediate] + type o = Foo | Bar | Baz + type m = int + type n = m end |}];; @@ -55,7 +55,7 @@ module Z = ((Y : X with type t = int) : sig type t [@@immediate] end);; [%%expect{| module type X = sig type t end module Y : sig type t = int end -module Z : sig type t [@@immediate] end +module Z : sig type t : immediate end |}];; (* Valid using an explicit signature *) @@ -82,8 +82,8 @@ end;; [%%expect{| module Unboxed_valid : sig - type t = { x : int; } [@@immediate] [@@unboxed] - type u = { x : s; } [@@immediate] [@@unboxed] + type t : immediate = { x : int; } [@@unboxed] + type u : immediate = { x : s; } [@@unboxed] and s = int end |}];; @@ -102,7 +102,7 @@ module Bar : sig type t [@@immediate] val x : t ref end = struct let x = ref 0 end;; [%%expect{| -module Bar : sig type t [@@immediate] val x : t ref end +module Bar : sig type t : immediate val x : t ref end |}];; let test f = @@ -193,11 +193,11 @@ Error: Signature mismatch: Modules do not match: sig type t = string end is not included in - sig type t [@@immediate] end + sig type t : immediate end Type declarations do not match: type t = string is not included in - type t [@@immediate] + type t : immediate the first has layout value, which is not a sublayout of immediate. |}];; @@ -213,7 +213,7 @@ Error: Signature mismatch: Type declarations do not match: type t = string is not included in - type t [@@immediate] + type t : immediate the first has layout value, which is not a sublayout of immediate. |}];; @@ -235,7 +235,7 @@ type 'a id = 'a type s = int id [@@immediate] [%%expect{| type 'a id = 'a -type s = int id [@@immediate] +type s = int id |}];; module F (X : sig type t end) = X module I = struct type t = int end @@ -243,7 +243,7 @@ type t = F(I).t [@@immediate] [%%expect{| module F : functor (X : sig type t end) -> sig type t = X.t end module I : sig type t = int end -type t = F(I).t [@@immediate] +type t = F(I).t |}];; module F (X : sig type t end) = X module I : sig type t = private int end = struct type t = int end @@ -251,7 +251,7 @@ type t = F(I).t [@@immediate] [%%expect{| module F : functor (X : sig type t end) -> sig type t = X.t end module I : sig type t = private int end -type t = F(I).t [@@immediate] +type t = F(I).t |}];; module type T = sig type t type s = t end module F (X : T with type t = int) = struct @@ -260,8 +260,7 @@ end [%%expect{| module type T = sig type t type s = t end module F : - functor (X : sig type t = int type s = t end) -> - sig type t = X.s [@@immediate] end + functor (X : sig type t = int type s = t end) -> sig type t = X.s end |}];; module type T = sig type t type s = t end module F (X : T with type t = private int) = struct @@ -271,10 +270,10 @@ end module type T = sig type t type s = t end module F : functor (X : sig type t = private int type s = t end) -> - sig type t = X.s [@@immediate] end + sig type t = X.s end |}];; type t = int s [@@immediate] and 'a s = 'a [%%expect{| -type t = int s [@@immediate] +type t = int s and 'a s = 'a |}];; diff --git a/ocaml/testsuite/tests/typing-layouts-missing-cmi/c.ml b/ocaml/testsuite/tests/typing-layouts-missing-cmi/c.ml index 789af7cba7d..b22913c34cb 100644 --- a/ocaml/testsuite/tests/typing-layouts-missing-cmi/c.ml +++ b/ocaml/testsuite/tests/typing-layouts-missing-cmi/c.ml @@ -20,9 +20,9 @@ script = "rm -f a.cmi" open B -type 'a [@immediate] imm_arg -type 'b [@value] value_arg -(* type 'c [@void] void_arg *) +type ('a : immediate) imm_arg +type ('b : value) value_arg +(* type ('c : @void) void_arg *) (* These should work *) type foo = b_imm imm_arg diff --git a/ocaml/testsuite/tests/typing-layouts/annots-failing.ml b/ocaml/testsuite/tests/typing-layouts/annots-failing.ml new file mode 100644 index 00000000000..a6354220f0f --- /dev/null +++ b/ocaml/testsuite/tests/typing-layouts/annots-failing.ml @@ -0,0 +1,51 @@ +(* TEST + * expect +*) + +(* XXX layouts: merge this with annots.ml after these all pass *) + +class c : object + val f : 'a -> 'a +end = object + val f = fun (x : ('a : immediate)) -> x +end +;; +[%%expect {| +fail +|}] + +type ('a : immediate) t2_imm + +type s = { f : ('a : value) . 'a -> 'a u } +and 'a u = 'a t2_imm + +[%%expect {| +fail +|}] + +class c : object + method m : ('a : immediate). 'a -> 'a + val f : ('a : immediate) -> 'a +end = object + method m : type (a : immediate). a -> a = fun x -> x + val f = fun (x : ('a : immediate)) -> x +end + +[%%expect {| +class c : object method m : 'a -> 'a end BAD +|}] + +type _ g = | MkG : ('a : immediate) ('b : void). 'a -> 'b g + +type ('a : void) t3 = .. +type _ t3 += MkG : ('a : immediate) 'b. 'a -> 'b t3 + +[%%expect {| +success (I think) +|}] + +let f_gadt : ('a : value). 'a -> 'a g -> 'a = fun x MkG -> f_imm x + +[%%expect {| +success +|}] diff --git a/ocaml/testsuite/tests/typing-layouts/annots.ml b/ocaml/testsuite/tests/typing-layouts/annots.ml new file mode 100644 index 00000000000..92cfe117a29 --- /dev/null +++ b/ocaml/testsuite/tests/typing-layouts/annots.ml @@ -0,0 +1,357 @@ +(* TEST + * expect +*) + + +type t_value : value +type t_imm : immediate +type t_imm64 : immediate64 +;; +[%%expect{| +type t_value : value +type t_imm : immediate +type t_imm64 : immediate64 +|}];; + +type t_any : any;; + +[%%expect{| +failure +|}] + +type t_void : void + +[%%expect{| +failure +|}] + +(***************************************) +(* Test 1: annotation on type variable *) + +let x : (int : value) = 5 +let x : (int : immediate) = 5 +;; +[%%expect {| +val x : int = 5 +val x : int = 5 +|}] + +let x : (int : any) = 5;; + +[%%expect{| +extension +|}] +(* CR layouts: fix when [any] becomes available in [layouts] *) + +let x : ((int : immediate) list : value) = [3;4;5] +;; +[%%expect {| +val x : int list = [3; 4; 5] +|}] + +let x : (int list : immediate) = [3;4;5] +;; +[%%expect {| +Line 1, characters 8-30: +1 | let x : (int list : immediate) = [3;4;5] + ^^^^^^^^^^^^^^^^^^^^^^ +Error: Bad layout annotation: + int list has layout value, which is not a sublayout of immediate. +|}] + +(****************************************) +(* Test 2: Annotation on type parameter *) + +type ('a : immediate) t2_imm +type t = int t2_imm +type t = bool t2_imm +;; +[%%expect {| +type ('a : immediate) t2_imm +type t = int t2_imm +type t = bool t2_imm +|}] + +type t = string t2_imm +;; +[%%expect {| +Line 1, characters 9-15: +1 | type t = string t2_imm + ^^^^^^ +Error: This type string should be an instance of type 'a + string has layout value, which is not a sublayout of immediate. +|}] + +let f : 'a t2_imm -> 'a t2_imm = fun x -> x +;; +[%%expect {| +val f : ('a : immediate). 'a t2_imm -> 'a t2_imm = +|}] + +let f : ('a : immediate) t2_imm -> ('a : value) t2_imm = fun x -> x +;; +[%%expect {| +val f : ('a : immediate). 'a t2_imm -> 'a t2_imm = +|}] + +let f : ('a : value) t2_imm -> ('a : value) t2_imm = fun x -> x +;; +[%%expect {| +val f : ('a : immediate). 'a t2_imm -> 'a t2_imm = +|}] + +let f : ('a : immediate). 'a t2_imm -> 'a t2_imm = fun x -> x +;; +[%%expect {| +val f : ('a : immediate). 'a t2_imm -> 'a t2_imm = +|}] + +let f : ('a : value). 'a t2_imm -> 'a t2_imm = fun x -> x +;; +[%%expect {| +Line 1, characters 8-44: +1 | let f : ('a : value). 'a t2_imm -> 'a t2_imm = fun x -> x + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: The universal type variable 'a was declared to have + layout value, but was inferred to have layout immediate. +|}] + +type 'a t = 'a t2_imm +;; +[%%expect {| +type ('a : immediate) t = 'a t2_imm +|}] + +type ('a : value) t = 'a t2_imm +;; +[%%expect {| +type ('a : immediate) t = 'a t2_imm +|}] + +type ('a : immediate) t = 'a t2_imm +;; +[%%expect {| +type ('a : immediate) t = 'a t2_imm +|}] + +(********************************************) +(* Test 3: Annotation on types in functions *) + +let f : ('a : any) -> 'a = fun x -> x +;; +[%%expect {| +extension +|}] + +let f : ('a : any). 'a -> 'a = fun x -> x +;; +[%%expect {| +extension +|}] +(* CR layouts: fix when [any] becomes available in [layouts] *) + +(********************************************) +(* Test 4: Annotation on record field types *) + +type r = { field : ('a : immediate). 'a -> 'a } + +[%%expect{| +extension +|}] +(* CR layouts: fix when we allow annotations on field types in [layouts] *) + +(********************) +(* Test 5: newtypes *) + +let f = fun (type (a : value)) (x : a) -> x +;; +[%%expect {| +extension +|}] + +let f = fun (type (a : immediate)) (x : a) -> x +;; +[%%expect {| +extension +|}] + +let f = fun (type (a : any)) (x : a) -> x +;; +[%%expect {| +extension +|}] +(* CR layouts: fix when we allow annotations on newtypes in [layouts] *) + +(****************************************) +(* Test 6: abstract universal variables *) + +let f : type (a : value). a -> a = fun x -> x +;; +[%%expect {| +extension +|}] + +let f : type (a : immediate). a -> a = fun x -> x +;; +[%%expect {| +extension +|}] + +let f : type (a : any). a -> a = fun x -> x +;; +[%%expect {| +extension +|}] +(* CR layouts: fix when we allow annotations on newtypes in [layouts] *) + +(**************************************************) +(* Test 7: Defaulting universal variable to value *) + +module type S = sig + val f : 'a. 'a t2_imm -> 'a t2_imm +end +;; +[%%expect {| +Line 2, characters 10-36: +2 | val f : 'a. 'a t2_imm -> 'a t2_imm + ^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: The universal type variable 'a was defaulted to have + layout value, but was inferred to have layout immediate. +|}] + +(********************************************) +(* Test 8: Annotation on universal variable *) + +module type S = sig + val f : ('a : value). 'a t2_imm -> 'a t2_imm +end +;; +[%%expect {| +extension +|}] +(* CR layouts: fix when we allow annotations on universals in [layouts] *) + +module type S = sig + val f : 'a t2_imm -> 'a t2_imm + val g : ('a : immediate). 'a t2_imm -> 'a t2_imm +end +;; +[%%expect {| +extension +|}] +(* CR layouts: fix when we allow annotations on universals in [layouts] *) + +(************************************************************) +(* Test 9: Annotation on universal in polymorphic parameter *) + +let f (x : ('a : immediate). 'a -> 'a) = x "string" + +[%%expect {| +extension +|}] +(* CR layouts: fix when we allow annotations on universals in [layouts] *) + +(**************************************) +(* Test 10: Parsing & pretty-printing *) + +let f (type a : immediate) (x : a) = x + +[%%expect{| +extension +|}] + +let f = fun (type a : immediate) (x : a) -> x + +[%%expect{| +extension +|}] + +let f = fun (type a : value) (x : a) -> x + +[%%expect{| +extension +|}] + +let o = object + method m : type (a : immediate). a -> a = fun x -> x +end + +[%%expect{| +extension +|}] + +let f : type (a : immediate). a -> a = fun x -> x + +[%%expect{| +extension +|}] + +let f x = + let local_ g (type a : immediate) (x : a) = x in + g x [@nontail] + +[%%expect{| +extension +|}] + +let f = fun x y (type (a : immediate)) (z : a) -> z + +[%%expect{| +extension +|}] + +let f = fun x y (type a : immediate) (z : a) -> z + +[%%expect{| +extension +|}] + +external f : ('a : immediate). 'a -> 'a = "%identity" + +[%%expect{| +extension +|}] + +type (_ : any) t2_any + +[%%expect{| +extension +|}] + +exception E : ('a : immediate) ('b : any). 'b t2_any * 'a list -> exn + +[%%expect{| +extension +|}] + +let f (x : ('a : immediate). 'a -> 'a) = x 3, x true + +[%%expect {| +extension +|}] + +type _ a = Mk : [> ] * ('a : immediate) -> int a + +[%%expect {| +extension +|}] + +let f_imm : ('a : immediate). 'a -> 'a = fun x -> x + +[%%expect {| +extension +|}] + +let f_val : ('a : value). 'a -> 'a = fun x -> f_imm x + +[%%expect {| +extension +|}] + +type (_ : value) g = + | MkG : ('a : immediate). 'a g + +[%%expect {| +extension +|}] + diff --git a/ocaml/testsuite/tests/typing-layouts/annots_beta.ml b/ocaml/testsuite/tests/typing-layouts/annots_beta.ml new file mode 100644 index 00000000000..de985fa0220 --- /dev/null +++ b/ocaml/testsuite/tests/typing-layouts/annots_beta.ml @@ -0,0 +1,301 @@ +(* TEST + flags = "-extension layouts_beta" + * expect +*) + +type t_value : value +type t_imm : immediate +type t_imm64 : immediate64 +type t_any : any;; + +[%%expect{| +success +|}] + +type t_void : void;; + +[%%expect{| +failure +|}] + +(***************************************) +(* Test 1: annotation on type variable *) + +let x : (int : value) = 5 +let x : (int : immediate) = 5 +let x : (int : any) = 5;; + +[%%expect{| +success +|}] + +(****************************************) +(* Test 2: Annotation on type parameter *) + +(********************************************) +(* Test 3: Annotation on types in functions *) + +let f : ('a : any) -> 'a = fun x -> x +;; +[%%expect {| +val f : 'a -> 'a = +|}] + +let f : ('a : any). 'a -> 'a = fun x -> x +;; +[%%expect {| +Line 1, characters 8-28: +1 | let f : ('a : any). 'a -> 'a = fun x -> x + ^^^^^^^^^^^^^^^^^^^^ +Error: The universal type variable 'a was declared to have + layout any, but was inferred to have layout value. +|}] +(* CR layouts (v2.5): This error message should change to complain + about the [fun x], not the arrow type. *) + +(********************************************) +(* Test 4: Annotation on record field types *) + +type r = { field : ('a : immediate). 'a -> 'a } +let f { field } = field 5 +;; +[%%expect {| +type r = { field : ('a : immediate). 'a -> 'a; } +val f : r -> int = +|}] + +let f { field } = field "hello" +;; +[%%expect {| +Line 1, characters 24-31: +1 | let f { field } = field "hello" + ^^^^^^^ +Error: This expression has type string but an expression was expected of type + 'a + string has layout value, which is not a sublayout of immediate. +|}] + +let r = { field = fun x -> x } +let r = { field = Fun.id } +;; +[%%expect {| +val r : r = {field = } +val r : r = {field = } +|}] + +let r = { field = fun (type (a : immediate)) (x : a) -> x } +;; +[%%expect {| +val r : r = {field = } +|}] + +let r = { field = fun (type (a : value)) (x : a) -> x } +;; +[%%expect {| +val r : r = {field = } +|}] + +(********************) +(* Test 5: newtypes *) + +let f = fun (type (a : value)) (x : a) -> x +;; +[%%expect {| +val f : 'a -> 'a = +|}] + +let f = fun (type (a : immediate)) (x : a) -> x +;; +[%%expect {| +val f : ('a : immediate). 'a -> 'a = +|}] + +let f = fun (type (a : any)) (x : a) -> x +;; +[%%expect {| +Line 1, characters 29-36: +1 | let f = fun (type (a : any)) (x : a) -> x + ^^^^^^^ +Error: This pattern matches values of type a + but a pattern was expected which matches values of type 'a + a has layout any, which is not a sublayout of value. +|}] + +(****************************************) +(* Test 6: abstract universal variables *) + +let f : type (a : value). a -> a = fun x -> x +;; +[%%expect {| +val f : 'a -> 'a = +|}] + +let f : type (a : immediate). a -> a = fun x -> x +;; +[%%expect {| +val f : ('a : immediate). 'a -> 'a = +|}] + +let f : type (a : any). a -> a = fun x -> x +;; +[%%expect {| +Line 1, characters 4-43: +1 | let f : type (a : any). a -> a = fun x -> x + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: The universal type variable 'a was declared to have + layout any, but was inferred to have layout value. +|}] +(* CR layouts v2.5: This error message will change to complain + about the fun x, not the arrow type. *) + +(**************************************************) +(* Test 7: Defaulting universal variable to value *) + +(********************************************) +(* Test 8: Annotation on universal variable *) + +module type S = sig + val f : ('a : value). 'a t2_imm -> 'a t2_imm +end +;; +[%%expect {| +Line 2, characters 10-46: +2 | val f : ('a : value). 'a t2_imm -> 'a t2_imm + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: The universal type variable 'a was declared to have + layout value, but was inferred to have layout immediate. +|}] + +module type S = sig + val f : 'a t2_imm -> 'a t2_imm + val g : ('a : immediate). 'a t2_imm -> 'a t2_imm +end +;; +[%%expect {| +module type S = + sig + val f : ('a : immediate). 'a t2_imm -> 'a t2_imm + val g : ('a : immediate). 'a t2_imm -> 'a t2_imm + end +|}] + +(************************************************************) +(* Test 9: Annotation on universal in polymorphic parameter *) + +let f (x : ('a : immediate). 'a -> 'a) = x "string" + +[%%expect {| +Line 1, characters 43-51: +1 | let f (x : ('a : immediate). 'a -> 'a) = x "string" + ^^^^^^^^ +Error: This expression has type string but an expression was expected of type + 'a + string has layout value, which is not a sublayout of immediate. +|}] + +(**************************************) +(* Test 10: Parsing & pretty-printing *) + +let f (type a : immediate) (x : a) = x + +[%%expect{| +val f : ('a : immediate). 'a -> 'a = +|}] + +let f = fun (type a : immediate) (x : a) -> x + +[%%expect{| +val f : ('a : immediate). 'a -> 'a = +|}] + +let f = fun (type a : value) (x : a) -> x + +[%%expect{| +val f : 'a -> 'a = +|}] + +let o = object + method m : type (a : immediate). a -> a = fun x -> x +end + +[%%expect{| +val o : < m : ('a : immediate). 'a -> 'a > = +|}] + +let f : type (a : immediate). a -> a = fun x -> x + +[%%expect{| +val f : ('a : immediate). 'a -> 'a = +|}] + +let f x = + let local_ g (type a : immediate) (x : a) = x in + g x [@nontail] + +[%%expect{| +val f : ('a : immediate). 'a -> 'a = +|}] + +let f = fun x y (type (a : immediate)) (z : a) -> z + +[%%expect{| +val f : ('a : immediate) 'c 'b. 'b -> 'c -> 'a -> 'a = +|}] + +let f = fun x y (type a : immediate) (z : a) -> z + +[%%expect{| +val f : ('a : immediate) 'c 'b. 'b -> 'c -> 'a -> 'a = +|}] + +external f : ('a : immediate). 'a -> 'a = "%identity" + +[%%expect{| +external f : ('a : immediate). 'a -> 'a = "%identity" +|}] + + +type (_ : any) t2_any +exception E : ('a : immediate) ('b : any). 'b t2_any * 'a list -> exn + +[%%expect{| +type (_ : any) t2_any +exception E : ('a : immediate) ('b : any). 'b t2_any * 'a list -> exn +|}] + + +let f (x : ('a : immediate). 'a -> 'a) = x 3, x true + +[%%expect{| +val f : (('a : immediate). 'a -> 'a) -> int * bool = +|}] + +type _ a = Mk : [> ] * ('a : immediate) -> int a + +[%%expect {| +type _ a = Mk : ('a : immediate). [> ] * 'a -> int a +|}] + +let f_imm : ('a : immediate). 'a -> 'a = fun x -> x + +[%%expect {| +val f_imm : ('a : immediate). 'a -> 'a = +|}] + +let f_val : ('a : value). 'a -> 'a = fun x -> f_imm x + +[%%expect {| +Line 1, characters 37-53: +1 | let f_val : ('a : value). 'a -> 'a = fun x -> f_imm x + ^^^^^^^^^^^^^^^^ +Error: This definition has type 'b -> 'b which is less general than + 'a. 'a -> 'a + 'a has layout value, which is not a sublayout of immediate. +|}] + +type (_ : value) g = + | MkG : ('a : immediate). 'a g + +[%%expect {| +type _ g = MkG : ('a : immediate). 'a g +|}] diff --git a/ocaml/testsuite/tests/typing-layouts/basics-failing.ml b/ocaml/testsuite/tests/typing-layouts/basics-failing.ml new file mode 100644 index 00000000000..b88bfc67273 --- /dev/null +++ b/ocaml/testsuite/tests/typing-layouts/basics-failing.ml @@ -0,0 +1,17 @@ +(* TEST + * expect +*) + +(* XXX layouts: merge with basics.ml once this passes *) + +(* Test 16: Inferred a value layout for a recursive unboxed type *) + +(* XXX layouts: if we decide *not* to infer a value layout for these, + update the pretty-printer to always print a user-written layout for + an unboxed type *) +type loopy = MkL of loopy [@@unboxed] +type loopy2 = { f : loopy2 } [@@unboxed] + +[%%expect{| +success with value layouts +|}] diff --git a/ocaml/testsuite/tests/typing-layouts/basics.ml b/ocaml/testsuite/tests/typing-layouts/basics.ml index 8d0a97797e6..e9a0bc92c77 100644 --- a/ocaml/testsuite/tests/typing-layouts/basics.ml +++ b/ocaml/testsuite/tests/typing-layouts/basics.ml @@ -1,29 +1,29 @@ (* TEST * expect *) -type t_value [@@value] -type t_imm [@@immediate] -type t_imm64 [@@immediate64];; +type t_value : value +type t_imm : immediate +type t_imm64 : immediate64;; [%%expect{| -type t_value [@@value] -type t_imm [@@immediate] -type t_imm64 [@@immediate64] +type t_value : value +type t_imm : immediate +type t_imm64 : immediate64 |}] -type t_any [@@any];; +type t_any : any;; [%%expect{| -Line 1, characters 13-20: -1 | type t_any [@@any];; - ^^^^^^^ +Line 1, characters 15-18: +1 | type t_any : any;; + ^^^ Error: Layout any is used here, but the appropriate layouts extension is not enabled |}];; -type t_void [@@void];; +type t_void : void;; [%%expect{| -Line 1, characters 13-21: -1 | type t_void [@@void];; - ^^^^^^^^ +Line 1, characters 15-19: +1 | type t_void : void;; + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}];; @@ -50,11 +50,11 @@ module type S = sig val f1 : t_value -> t_value val f2 : t_imm -> t_imm64 end (* CR layouts: mostly moved to [basics_beta.ml]. Bring back here when we allow annotations on parameters by default. *) -type 'a [@immediate] imm_id = 'a;; +type ('a : immediate) imm_id = 'a;; [%%expect{| -Line 1, characters 8-20: -1 | type 'a [@immediate] imm_id = 'a;; - ^^^^^^^^^^^^ +Line 1, characters 11-20: +1 | type ('a : immediate) imm_id = 'a;; + ^^^^^^^^^ Error: Layout immediate is used here, but the appropriate layouts extension is not enabled |}];; @@ -175,11 +175,11 @@ and foo14 = string (* CR layouts: This test moved to [basics_alpha.ml] as it needs a non-value sort. Bring back here when we have one enabled by default. *) -type 'a t_void_16 [@@void];; +type 'a t_void_16 : void;; [%%expect{| -Line 1, characters 18-26: -1 | type 'a t_void_16 [@@void];; - ^^^^^^^^ +Line 1, characters 20-24: +1 | type 'a t_void_16 : void;; + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}];; @@ -236,11 +236,11 @@ val f18 : 'a -> 'a = (* CR layouts: This test moved to [basics_alpha.ml] as it needs a non-value sort. Bring back here when we have one enabled by default. *) -type t_void [@@void];; +type t_void : void;; [%%expect{| -Line 1, characters 12-20: -1 | type t_void [@@void];; - ^^^^^^^^ +Line 1, characters 14-18: +1 | type t_void : void;; + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}];; diff --git a/ocaml/testsuite/tests/typing-layouts/basics_alpha.ml b/ocaml/testsuite/tests/typing-layouts/basics_alpha.ml index 43e5d3a07d4..640879db2bd 100644 --- a/ocaml/testsuite/tests/typing-layouts/basics_alpha.ml +++ b/ocaml/testsuite/tests/typing-layouts/basics_alpha.ml @@ -3,22 +3,22 @@ * expect *) -type t_any [@@any] -type t_value [@@value] -type t_imm [@@immediate] -type t_imm64 [@@immediate64] -type t_void [@@void] +type t_any : any +type t_value : value +type t_imm : immediate +type t_imm64 : immediate64 +type t_void : void type void_variant = VV of t_void type void_record = {vr_void : t_void; vr_int : int} type void_unboxed_record = { vur_void : t_void } [@@unboxed];; [%%expect{| -type t_any [@@any] -type t_value [@@value] -type t_imm [@@immediate] -type t_imm64 [@@immediate64] -type t_void [@@void] +type t_any : any +type t_value : value +type t_imm : immediate +type t_imm64 : immediate64 +type t_void : void type void_variant = VV of t_void type void_record = { vr_void : t_void; vr_int : int; } type void_unboxed_record = { vur_void : t_void; } [@@unboxed] @@ -101,7 +101,7 @@ Error: Function return types must have layout value. |}];; module type S = sig - type t [@@void] + type t : void type s = r -> int and r = t @@ -115,7 +115,7 @@ Error: |}] module type S = sig - type t [@@void] + type t : void type 'a s = 'a -> int constraint 'a = t end;; @@ -141,7 +141,7 @@ module type S = sig val f1 : t_value -> t_value val f2 : t_imm -> t_imm64 end (**************************************) (* Test 3: basic annotated parameters *) -type 'a [@immediate] imm_id = 'a +type ('a : immediate) imm_id = 'a [%%expect{| type ('a : immediate) imm_id = 'a @@ -171,7 +171,7 @@ let id_for_imms (x : 'a imm_id) = x let three = id_for_imms 3 let true_ = id_for_imms true;; [%%expect{| -val id_for_imms : 'a imm_id -> 'a imm_id = +val id_for_imms : ('a : immediate). 'a imm_id -> 'a imm_id = val three : int imm_id = 3 val true_ : bool imm_id = true |}] @@ -188,7 +188,7 @@ Error: This expression has type string but an expression was expected of type (************************************) (* Test 4: parameters and recursion *) -type 'a [@immediate] t4 +type ('a : immediate) t4 and s4 = string t4;; [%%expect{| @@ -200,7 +200,7 @@ Error: This type string should be an instance of type ('a : immediate) |}];; type s4 = string t4 -and 'a [@immediate] t4;; +and ('a : immediate) t4;; [%%expect{| Line 1, characters 10-16: @@ -211,7 +211,7 @@ Error: This type string should be an instance of type ('a : immediate) |}] type s4 = int t4 -and 'a [@immediate] t4;; +and ('a : immediate) t4;; [%%expect{| type s4 = int t4 @@ -219,7 +219,7 @@ and ('a : immediate) t4 |}] type s4 = s5 t4 -and 'a [@immediate] t4 +and ('a : immediate) t4 and s5 = int;; [%%expect{| @@ -229,7 +229,7 @@ and s5 = int |}] type s4 = s5 t4 -and 'a [@immediate] t4 +and ('a : immediate) t4 and s5 = string;; [%%expect{| @@ -241,7 +241,7 @@ Error: |}] (* CR layouts v2: improve error, which will require layout histories *) -type 'a [@any] t4 = 'a +type ('a : any) t4 = 'a and s4 = string t4;; [%%expect{| type ('a : any) t4 = 'a @@ -249,7 +249,7 @@ and s4 = string t4 |}];; type s4 = string t4 -and 'a [@any] t4;; +and ('a : any) t4;; [%%expect{| type s4 = string t4 and ('a : any) t4 @@ -261,8 +261,8 @@ and ('a : any) t4 (* CR layouts v5: these tests should be updated to allow returning void, and moved to [basics_beta.ml]. *) -type 'a [@void] void5 = Void5 of 'a -type 'a [@any] any5 = Any5 of 'a +type ('a : void) void5 = Void5 of 'a +type ('a : any) any5 = Any5 of 'a let id5 : 'a void5 -> 'a void5 = function | Void5 x -> Void5 x @@ -379,7 +379,7 @@ Error: This method has type 'b -> unit which is less general than (*****************************************) (* Test 7: the layout check in unify_var *) -type 'a [@immediate] t7 = Foo7 of 'a +type ('a : immediate) t7 = Foo7 of 'a type t7' = (int * int) t7;; [%%expect{| @@ -606,10 +606,17 @@ Lines 3-9, characters 6-3: 9 | end.. Error: Signature mismatch: Modules do not match: - sig type ('a : immediate) t = 'a val f : 'a t -> 'a val x : 'a end + sig + type ('a : immediate) t = 'a + val f : ('a : immediate). 'a t -> 'a + val x : ('a : immediate). 'a + end is not included in sig val x : string end - Values do not match: val x : 'a is not included in val x : string + Values do not match: + val x : ('a : immediate). 'a + is not included in + val x : string The type string is not compatible with the type string string has layout value, which is not a sublayout of immediate. |}];; @@ -638,12 +645,15 @@ Error: Signature mismatch: Modules do not match: sig type ('a : immediate) t = 'a - val f : 'a t -> 'a t - val x : 'a t + val f : ('a : immediate). 'a t -> 'a t + val x : ('a : immediate). 'a t end is not included in sig val x : string end - Values do not match: val x : 'a t is not included in val x : string + Values do not match: + val x : ('a : immediate). 'a t + is not included in + val x : string The type string t = string is not compatible with the type string string has layout value, which is not a sublayout of immediate. |}] @@ -1006,11 +1016,11 @@ type ('a : void, 'b) foo15 = 'a t15 -> 'a t15 constraint 'b = 'a (********************************************************) (* Test 16: seperability: [msig_of_external_type] logic *) -type 'a t_void_16 [@@void] +type 'a t_void_16 : void type t_16 = T_16 : 'a t_void_16 -> t_16 [@@unboxed];; [%%expect{| -type 'a t_void_16 [@@void] +type 'a t_void_16 : void type t_16 = T_16 : 'a t_void_16 -> t_16 [@@unboxed] |}];; @@ -1099,15 +1109,15 @@ Error: Non-value detected in translation: (***************************************************************) (* Test 22: approx_type catch-all can't be restricted to value *) -type t_void [@@void] +type t_void : void -type ('a [@void]) r = { x : int; y : 'a } +type ('a : void) r = { x : int; y : 'a } let f () = let rec g { x = x ; y = y } : _ r = g { x; y } in g (failwith "foo");; [%%expect{| -type t_void [@@void] +type t_void : void type ('a : void) r = { x : int; y : 'a; } Lines 5-7, characters 6-20: 5 | ......() = @@ -1121,14 +1131,14 @@ Error: Non-value detected in [value_kind]. (********************************************************************) (* Test 23: checking the error message from impossible GADT matches *) -type (_ [@any], _ [@any]) eq = Refl : ('a, 'a) eq +type (_ : any, _ : any) eq = Refl : ('a, 'a) eq module M : sig - type t_void [@@void] - type t_imm [@@immediate] + type t_void : void + type t_imm : immediate end = struct - type t_void [@@void] - type t_imm [@@immediate] + type t_void : void + type t_imm : immediate end (* these are abstract, so the only trouble with unifying them in a GADT match is around their layouts *) @@ -1138,8 +1148,8 @@ let f (x : (M.t_void, M.t_imm) eq) = | Refl -> () [%%expect{| -type (_ : any, _ : any) eq = Refl : ('a, 'a) eq -module M : sig type t_void [@@void] type t_imm [@@immediate] end +type (_ : any, _ : any) eq = Refl : ('a : any). ('a, 'a) eq +module M : sig type t_void : void type t_imm : immediate end Line 15, characters 4-8: 15 | | Refl -> () ^^^^ diff --git a/ocaml/testsuite/tests/typing-layouts/basics_beta.ml b/ocaml/testsuite/tests/typing-layouts/basics_beta.ml index 44e40b5f4d6..f7f04cf9c36 100644 --- a/ocaml/testsuite/tests/typing-layouts/basics_beta.ml +++ b/ocaml/testsuite/tests/typing-layouts/basics_beta.ml @@ -3,29 +3,29 @@ * expect *) -type t_value [@@value] -type t_imm [@@immediate] -type t_imm64 [@@immediate64];; +type t_value : value +type t_imm : immediate +type t_imm64 : immediate64;; [%%expect{| -type t_value [@@value] -type t_imm [@@immediate] -type t_imm64 [@@immediate64] +type t_value : value +type t_imm : immediate +type t_imm64 : immediate64 |}] -type t_any [@@any];; +type t_any : any;; [%%expect{| -Line 1, characters 13-20: -1 | type t_any [@@any];; - ^^^^^^^ +Line 1, characters 15-18: +1 | type t_any : any;; + ^^^ Error: Layout any is used here, but the appropriate layouts extension is not enabled |}];; -type t_void [@@void];; +type t_void : void;; [%%expect{| -Line 1, characters 13-21: -1 | type t_void [@@void];; - ^^^^^^^^ +Line 1, characters 15-19: +1 | type t_void : void;; + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}];; @@ -48,7 +48,7 @@ module type S = sig val f1 : t_value -> t_value val f2 : t_imm -> t_imm64 end (**************************************) (* Test 3: basic annotated parameters *) -type 'a [@immediate] imm_id = 'a +type ('a : immediate) imm_id = 'a [%%expect{| type ('a : immediate) imm_id = 'a @@ -78,7 +78,7 @@ let id_for_imms (x : 'a imm_id) = x let three = id_for_imms 3 let true_ = id_for_imms true;; [%%expect{| -val id_for_imms : 'a imm_id -> 'a imm_id = +val id_for_imms : ('a : immediate). 'a imm_id -> 'a imm_id = val three : int imm_id = 3 val true_ : bool imm_id = true |}] @@ -95,7 +95,7 @@ Error: This expression has type string but an expression was expected of type (************************************) (* Test 4: parameters and recursion *) -type 'a [@immediate] t4 +type ('a : immediate) t4 and s4 = string t4;; [%%expect{| @@ -107,7 +107,7 @@ Error: This type string should be an instance of type ('a : immediate) |}];; type s4 = string t4 -and 'a [@immediate] t4;; +and ('a : immediate) t4;; [%%expect{| Line 1, characters 10-16: @@ -118,7 +118,7 @@ Error: This type string should be an instance of type ('a : immediate) |}] type s4 = int t4 -and 'a [@immediate] t4;; +and ('a : immediate) t4;; [%%expect{| type s4 = int t4 @@ -126,7 +126,7 @@ and ('a : immediate) t4 |}] type s4 = s5 t4 -and 'a [@immediate] t4 +and ('a : immediate) t4 and s5 = int;; [%%expect{| @@ -136,7 +136,7 @@ and s5 = int |}] type s4 = s5 t4 -and 'a [@immediate] t4 +and ('a : immediate) t4 and s5 = string;; [%%expect{| @@ -148,39 +148,39 @@ Error: |}] (* CR layouts v2: improve error, which requires layout histories *) -(* CR layouts: bring [@any] and [@void] bits back here from [basics_alpha.ml] when we allow +(* CR layouts: bring [: any] and [: void] bits back here from [basics_alpha.ml] when we allow them in beta. *) -type 'a [@any] t4 = 'a +type ('a : any) t4 = 'a and s4 = string t4;; [%%expect{| -Line 1, characters 8-14: -1 | type 'a [@any] t4 = 'a - ^^^^^^ +Line 1, characters 11-14: +1 | type ('a : any) t4 = 'a + ^^^ Error: Layout any is used here, but the appropriate layouts extension is not enabled |}];; type s4 = string t4 -and 'a [@any] t4;; +and ('a : any) t4;; [%%expect{| -Line 2, characters 7-13: -2 | and 'a [@any] t4;; - ^^^^^^ +Line 2, characters 10-13: +2 | and ('a : any) t4;; + ^^^ Error: Layout any is used here, but the appropriate layouts extension is not enabled |}];; -type 'a [@void] void4 = Void4 of 'a;; +type ('a : void) void4 = Void4 of 'a;; [%%expect{| -Line 1, characters 8-15: -1 | type 'a [@void] void4 = Void4 of 'a;; - ^^^^^^^ +Line 1, characters 11-15: +1 | type ('a : void) void4 = Void4 of 'a;; + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}];; -type 'a [@any] any4 = Any4 of 'a +type ('a : any) any4 = Any4 of 'a [%%expect{| -Line 1, characters 8-14: -1 | type 'a [@any] any4 = Any4 of 'a - ^^^^^^ +Line 1, characters 11-14: +1 | type ('a : any) any4 = Any4 of 'a + ^^^ Error: Layout any is used here, but the appropriate layouts extension is not enabled |}];; @@ -235,7 +235,7 @@ Error: This method has type 'b -> unit which is less general than (*****************************************) (* Test 7: the layout check in unify_var *) -type 'a [@immediate] t7 = Foo7 of 'a +type ('a : immediate) t7 = Foo7 of 'a type t7' = (int * int) t7;; [%%expect{| @@ -287,10 +287,17 @@ Lines 3-9, characters 6-3: 9 | end.. Error: Signature mismatch: Modules do not match: - sig type ('a : immediate) t = 'a val f : 'a t -> 'a val x : 'a end + sig + type ('a : immediate) t = 'a + val f : ('a : immediate). 'a t -> 'a + val x : ('a : immediate). 'a + end is not included in sig val x : string end - Values do not match: val x : 'a is not included in val x : string + Values do not match: + val x : ('a : immediate). 'a + is not included in + val x : string The type string is not compatible with the type string string has layout value, which is not a sublayout of immediate. |}];; @@ -319,12 +326,15 @@ Error: Signature mismatch: Modules do not match: sig type ('a : immediate) t = 'a - val f : 'a t -> 'a t - val x : 'a t + val f : ('a : immediate). 'a t -> 'a t + val x : ('a : immediate). 'a t end is not included in sig val x : string end - Values do not match: val x : 'a t is not included in val x : string + Values do not match: + val x : ('a : immediate). 'a t + is not included in + val x : string The type string t = string is not compatible with the type string string has layout value, which is not a sublayout of immediate. |}] @@ -386,11 +396,11 @@ and foo14 = string (* CR layouts v2: This test moved to [basics_alpha.ml] as it needs a non-value sort. Bring back here when we have one. *) -type 'a t_void_16 [@@void];; +type 'a t_void_16 : void;; [%%expect{| -Line 1, characters 18-26: -1 | type 'a t_void_16 [@@void];; - ^^^^^^^^ +Line 1, characters 20-24: +1 | type 'a t_void_16 : void;; + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}];; @@ -447,11 +457,11 @@ val f18 : 'a -> 'a = (* CR layouts: This test moved to [basics_alpha.ml] as it needs a non-value sort. Bring back here when we have one. *) -type t_void [@@void];; +type t_void : void;; [%%expect{| -Line 1, characters 12-20: -1 | type t_void [@@void];; - ^^^^^^^^ +Line 1, characters 14-18: +1 | type t_void : void;; + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}];; diff --git a/ocaml/testsuite/tests/typing-layouts/datatypes.ml b/ocaml/testsuite/tests/typing-layouts/datatypes.ml index 978a4467a5d..918cb1cc39f 100644 --- a/ocaml/testsuite/tests/typing-layouts/datatypes.ml +++ b/ocaml/testsuite/tests/typing-layouts/datatypes.ml @@ -6,26 +6,26 @@ (* CR layouts v2: add mixed block restriction tests. *) -type t_value [@@value] -type t_immediate [@@immediate];; +type t_value : value +type t_immediate : immediate;; [%%expect {| -type t_value [@@value] -type t_immediate [@@immediate] +type t_value : value +type t_immediate : immediate |}];; -type t_any [@@any];; +type t_any : any;; [%%expect{| -Line 1, characters 11-18: -1 | type t_any [@@any];; - ^^^^^^^ +Line 1, characters 13-16: +1 | type t_any : any;; + ^^^ Error: Layout any is used here, but the appropriate layouts extension is not enabled |}];; -type t_void [@@void];; +type t_void : void;; [%%expect{| -Line 1, characters 12-20: -1 | type t_void [@@void];; - ^^^^^^^^ +Line 1, characters 14-18: +1 | type t_void : void;; + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}];; diff --git a/ocaml/testsuite/tests/typing-layouts/datatypes_alpha.ml b/ocaml/testsuite/tests/typing-layouts/datatypes_alpha.ml index 14c8aea23dd..a478258bb18 100644 --- a/ocaml/testsuite/tests/typing-layouts/datatypes_alpha.ml +++ b/ocaml/testsuite/tests/typing-layouts/datatypes_alpha.ml @@ -7,10 +7,10 @@ (* CR layouts v2: add mixed block restriction tests. *) -type t_void [@@void] -type t_any [@@any] -type t_value [@@value] -type t_immediate [@@immediate];; +type t_void : void +type t_any : any +type t_value : value +type t_immediate : immediate;; (***************************************************) (* Test 1: constructor arguments may have any sort *) @@ -22,10 +22,10 @@ type t1_mixed1 = T1_mixed1 of t_void * t_immediate type t1_mixed2 = T1_mixed2 of t_immediate * t_value * t_void type t1_mixed3 = T1_mixed3 of t_value * t_immediate [%%expect {| -type t_void [@@void] -type t_any [@@any] -type t_value [@@value] -type t_immediate [@@immediate] +type t_void : void +type t_any : any +type t_value : value +type t_immediate : immediate type t1_void = T1_void of t_void type t1_value = T1_value of t_value type t1_immediate = T1_immediate of t_immediate @@ -291,13 +291,13 @@ Error: This expression has type float but an expression was expected of type (* See Note [Default layouts in transl_declaration] in Typedecl. *) type t7 = A | B | C | D of t7_void and t7_2 = { x : t7 } [@@unboxed] -and t7_void [@@void] +and t7_void : void -type t7_3 = t7_2 [@@immediate] +type t7_3 : immediate = t7_2 [%%expect{| type t7 = A | B | C | D of t7_void and t7_2 = { x : t7; } [@@unboxed] -and t7_void [@@void] -type t7_3 = t7_2 [@@immediate] +and t7_void : void +type t7_3 = t7_2 |}] diff --git a/ocaml/testsuite/tests/typing-layouts/datatypes_beta.ml b/ocaml/testsuite/tests/typing-layouts/datatypes_beta.ml index 3d153b884db..f0168b4f6b0 100644 --- a/ocaml/testsuite/tests/typing-layouts/datatypes_beta.ml +++ b/ocaml/testsuite/tests/typing-layouts/datatypes_beta.ml @@ -7,26 +7,26 @@ (* CR layouts v2: add mixed block restriction tests. *) -type t_value [@@value] -type t_immediate [@@immediate];; +type t_value : value +type t_immediate : immediate;; [%%expect {| -type t_value [@@value] -type t_immediate [@@immediate] +type t_value : value +type t_immediate : immediate |}];; -type t_any [@@any];; +type t_any : any;; [%%expect{| -Line 1, characters 11-18: -1 | type t_any [@@any];; - ^^^^^^^ +Line 1, characters 13-16: +1 | type t_any : any;; + ^^^ Error: Layout any is used here, but the appropriate layouts extension is not enabled |}];; -type t_void [@@void];; +type t_void : void;; [%%expect{| -Line 1, characters 12-20: -1 | type t_void [@@void];; - ^^^^^^^^ +Line 1, characters 14-18: +1 | type t_void : void;; + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}];; diff --git a/ocaml/testsuite/tests/typing-layouts/modules.ml b/ocaml/testsuite/tests/typing-layouts/modules.ml index c21d3c52eb1..822e2c2753b 100644 --- a/ocaml/testsuite/tests/typing-layouts/modules.ml +++ b/ocaml/testsuite/tests/typing-layouts/modules.ml @@ -2,28 +2,28 @@ * expect *) -type t_value [@@value] -type t_imm [@@immediate] -type t_imm64 [@@immediate64];; +type t_value : value +type t_imm : immediate +type t_imm64 : immediate64;; [%%expect {| -type t_value [@@value] -type t_imm [@@immediate] -type t_imm64 [@@immediate64] +type t_value : value +type t_imm : immediate +type t_imm64 : immediate64 |}];; -type t_any [@@any];; +type t_any : any;; [%%expect{| -Line 1, characters 13-20: -1 | type t_any [@@any];; - ^^^^^^^ +Line 1, characters 15-18: +1 | type t_any : any;; + ^^^ Error: Layout any is used here, but the appropriate layouts extension is not enabled |}];; -type t_void [@@void];; +type t_void : void;; [%%expect{| -Line 1, characters 13-21: -1 | type t_void [@@void];; - ^^^^^^^^ +Line 1, characters 15-19: +1 | type t_void : void;; + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}];; @@ -34,13 +34,13 @@ Error: Layout void is used here, but the appropriate layouts extension is not en need a non-value layout. Bring back here when we have one enabled by default. *) module type S1 = sig - type 'a [@void] t + type ('a : void) t type s end;; [%%expect {| -Line 2, characters 10-17: -2 | type 'a [@void] t - ^^^^^^^ +Line 2, characters 13-17: +2 | type ('a : void) t + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}];; @@ -65,12 +65,12 @@ Error: Layout immediate is used here, but the appropriate layouts extension is n annotations on type parameters. Bring back here when we turn that on by default. *) module type S2 = sig - type 'a [@immediate] t + type ('a : immediate) t end;; [%%expect{| -Line 2, characters 10-22: -2 | type 'a [@immediate] t - ^^^^^^^^^^^^ +Line 2, characters 13-22: +2 | type ('a : immediate) t + ^^^^^^^^^ Error: Layout immediate is used here, but the appropriate layouts extension is not enabled |}];; @@ -102,49 +102,49 @@ end = struct end and Bar3 : sig - type t [@@void] + type t : void end = struct type t end;; [%%expect {| -Line 8, characters 9-17: -8 | type t [@@void] - ^^^^^^^^ +Line 8, characters 11-15: +8 | type t : void + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}];; module rec Foo3 : sig - type t = Bar3.t [@@immediate] + type t : immediate = Bar3.t end = struct type t = Bar3.t end and Bar3 : sig - type t [@@value] + type t : value end = struct type t = A end;; [%%expect {| -Line 2, characters 2-31: -2 | type t = Bar3.t [@@immediate] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Line 2, characters 2-29: +2 | type t : immediate = Bar3.t + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Error: Type Bar3.t has layout value, which is not a sublayout of immediate. |}];; module rec Foo3 : sig - type t = Bar3.t [@@immediate] + type t : immediate = Bar3.t end = struct type t = Bar3.t end and Bar3 : sig - type t [@@immediate] + type t : immediate end = struct type t = A end;; [%%expect {| -module rec Foo3 : sig type t = Bar3.t [@@immediate] end -and Bar3 : sig type t [@@immediate] end +module rec Foo3 : sig type t = Bar3.t end +and Bar3 : sig type t : immediate end |}];; (* CR layouts: more bits moved to [modules_alpha.ml] from down here. *) @@ -165,12 +165,12 @@ and Bar3 : sig type t [@@immediate] end without extensions. *) module type S3_2 = sig - type t [@@immediate] + type t : immediate end module type S3_2' = S3_2 with type t := string;; [%%expect{| -module type S3_2 = sig type t [@@immediate] end +module type S3_2 = sig type t : immediate end Line 5, characters 30-46: 5 | module type S3_2' = S3_2 with type t := string;; ^^^^^^^^^^^^^^^^ @@ -184,25 +184,25 @@ Error: Type string has layout value, which is not a sublayout of immediate. been moved to modules_alpha.ml. Bring it back once we have a non-value layout enabled by default. *) module type S6_1 = sig - type t [@@void] + type t : void end [%%expect{| -Line 2, characters 9-17: -2 | type t [@@void] - ^^^^^^^^ +Line 2, characters 11-15: +2 | type t : void + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}] module type S6_5 = sig - type t [@@immediate] + type t : immediate end module type S6_6 = sig val m : (module S6_5 with type t = string) end [%%expect{| -module type S6_5 = sig type t [@@immediate] end +module type S6_5 = sig type t : immediate end Line 6, characters 10-44: 6 | val m : (module S6_5 with type t = string) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -211,7 +211,7 @@ Error: In this `with' constraint, the new definition of t Type declarations do not match: type t is not included in - type t [@@immediate] + type t : immediate the first has layout value, which is not a sublayout of immediate. |}];; @@ -228,7 +228,7 @@ Error: In this `with' constraint, the new definition of t Type declarations do not match: type t is not included in - type t [@@immediate] + type t : immediate the first has layout value, which is not a sublayout of immediate. |}];; @@ -249,7 +249,7 @@ Error: In this `with' constraint, the new definition of t Type declarations do not match: type t is not included in - type t [@@immediate] + type t : immediate the first has layout value, which is not a sublayout of immediate. |}];; diff --git a/ocaml/testsuite/tests/typing-layouts/modules_alpha.ml b/ocaml/testsuite/tests/typing-layouts/modules_alpha.ml index 614558250db..0086756d0f7 100644 --- a/ocaml/testsuite/tests/typing-layouts/modules_alpha.ml +++ b/ocaml/testsuite/tests/typing-layouts/modules_alpha.ml @@ -3,28 +3,28 @@ * expect *) -type t_any [@@any] -type t_value [@@value] -type t_imm [@@immediate] -type t_imm64 [@@immediate64] -type t_void [@@void];; +type t_any : any +type t_value : value +type t_imm : immediate +type t_imm64 : immediate64 +type t_void : void;; (*********************************************************) (* Test 1: Simple with type constraints respect layouts. *) module type S1 = sig - type 'a [@void] t + type ('a : void) t type s end;; -type 'a [@void] t1;; +type ('a : void) t1;; module type S1' = S1 with type 'a t = t_void t1 and type s = t_void t1;; [%%expect {| -type t_any [@@any] -type t_value [@@value] -type t_imm [@@immediate] -type t_imm64 [@@immediate64] -type t_void [@@void] +type t_any : any +type t_value : value +type t_imm : immediate +type t_imm64 : immediate64 +type t_void : void module type S1 = sig type ('a : void) t type s end type ('a : void) t1 module type S1' = sig type ('a : void) t = t_void t1 type s = t_void t1 end @@ -93,11 +93,11 @@ Error: Signature mismatch: (* Test 2: with type constraints for fixed types (the complicated case of Type_mod.merge_constraint) *) module type S2 = sig - type 'a [@immediate] t + type ('a : immediate) t end -type 'a [@immediate] r2 = R -type 'a [@immediate] s2 = private [> `A of 'a r2] +type ('a : immediate) r2 = R +type ('a : immediate) s2 = private [> `A of 'a r2] module type T2 = S2 with type 'a t = 'a s2 @@ -109,10 +109,11 @@ module type S2 = sig type ('a : immediate) t end type ('a : immediate) r2 = R type (!'a : immediate) s2 = private [> `A of 'a r2 ] module type T2 = sig type ('a : immediate) t = 'a s2 end -module F2 : functor (X : T2) -> sig val f : unit -> 'a X.t end +module F2 : + functor (X : T2) -> sig val f : ('a : immediate). unit -> 'a X.t end |}] -type 'a [@immediate] s2' = private [> `B of 'a] +type ('a : immediate) s2' = private [> `B of 'a] module type T2' = S2 with type 'a t = 'a s2' module F2' (X : T2') = struct @@ -154,7 +155,7 @@ end = struct end and Bar3 : sig - type t [@@void] + type t : void end = struct type t end;; @@ -167,37 +168,37 @@ Error: Function argument types must have layout value. |}];; module rec Foo3 : sig - type t = Bar3.t [@@immediate] + type t : immediate = Bar3.t end = struct type t = Bar3.t end and Bar3 : sig - type t [@@value] + type t : value end = struct type t = A end;; [%%expect {| -Line 2, characters 2-31: -2 | type t = Bar3.t [@@immediate] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Line 2, characters 2-29: +2 | type t : immediate = Bar3.t + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Error: Type Bar3/2.t has layout value, which is not a sublayout of immediate. |}];; module rec Foo3 : sig - type t = Bar3.t [@@immediate] + type t : immediate = Bar3.t end = struct type t = Bar3.t end and Bar3 : sig - type t [@@immediate] + type t : immediate end = struct type t = A end;; [%%expect {| -module rec Foo3 : sig type t = Bar3.t [@@immediate] end -and Bar3 : sig type t [@@immediate] end +module rec Foo3 : sig type t = Bar3.t end +and Bar3 : sig type t : immediate end |}];; module rec Foo3 : sig @@ -207,7 +208,7 @@ end = struct end and Bar3 : sig - type 'a [@void] t + type ('a : void) t end = struct type 'a t end;; @@ -222,7 +223,7 @@ Error: This type ('a : void) should be an instance of type ('b : value) (* One downside of the current approach - this could be allowed, but isn't. You need to annotate types declared in recursive modules if they need to have layouts other than value, even if it's obvious from the manifest *) -type t3 [@@void] +type t3 : void module rec Foo3 : sig type t = t3 @@ -231,15 +232,15 @@ end = struct end and Bar3 : sig - type 'a [@void] t + type ('a : void) t type s = Foo3.t t end = struct - type 'a [@void] t + type ('a : void) t type s = Foo3.t t end;; [%%expect {| -type t3 [@@void] +type t3 : void Line 12, characters 11-17: 12 | type s = Foo3.t t ^^^^^^ @@ -249,21 +250,21 @@ Error: This type Foo3.t should be an instance of type ('a : void) (* Previous example works with annotation *) module rec Foo3 : sig - type t = t3 [@@void] + type t : void = t3 end = struct type t = t3 end and Bar3 : sig - type 'a [@void] t + type ('a : void) t type s = Foo3.t t end = struct - type 'a [@void] t + type ('a : void) t type s = Foo3.t t end;; [%%expect {| -module rec Foo3 : sig type t = t3 [@@void] end +module rec Foo3 : sig type t = t3 end and Bar3 : sig type ('a : void) t type s = Foo3.t t end |}];; @@ -276,8 +277,8 @@ end module M4 = F4(struct type t = T end) -type 'a [@value] t4_val -type 'a [@void] t4_void +type ('a : value) t4_val +type ('a : void) t4_void type t4 = M4.s t4_val;; [%%expect {| @@ -297,20 +298,20 @@ Error: This type M4.s should be an instance of type ('a : void) M4.s has layout value, which is not a sublayout of void. |}] -module F4'(X : sig type t [@@immediate] end) = struct - type s = Foo of X.t [@@unboxed] [@@immediate] +module F4'(X : sig type t : immediate end) = struct + type s : immediate = Foo of X.t [@@unboxed] end module M4' = F4'(struct type t = T end) -type 'a [@immediate] t4_imm +type ('a : immediate) t4_imm type t4 = M4'.s t4_imm;; [%%expect{| module F4' : - functor (X : sig type t [@@immediate] end) -> - sig type s = Foo of X.t [@@immediate] [@@unboxed] end -module M4' : sig type s [@@immediate] end + functor (X : sig type t : immediate end) -> + sig type s : immediate = Foo of X.t [@@unboxed] end +module M4' : sig type s : immediate end type ('a : immediate) t4_imm type t4 = M4'.s t4_imm |}];; @@ -341,8 +342,9 @@ let x3 = M3_1.f 42 let x3' = M3_1.f "test";; [%%expect{| -module type S3_1 = sig type ('a : immediate) t val f : 'a -> 'a t end -module type S3_1' = sig val f : 'a -> 'a list end +module type S3_1 = + sig type ('a : immediate) t val f : ('a : immediate). 'a -> 'a t end +module type S3_1' = sig val f : ('a : immediate). 'a -> 'a list end module M3_1 : S3_1' val x3 : int list = [42] Line 14, characters 17-23: @@ -354,12 +356,12 @@ Error: This expression has type string but an expression was expected of type |}] module type S3_2 = sig - type t [@@immediate] + type t : immediate end module type S3_2' = S3_2 with type t := string;; [%%expect{| -module type S3_2 = sig type t [@@immediate] end +module type S3_2 = sig type t : immediate end Line 5, characters 30-46: 5 | module type S3_2' = S3_2 with type t := string;; ^^^^^^^^^^^^^^^^ @@ -369,14 +371,14 @@ Error: Type string has layout value, which is not a sublayout of immediate. (*****************************************) (* Test 6: With constraints on packages. *) module type S6_1 = sig - type t [@@void] + type t : void end module type S6_2 = sig val m : (module S6_1 with type t = int) end;; [%%expect{| -module type S6_1 = sig type t [@@void] end +module type S6_1 = sig type t : void end Line 6, characters 10-41: 6 | val m : (module S6_1 with type t = int) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -385,19 +387,19 @@ Error: In this `with' constraint, the new definition of t Type declarations do not match: type t is not included in - type t [@@void] + type t : void the first has layout value, which is not a sublayout of void. |}];; module type S6_3 = sig - type t [@@value] + type t : value end module type S6_4 = sig val m : (module S6_3 with type t = t_void) end;; [%%expect{| -module type S6_3 = sig type t [@@value] end +module type S6_3 = sig type t : value end Line 6, characters 33-34: 6 | val m : (module S6_3 with type t = t_void) ^ @@ -406,14 +408,14 @@ Error: Signature package constraint types must have layout value. |}];; module type S6_5 = sig - type t [@@immediate] + type t : immediate end module type S6_6 = sig val m : (module S6_5 with type t = string) end [%%expect{| -module type S6_5 = sig type t [@@immediate] end +module type S6_5 = sig type t : immediate end Line 6, characters 10-44: 6 | val m : (module S6_5 with type t = string) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -422,7 +424,7 @@ Error: In this `with' constraint, the new definition of t Type declarations do not match: type t is not included in - type t [@@immediate] + type t : immediate the first has layout value, which is not a sublayout of immediate. |}];; @@ -439,7 +441,7 @@ Error: In this `with' constraint, the new definition of t Type declarations do not match: type t is not included in - type t [@@immediate] + type t : immediate the first has layout value, which is not a sublayout of immediate. |}];; @@ -457,7 +459,7 @@ Error: In this `with' constraint, the new definition of t Type declarations do not match: type t is not included in - type t [@@immediate] + type t : immediate the first has layout value, which is not a sublayout of immediate. |}];; diff --git a/ocaml/testsuite/tests/typing-layouts/modules_beta.ml b/ocaml/testsuite/tests/typing-layouts/modules_beta.ml index b195f2f2318..f16547deeba 100644 --- a/ocaml/testsuite/tests/typing-layouts/modules_beta.ml +++ b/ocaml/testsuite/tests/typing-layouts/modules_beta.ml @@ -3,28 +3,28 @@ * expect *) -type t_value [@@value] -type t_imm [@@immediate] -type t_imm64 [@@immediate64];; +type t_value : value +type t_imm : immediate +type t_imm64 : immediate64;; [%%expect {| -type t_value [@@value] -type t_imm [@@immediate] -type t_imm64 [@@immediate64] +type t_value : value +type t_imm : immediate +type t_imm64 : immediate64 |}];; -type t_any [@@any];; +type t_any : any;; [%%expect{| -Line 1, characters 13-20: -1 | type t_any [@@any];; - ^^^^^^^ +Line 1, characters 15-18: +1 | type t_any : any;; + ^^^ Error: Layout any is used here, but the appropriate layouts extension is not enabled |}];; -type t_void [@@void];; +type t_void : void;; [%%expect{| -Line 1, characters 13-21: -1 | type t_void [@@void];; - ^^^^^^^^ +Line 1, characters 15-19: +1 | type t_void : void;; + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}];; @@ -34,13 +34,13 @@ Error: Layout void is used here, but the appropriate layouts extension is not en (* CR layouts v2: parts of this test moved to [modules_alpha.ml] because they need a non-value layout. Bring back here when we have one. *) module type S1 = sig - type 'a [@void] t + type ('a : void) t type s end;; [%%expect {| -Line 2, characters 10-17: -2 | type 'a [@void] t - ^^^^^^^ +Line 2, characters 13-17: +2 | type ('a : void) t + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}];; @@ -110,11 +110,11 @@ Error: Signature mismatch: (* Test 2: with type constraints for fixed types (the complicated case of Type_mod.merge_constraint) *) module type S2 = sig - type 'a [@immediate] t + type ('a : immediate) t end -type 'a [@immediate] r2 = R -type 'a [@immediate] s2 = private [> `A of 'a r2] +type ('a : immediate) r2 = R +type ('a : immediate) s2 = private [> `A of 'a r2] module type T2 = S2 with type 'a t = 'a s2 @@ -126,10 +126,11 @@ module type S2 = sig type ('a : immediate) t end type ('a : immediate) r2 = R type (!'a : immediate) s2 = private [> `A of 'a r2 ] module type T2 = sig type ('a : immediate) t = 'a s2 end -module F2 : functor (X : T2) -> sig val f : unit -> 'a X.t end +module F2 : + functor (X : T2) -> sig val f : ('a : immediate). unit -> 'a X.t end |}] -type 'a [@immediate] s2' = private [> `B of 'a] +type ('a : immediate) s2' = private [> `B of 'a] module type T2' = S2 with type 'a t = 'a s2' module F2' (X : T2') = struct @@ -173,49 +174,49 @@ end = struct end and Bar3 : sig - type t [@@void] + type t : void end = struct type t end;; [%%expect {| -Line 8, characters 9-17: -8 | type t [@@void] - ^^^^^^^^ +Line 8, characters 11-15: +8 | type t : void + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}];; module rec Foo3 : sig - type t = Bar3.t [@@immediate] + type t : immediate = Bar3.t end = struct type t = Bar3.t end and Bar3 : sig - type t [@@value] + type t : value end = struct type t = A end;; [%%expect {| -Line 2, characters 2-31: -2 | type t = Bar3.t [@@immediate] - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Line 2, characters 2-29: +2 | type t : immediate = Bar3.t + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ Error: Type Bar3.t has layout value, which is not a sublayout of immediate. |}];; module rec Foo3 : sig - type t = Bar3.t [@@immediate] + type t : immediate = Bar3.t end = struct type t = Bar3.t end and Bar3 : sig - type t [@@immediate] + type t : immediate end = struct type t = A end;; [%%expect {| -module rec Foo3 : sig type t = Bar3.t [@@immediate] end -and Bar3 : sig type t [@@immediate] end +module rec Foo3 : sig type t = Bar3.t end +and Bar3 : sig type t : immediate end |}];; (* CR layouts v2: more bits moved to [modules_alpha.ml] from down here. *) @@ -233,8 +234,8 @@ end module M4 = F4(struct type t = T end) -type 'a [@value] t4_val -(* type 'a [@void] t4_void *) +type ('a : value) t4_val +(* type ('a : void) t4_void *) type t4 = M4.s t4_val;; [%%expect {| @@ -254,20 +255,20 @@ Error: This type M4.s should be an instance of type ('a : void) M4.s has layout value, which is not a sublayout of void. |}] *) -module F4'(X : sig type t [@@immediate] end) = struct - type s = Foo of X.t [@@unboxed] [@@immediate] +module F4'(X : sig type t : immediate end) = struct + type s : immediate = Foo of X.t [@@unboxed] end module M4' = F4'(struct type t = T end) -type 'a [@immediate] t4_imm +type ('a : immediate) t4_imm type t4 = M4'.s t4_imm;; [%%expect{| module F4' : - functor (X : sig type t [@@immediate] end) -> - sig type s = Foo of X.t [@@immediate] [@@unboxed] end -module M4' : sig type s [@@immediate] end + functor (X : sig type t : immediate end) -> + sig type s : immediate = Foo of X.t [@@unboxed] end +module M4' : sig type s : immediate end type ('a : immediate) t4_imm type t4 = M4'.s t4_imm |}];; @@ -300,8 +301,9 @@ let x3 = M3_1.f 42 let x3' = M3_1.f "test";; [%%expect{| -module type S3_1 = sig type ('a : immediate) t val f : 'a -> 'a t end -module type S3_1' = sig val f : 'a -> 'a list end +module type S3_1 = + sig type ('a : immediate) t val f : ('a : immediate). 'a -> 'a t end +module type S3_1' = sig val f : ('a : immediate). 'a -> 'a list end module M3_1 : S3_1' val x3 : int list = [42] Line 14, characters 17-23: @@ -313,12 +315,12 @@ Error: This expression has type string but an expression was expected of type |}] module type S3_2 = sig - type t [@@immediate] + type t : immediate end module type S3_2' = S3_2 with type t := string;; [%%expect{| -module type S3_2 = sig type t [@@immediate] end +module type S3_2 = sig type t : immediate end Line 5, characters 30-46: 5 | module type S3_2' = S3_2 with type t := string;; ^^^^^^^^^^^^^^^^ @@ -332,24 +334,24 @@ Error: Type string has layout value, which is not a sublayout of immediate. been moved to modules_alpha.ml. Bring it back once we have a non-value layout. *) module type S6_1 = sig - type t [@@void] + type t : void end [%%expect{| -Line 2, characters 9-17: -2 | type t [@@void] - ^^^^^^^^ +Line 2, characters 11-15: +2 | type t : void + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}] module type S6_5 = sig - type t [@@immediate] + type t : immediate end module type S6_6 = sig val m : (module S6_5 with type t = string) end [%%expect{| -module type S6_5 = sig type t [@@immediate] end +module type S6_5 = sig type t : immediate end Line 6, characters 10-44: 6 | val m : (module S6_5 with type t = string) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -358,7 +360,7 @@ Error: In this `with' constraint, the new definition of t Type declarations do not match: type t is not included in - type t [@@immediate] + type t : immediate the first has layout value, which is not a sublayout of immediate. |}];; @@ -375,7 +377,7 @@ Error: In this `with' constraint, the new definition of t Type declarations do not match: type t is not included in - type t [@@immediate] + type t : immediate the first has layout value, which is not a sublayout of immediate. |}];; @@ -393,7 +395,7 @@ Error: In this `with' constraint, the new definition of t Type declarations do not match: type t is not included in - type t [@@immediate] + type t : immediate the first has layout value, which is not a sublayout of immediate. |}];; diff --git a/ocaml/testsuite/tests/typing-layouts/void.ml b/ocaml/testsuite/tests/typing-layouts/void.ml index caf0b564895..8d793660169 100644 --- a/ocaml/testsuite/tests/typing-layouts/void.ml +++ b/ocaml/testsuite/tests/typing-layouts/void.ml @@ -4,10 +4,10 @@ (* CR layouts: all tests from this file moved to [void_alpha.ml]. Move back here when the stuff from v5 no longer needs extension flags. *) -type t_void [@@void];; +type t_void : void;; [%%expect {| -Line 1, characters 12-20: -1 | type t_void [@@void];; - ^^^^^^^^ +Line 1, characters 14-18: +1 | type t_void : void;; + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}] diff --git a/ocaml/testsuite/tests/typing-layouts/void_alpha.ml b/ocaml/testsuite/tests/typing-layouts/void_alpha.ml index 6e5fa01f2b1..9b2a04f3033 100644 --- a/ocaml/testsuite/tests/typing-layouts/void_alpha.ml +++ b/ocaml/testsuite/tests/typing-layouts/void_alpha.ml @@ -8,11 +8,11 @@ (* CR layouts v5: eliminate various restructions about how void is used from this file. *) -type t_void [@@void] +type t_void : void type void_rec = { v : t_void } [@@unboxed];; [%%expect{| -type t_void [@@void] +type t_void : void type void_rec = { v : t_void; } [@@unboxed] |}] diff --git a/ocaml/testsuite/tests/typing-layouts/void_beta.ml b/ocaml/testsuite/tests/typing-layouts/void_beta.ml index 7566fc0bedb..2164494df26 100644 --- a/ocaml/testsuite/tests/typing-layouts/void_beta.ml +++ b/ocaml/testsuite/tests/typing-layouts/void_beta.ml @@ -5,10 +5,10 @@ (* CR layouts v5: all tests from this file moved to [void_alpha.ml]. Move back here. *) -type t_void [@@void];; +type t_void : void;; [%%expect {| -Line 1, characters 12-20: -1 | type t_void [@@void];; - ^^^^^^^^ +Line 1, characters 14-18: +1 | type t_void : void;; + ^^^^ Error: Layout void is used here, but the appropriate layouts extension is not enabled |}] diff --git a/ocaml/testsuite/tests/typing-local/crossing.ml b/ocaml/testsuite/tests/typing-local/crossing.ml index 0fedb2bc6ea..f066d402765 100644 --- a/ocaml/testsuite/tests/typing-local/crossing.ml +++ b/ocaml/testsuite/tests/typing-local/crossing.ml @@ -339,7 +339,7 @@ let f : local_ _ -> M.t = let f : local_ _ -> t2 = fun x -> x [%%expect{| -module M : sig type t [@@immediate] end +module M : sig type t : immediate end type t2 = { x : int; } [@@unboxed] val f : local_ M.t -> M.t = val f : local_ t2 -> t2 = diff --git a/ocaml/testsuite/tests/typing-local/crossing_64.ml b/ocaml/testsuite/tests/typing-local/crossing_64.ml index e38011d1db1..f2d0737bc0d 100644 --- a/ocaml/testsuite/tests/typing-local/crossing_64.ml +++ b/ocaml/testsuite/tests/typing-local/crossing_64.ml @@ -9,6 +9,6 @@ end [%%expect{| module F : - functor (M : sig type t [@@immediate64] end) -> + functor (M : sig type t : immediate64 end) -> sig val f : local_ M.t -> M.t end |}] diff --git a/ocaml/testsuite/tests/typing-unboxed-types/test.ml b/ocaml/testsuite/tests/typing-unboxed-types/test.ml index 2afad67fc43..a7ab0392658 100644 --- a/ocaml/testsuite/tests/typing-unboxed-types/test.ml +++ b/ocaml/testsuite/tests/typing-unboxed-types/test.ml @@ -94,7 +94,7 @@ Error: This type cannot be unboxed because (* let rec must be rejected *) type t10 = A of t10 [@@ocaml.unboxed] [@@value];; [%%expect{| -type t10 = A of t10 [@@value] [@@unboxed] +type t10 : value = A of t10 [@@unboxed] |}];; let rec x = A x;; [%%expect{| @@ -283,7 +283,7 @@ in assert (f x = L 3.14);; (* Check for a potential infinite loop in the typing algorithm. *) type 'a t12 = M of 'a t12 [@@ocaml.unboxed] [@@value];; [%%expect{| -type 'a t12 = M of 'a t12 [@@value] [@@unboxed] +type 'a t12 : value = M of 'a t12 [@@unboxed] |}];; let f (a : int t12 array) = a.(0);; [%%expect{| @@ -342,7 +342,7 @@ end = struct type t = A of int [@@ocaml.unboxed] end;; [%%expect{| -module T : sig type t [@@immediate] end +module T : sig type t : immediate end |}];; (* Another corner case *) @@ -372,7 +372,7 @@ val h : f = {field = []} type 'a t [@@immediate];; type u = U : 'a t -> u [@@unboxed];; [%%expect{| -type 'a t [@@immediate] +type 'a t : immediate type u = U : 'a t -> u [@@unboxed] |}];; diff --git a/ocaml/testsuite/tests/typing-unboxed/test.ml b/ocaml/testsuite/tests/typing-unboxed/test.ml index 6841b4957d5..821f07dbec4 100644 --- a/ocaml/testsuite/tests/typing-unboxed/test.ml +++ b/ocaml/testsuite/tests/typing-unboxed/test.ml @@ -744,7 +744,7 @@ Error: [@The native code version of the primitive is mandatory (* PR#7424 *) type 'a b = B of 'a b b [@@unboxed] [@@value];; [%%expect{| -type 'a b = B of 'a b b [@@value] [@@unboxed] +type 'a b : value = B of 'a b b [@@unboxed] |}] diff --git a/ocaml/tools/eqparsetree.ml b/ocaml/tools/eqparsetree.ml index 9630fcd827f..9e857619c09 100644 --- a/ocaml/tools/eqparsetree.ml +++ b/ocaml/tools/eqparsetree.ml @@ -124,6 +124,14 @@ module Asttypes = struct fun mf_a ({ txt = a0; loc = a1 }, { txt = b0; loc = b1 }) -> (mf_a (a0, b0)) && (Location.eq_t (a1, b1)) + let eq_const_layout : (const_layout * const_layout) -> 'result = + function + | (Any, Any) -> true + | (Value, Value) -> true + | (Void, Void) -> true + | (Immediate64, Immediate64) -> true + | (Immediate, Immediate) -> true + | (Any | Value | Void | Immediate64 | Immediate, _) -> false end let rec eq_row_field : (row_field * row_field) -> 'result = @@ -179,9 +187,12 @@ and eq_core_type_desc : | (Ptyp_variant (a0, a1, a2), Ptyp_variant (b0, b1, b2)) -> ((eq_list eq_row_field (a0, b0)) && (eq_bool (a1, b1))) && (eq_option (eq_list Asttypes.eq_label) (a2, b2)) - | (Ptyp_poly (a0, a1), Ptyp_poly (b0, b1)) -> - (eq_list eq_string (a0, b0)) && (eq_core_type (a1, b1)) + | (Ptyp_poly (a0, a1, a2), Ptyp_poly (b0, b1, b2)) -> + (eq_list eq_string (a0, b0)) && (eq_core_type (a1, b1)) && + (eq_list (eq_option (Asttypes.eq_loc Asttypes.eq_const_layout)) (a2, b2)) | (Ptyp_package a0, Ptyp_package b0) -> eq_package_type (a0, b0) + | (Ptyp_layout (a0, a1), Ptyp_layout (b0, b1)) -> + (eq_core_type (a0, b0)) && (Asttypes.eq_const_layout (a1, b1)) | (_, _) -> false and eq_core_type : (core_type * core_type) -> 'result = fun @@ -753,8 +764,9 @@ and eq_expression_desc : | (Pexp_poly (a0, a1), Pexp_poly (b0, b1)) -> (eq_expression (a0, b0)) && (eq_option eq_core_type (a1, b1)) | (Pexp_object a0, Pexp_object b0) -> eq_class_structure (a0, b0) - | (Pexp_newtype (a0, a1), Pexp_newtype (b0, b1)) -> - (eq_string (a0, b0)) && (eq_expression (a1, b1)) + | (Pexp_newtype (a0, a1, a2), Pexp_newtype (b0, b1, b2)) -> + (eq_string (a0, b0)) && (eq_expression (a1, b1)) && + (eq_option eq_const_layout (a2, b2)) | (Pexp_pack a0, Pexp_pack b0) -> eq_module_expr (a0, b0) | (Pexp_open (a0, a1), Pexp_open (b0, b1)) -> (Asttypes.eq_loc Longident.eq_t (a0, b0)) && diff --git a/ocaml/tools/ocamlprof.ml b/ocaml/tools/ocamlprof.ml index 99a13416fae..1ba468b9133 100644 --- a/ocaml/tools/ocamlprof.ml +++ b/ocaml/tools/ocamlprof.ml @@ -299,7 +299,7 @@ and rw_exp iflag sexp = | Pexp_object cl -> List.iter (rewrite_class_field iflag) cl.pcstr_fields - | Pexp_newtype (_, sexp) -> rewrite_exp iflag sexp + | Pexp_newtype (_, sexp, _) -> rewrite_exp iflag sexp | Pexp_open (_, e) -> rewrite_exp iflag e | Pexp_pack (smod) -> rewrite_mod iflag smod | Pexp_letop {let_; ands; body; _} -> diff --git a/ocaml/typing/ctype.ml b/ocaml/typing/ctype.ml index d836f76a3cd..b3502fe01fe 100644 --- a/ocaml/typing/ctype.ml +++ b/ocaml/typing/ctype.ml @@ -141,8 +141,6 @@ exception Cannot_subst exception Cannot_unify_universal_variables -exception Matches_failure of Env.t * unification_error - exception Incompatible (**** Type level management ****) @@ -153,8 +151,11 @@ let global_level = s_ref 1 let saved_level = s_ref [] type levels = - { current_level: int; nongen_level: int; global_level: int; - saved_level: (int * int) list; } + { current_level: int; + nongen_level: int; + global_level: int; (* level assigned to a fresh 'a in user code *) + saved_level: (int * int) list; + } let save_levels () = { current_level = !current_level; nongen_level = !nongen_level; @@ -542,7 +543,7 @@ let really_closed = ref None are expanded to check whether the apparently-free variable would vanish during expansion. - We collect both type variables and row variables, paired with a boolean - that is [true] if we have a row variable. + that is [false] if we have a row variable. - We do not count "virtual" free variables -- free variables stored in the abbreviation of an object type that has been expanded (we store the abbreviations for use when displaying the type). @@ -581,23 +582,30 @@ let rec free_vars_rec real ty = | _ -> iter_type_expr (free_vars_rec true) ty -let free_vars ?env ty = +let free_vars ?env tyl = free_variables := []; really_closed := env; - free_vars_rec true ty; + List.iter (free_vars_rec true) tyl; let res = !free_variables in free_variables := []; really_closed := None; res let free_variables ?env ty = - let tl = List.map fst (free_vars ?env ty) in + let tl = List.map fst (free_vars ?env [ty]) in unmark_type ty; tl +let free_non_row_variables_of_list tyl = + let tl = List.filter_map (fun (v, not_row) -> if not_row then Some v else None) + (free_vars tyl) + in + List.iter unmark_type tyl; + tl + let closed_type ty = remove_mode_and_layout_variables ty; - match free_vars ty with + match free_vars [ty] with [] -> () | (v, real) :: _ -> raise (Non_closed (v, real)) @@ -620,10 +628,7 @@ let closed_type_decl decl = (fun {cd_args; cd_res; _} -> match cd_res with | Some _ -> () - | None -> - match cd_args with - | Cstr_tuple l -> List.iter (fun (ty, _) -> closed_type ty) l - | Cstr_record l -> List.iter (fun l -> closed_type l.ld_type) l + | None -> List.iter closed_type (tys_of_constr_args cd_args) ) v | Type_record(r, _rep) -> @@ -4561,71 +4566,117 @@ let is_moregeneral env inst_nongen pat_sch subj_sch = | () -> true | exception Moregen _ -> false -(* Alternative approach: "rigidify" a type scheme, - and check validity after unification *) -(* Simpler, no? *) - -let rec rigidify_rec vars ty = - if try_mark_node ty then - begin match get_desc ty with - | Tvar _ -> - if not (TypeSet.mem ty !vars) then vars := TypeSet.add ty !vars - | Tvariant row -> - let Row {more; name; closed} = row_repr row in - if is_Tvar more && not (has_fixed_explanation row) then begin - let more' = newty2 ~level:(get_level more) (get_desc more) in - let row' = - create_row ~fixed:(Some Rigid) ~fields:[] ~more:more' - ~name ~closed - in link_type more (newty2 ~level:(get_level ty) (Tvariant row')) - end; - iter_row (rigidify_rec vars) row; - (* only consider the row variable if the variant is not static *) - if not (static_row row) then - rigidify_rec vars (row_more row) - | _ -> - iter_type_expr (rigidify_rec vars) ty - end - -let rigidify ty = - let vars = ref TypeSet.empty in - rigidify_rec vars ty; - unmark_type ty; - TypeSet.elements !vars - let all_distinct_vars env vars = let tys = ref TypeSet.empty in List.for_all (fun ty -> let ty = expand_head env ty in - if TypeSet.mem ty !tys then false else - (tys := TypeSet.add ty !tys; is_Tvar ty)) + if TypeSet.mem ty !tys then false else begin + tys := TypeSet.add ty !tys; + is_Tvar ty + end) vars -let matches ~expand_error_trace env ty ty' = - let snap = snapshot () in - let vars = rigidify ty in - cleanup_abbrev (); - match unify env ty ty' with - | () -> - if not (all_distinct_vars env vars) then begin - backtrack snap; - let diff = - if expand_error_trace - then expanded_diff env ~got:ty ~expected:ty' - else unexpanded_diff ~got:ty ~expected:ty' - in - raise (Matches_failure (env, unification_error ~trace:[diff])) - end; - backtrack snap - | exception Unify err -> +type matches_result = + | Unification_failure of Errortrace.unification_error + | Layout_mismatch of { original_layout : layout; inferred_layout : layout } + | All_good + +module Matches = struct + (* Alternative approach: "rigidify" a type scheme, + and check validity after unification *) + (* Simpler, no? *) + + let rec rigidify_rec vars ty = + if try_mark_node ty then + begin match get_desc ty with + | Tvar { layout } -> + vars := TypeMap.add ty layout !vars + | Tvariant row -> + let Row {more; name; closed} = row_repr row in + if is_Tvar more && not (has_fixed_explanation row) then begin + let more' = newty2 ~level:(get_level more) (get_desc more) in + let row' = + create_row ~fixed:(Some Rigid) ~fields:[] ~more:more' + ~name ~closed + in link_type more (newty2 ~level:(get_level ty) (Tvariant row')) + end; + iter_row (rigidify_rec vars) row; + (* only consider the row variable if the variant is not static *) + if not (static_row row) then + rigidify_rec vars (row_more row) + | _ -> + iter_type_expr (rigidify_rec vars) ty + end + + (* remember free variables in a type so we can make sure they aren't unified; + should be paired with a call to [all_distinct_vars_with_original__layouts] + later. *) + let rigidify ty = + let vars = ref TypeMap.empty in + rigidify_rec vars ty; + unmark_type ty; + List.map (fun (trans_expr, lay) -> Transient_expr.type_expr trans_expr, lay) + (TypeMap.bindings !vars) + + (* this version doesn't carry the unification error, which is computed after + the error is detected *) + module No_trace = struct + type matches_result_ = + | Unification_failure + | Layout_mismatch of { original_layout : layout; inferred_layout : layout } + | All_good + end + + let all_distinct_vars_with_original_layouts env vars_layouts = + let open No_trace in + let tys = ref TypeSet.empty in + let folder acc (ty, original_layout) = + match acc with + | Unification_failure | Layout_mismatch _ -> acc + | All_good -> + let open No_trace in + let ty = expand_head env ty in + if TypeSet.mem ty !tys then Unification_failure else begin + tys := TypeSet.add ty !tys; + match get_desc ty with + | Tvar { layout = inferred_layout } -> + if Layout.equate inferred_layout original_layout + then All_good + else Layout_mismatch { original_layout; inferred_layout } + | _ -> Unification_failure + end + in + List.fold_left folder All_good vars_layouts + + let matches ~expand_error_trace env ty ty' = + let snap = snapshot () in + let vars_layouts = rigidify ty in + cleanup_abbrev (); + match unify env ty ty' with + | () -> + let result = + match all_distinct_vars_with_original_layouts env vars_layouts with + | Unification_failure -> + let diff = + if expand_error_trace + then expanded_diff env ~got:ty ~expected:ty' + else unexpanded_diff ~got:ty ~expected:ty' + in + Unification_failure (unification_error ~trace:[diff]) + | Layout_mismatch { original_layout; inferred_layout } -> + Layout_mismatch { original_layout; inferred_layout } + | All_good -> All_good + in backtrack snap; - raise (Matches_failure (env, err)) + result + | exception Unify err -> + backtrack snap; + Unification_failure err +end + +let matches = Matches.matches -let does_match env ty ty' = - match matches ~expand_error_trace:false env ty ty' with - | () -> true - | exception Matches_failure (_, _) -> false (*********************************************) (* Equivalence between parameterized types *) diff --git a/ocaml/typing/ctype.mli b/ocaml/typing/ctype.mli index af3ef696b82..db059615d51 100644 --- a/ocaml/typing/ctype.mli +++ b/ocaml/typing/ctype.mli @@ -29,8 +29,6 @@ exception Escape of type_expr Errortrace.escape exception Tags of label * label exception Cannot_expand exception Cannot_apply -exception Matches_failure of Env.t * Errortrace.unification_error - (* Raised from [matches], hence the odd name *) exception Incompatible (* Raised from [mcomp] *) @@ -268,17 +266,19 @@ val deep_occur: type_expr -> type_expr -> bool val moregeneral: Env.t -> bool -> type_expr -> type_expr -> unit (* Check if the first type scheme is more general than the second. *) val is_moregeneral: Env.t -> bool -> type_expr -> type_expr -> bool -val rigidify: type_expr -> type_expr list - (* "Rigidify" a type and return its type variable *) val all_distinct_vars: Env.t -> type_expr list -> bool (* Check those types are all distinct type variables *) -val matches: expand_error_trace:bool -> Env.t -> type_expr -> type_expr -> unit + +type matches_result = + | Unification_failure of Errortrace.unification_error + | Layout_mismatch of { original_layout : layout; inferred_layout : layout } + | All_good +val matches: expand_error_trace:bool -> Env.t -> + type_expr -> type_expr -> matches_result (* Same as [moregeneral false], implemented using the two above functions and backtracking. Ignore levels. The [expand_error_trace] flag controls whether the error raised performs expansion; this should almost always be [true]. *) -val does_match: Env.t -> type_expr -> type_expr -> bool - (* Same as [matches], but returns a [bool] *) val reify_univars : Env.t -> Types.type_expr -> Types.type_expr (* Replaces all the variables of a type by a univar. *) @@ -430,7 +430,11 @@ val nongen_class_declaration: class_declaration -> bool Uses the empty environment. *) val free_variables: ?env:Env.t -> type_expr -> type_expr list - (* If env present, then check for incomplete definitions too *) + (* If env present, then check for incomplete definitions too; + returns both normal variables and row variables*) +val free_non_row_variables_of_list: type_expr list -> type_expr list + (* gets only non-row variables *) + val closed_type_decl: type_declaration -> type_expr option val closed_extension_constructor: extension_constructor -> type_expr option val closed_class: @@ -478,6 +482,9 @@ val tvariant_not_immediate : row_desc -> bool (* Cheap upper bound on layout. Will not expand unboxed types - call [type_layout] if that's needed. *) val estimate_type_layout : Env.t -> type_expr -> layout + +(* Get the layout of a type, expanding it and looking through [[@@unboxed]] + types. *) val type_layout : Env.t -> type_expr -> layout (* Find a type's sort (constraining it to be an arbitrary sort variable, if diff --git a/ocaml/typing/datarepr.ml b/ocaml/typing/datarepr.ml index 6f349ffa64a..0cf75038ade 100644 --- a/ocaml/typing/datarepr.ml +++ b/ocaml/typing/datarepr.ml @@ -47,11 +47,7 @@ let free_vars ?(param=false) ty = let newgenconstr path tyl = newgenty (Tconstr (path, tyl, ref Mnil)) let constructor_existentials cd_args cd_res = - let tyl = - match cd_args with - | Cstr_tuple l -> List.map (fun (ty, _) -> ty) l - | Cstr_record l -> List.map (fun l -> l.ld_type) l - in + let tyl = tys_of_constr_args cd_args in let existentials = match cd_res with | None -> [] diff --git a/ocaml/typing/layouts.ml b/ocaml/typing/layouts.ml index 0bb476f87bb..37faa4b2eb2 100644 --- a/ocaml/typing/layouts.ml +++ b/ocaml/typing/layouts.ml @@ -257,6 +257,9 @@ module Layout = struct | Type_parameter of Path.t * string | With_constraint of string | Newtype_declaration of string + | Constructor_type_parameter of Path.t * string + | Univar of string + | Type_variable of string type creation_reason = | Annotated of annotation_context * Location.t @@ -374,18 +377,21 @@ module Layout = struct | Value -> fresh_layout (Sort Sort.value) ~why | Void -> fresh_layout (Sort Sort.void) ~why + let of_annotation ~reason Location.{ loc; txt = const } = + of_const ~why:(Annotated (reason, loc)) const + + let of_annotation_option ~reason = Option.map (of_annotation ~reason) + + let of_annotation_option_default ~default ~reason = + Option.fold ~none:default ~some:(of_annotation ~reason) + let of_attributes ~legacy_immediate ~reason attrs = - match Builtin_attributes.layout ~legacy_immediate attrs with - | Ok None as a -> a - | Ok (Some l) -> Ok (Some (of_const ~why:(Annotated (reason, l.loc)) - l.txt)) - | Error _ as e -> e + Builtin_attributes.layout ~legacy_immediate attrs |> + Result.map (of_annotation_option ~reason) let of_attributes_default ~legacy_immediate ~reason ~default attrs = - match of_attributes ~legacy_immediate ~reason attrs with - | Ok None -> Ok default - | Ok (Some l) -> Ok l - | Error _ as e -> e + Builtin_attributes.layout ~legacy_immediate attrs |> + Result.map (of_annotation_option_default ~default ~reason) let for_boxed_record ~all_void = if all_void then immediate ~why:Empty_record else value ~why:Boxed_record @@ -549,6 +555,15 @@ module Layout = struct | Newtype_declaration name -> fprintf ppf "the abstract type declaration for %s" name + | Constructor_type_parameter (cstr, name) -> + fprintf ppf "@[%s@ in the declaration of constructor@ %a@]" + name + !printtyp_path cstr + | Univar name -> + fprintf ppf "the universal variable %s" + name + | Type_variable name -> + fprintf ppf "the type variable %s" name let format_any_creation_reason ppf : any_creation_reason -> unit = function | Missing_cmi p -> @@ -981,6 +996,12 @@ module Layout = struct fprintf ppf "With_constraint %S" s | Newtype_declaration name -> fprintf ppf "Newtype_declaration %s" name + | Constructor_type_parameter (cstr, name) -> + fprintf ppf "Constructor_type_parameter (%a, %S)" Path.print cstr name + | Univar name -> + fprintf ppf "Univar %S" name + | Type_variable name -> + fprintf ppf "Type_variable %S" name let any_creation_reason ppf : any_creation_reason -> unit = function | Missing_cmi p -> fprintf ppf "Missing_cmi %a" Path.print p diff --git a/ocaml/typing/layouts.mli b/ocaml/typing/layouts.mli index 681c3b29fa8..bc21321cf57 100644 --- a/ocaml/typing/layouts.mli +++ b/ocaml/typing/layouts.mli @@ -99,6 +99,9 @@ module Layout : sig | Type_parameter of Path.t * string | With_constraint of string | Newtype_declaration of string + | Constructor_type_parameter of Path.t * string + | Univar of string + | Type_variable of string type value_creation_reason = | Class_let_binding @@ -260,6 +263,13 @@ module Layout : sig val of_sort : why:concrete_layout_reason -> sort -> t val of_const : why:creation_reason -> const -> t + val of_annotation : + reason:annotation_context -> Asttypes.layout_annotation -> t + + val of_annotation_option_default : + default:t -> reason:annotation_context -> + Asttypes.layout_annotation option -> t + (** Find a layout in attributes. Returns error if a disallowed layout is present, but always allows immediate attributes if ~legacy_immediate is true. See comment on [Builtin_attributes.layout]. *) diff --git a/ocaml/typing/oprint.ml b/ocaml/typing/oprint.ml index a485bf0121a..c5cf75a90fb 100644 --- a/ocaml/typing/oprint.ml +++ b/ocaml/typing/oprint.ml @@ -271,8 +271,22 @@ let pr_present = let pr_var = Pprintast.tyvar -let pr_vars = - print_list pr_var (fun ppf -> fprintf ppf "@ ") +let print_out_layout ppf = function + | Olay_const lay -> fprintf ppf "%s" (Layouts.Layout.string_of_const lay) + | Olay_var v -> fprintf ppf "%s" v + +let print_out_layout_annot ppf = function + | None -> () + | Some lay -> fprintf ppf "@ : %a" print_out_layout lay + +let pr_var_layout ppf (v, l) = match l with + | None -> pr_var ppf v + | Some lay -> fprintf ppf "(%a : %a)" + pr_var v + print_out_layout lay + +let pr_var_layouts = + print_list pr_var_layout (fun ppf -> fprintf ppf "@ ") let join_modes rm1 am2 = match rm1, am2 with @@ -282,21 +296,15 @@ let join_modes rm1 am2 = | _, Oam_unknown -> Oam_unknown | Oam_global, Oam_global -> Oam_global -let print_out_layout ppf = function - | Olay_const lay -> fprintf ppf "%s" (Layouts.Layout.string_of_const lay) - | Olay_var v -> fprintf ppf "%s" v - -let print_out_layout_option ppf = function - | None -> () - | Some lay -> fprintf ppf "@ : %a" print_out_layout lay - let rec print_out_type_0 mode ppf = function | Otyp_alias (ty, s) -> fprintf ppf "@[%a@ as %a@]" (print_out_type_0 mode) ty pr_var s + | Otyp_poly ([], ty) -> + print_out_type_0 mode ppf ty (* no "." if there are no vars *) | Otyp_poly (sl, ty) -> fprintf ppf "@[%a.@ %a@]" - pr_vars sl + pr_var_layouts sl (print_out_type_0 mode) ty | ty -> print_out_type_1 mode ppf ty @@ -493,7 +501,7 @@ let type_parameter ~in_parens ppf (match var with Covariant -> "+" | Contravariant -> "-" | NoVariance -> "") (match inj with Injective -> "!" | NoInjectivity -> "") print_type_parameter ty - print_out_layout_option lay + print_out_layout_annot lay let print_out_class_params ppf = function @@ -712,8 +720,9 @@ and print_out_sig_item ppf = | Orec_first -> "type" | Orec_next -> "and") ppf td - | Osig_value vd -> - let kwd = if vd.oval_prims = [] then "val" else "external" in + | Osig_value { oval_name; oval_type; + oval_prims; oval_attributes } -> + let kwd = if oval_prims = [] then "val" else "external" in let pr_prims ppf = function [] -> () @@ -721,10 +730,11 @@ and print_out_sig_item ppf = fprintf ppf "@ = \"%s\"" s; List.iter (fun s -> fprintf ppf "@ \"%s\"" s) sl in - fprintf ppf "@[<2>%s %a :@ %a%a%a@]" kwd value_ident vd.oval_name - !out_type vd.oval_type pr_prims vd.oval_prims + fprintf ppf "@[<2>%s %a :@ %a%a%a@]" kwd value_ident oval_name + !out_type oval_type + pr_prims oval_prims (fun ppf -> List.iter (fun a -> fprintf ppf "@ [@@@@%s]" a.oattr_name)) - vd.oval_attributes + oval_attributes | Osig_ellipsis -> fprintf ppf "..." @@ -765,11 +775,6 @@ and print_out_type_decl kwd ppf td = Asttypes.Private -> fprintf ppf " private" | Asttypes.Public -> () in - let print_layout ppf = - match td.otype_layout with - | None -> () - | Some lay -> fprintf ppf " [%@%@%s]" (Layouts.Layout.string_of_const lay) - in let print_unboxed ppf = if td.otype_unboxed then fprintf ppf " [%@%@unboxed]" else () in @@ -794,11 +799,11 @@ and print_out_type_decl kwd ppf td = print_private td.otype_private !out_type ty in - fprintf ppf "@[<2>@[%t%a@]%t%t%t@]" + fprintf ppf "@[<2>@[%t%a%a@]%t%t@]" print_name_params + print_out_layout_annot td.otype_layout print_out_tkind ty print_constraints - print_layout print_unboxed and print_simple_out_gf_type ppf (ty, gf) = @@ -846,12 +851,17 @@ and print_out_constr ppf constr = fprintf ppf "@[<2>%s of@ %a@]" name print_out_constr_args tyl end - | Some ret_type -> + | Some (vars_layouts, ret_type) -> + fprintf ppf "@[<2>%s :@ " name; + begin match vars_layouts with + | [] -> () + | _ -> fprintf ppf "@[%a.@]@ " pr_var_layouts vars_layouts + end; begin match tyl with | [] -> - fprintf ppf "@[<2>%s :@ %a@]" name print_simple_out_type ret_type + fprintf ppf "%a@]" print_simple_out_type ret_type | _ -> - fprintf ppf "@[<2>%s :@ %a -> %a@]" name + fprintf ppf "%a -> %a@]" print_out_constr_args tyl print_simple_out_type ret_type end diff --git a/ocaml/typing/outcometree.mli b/ocaml/typing/outcometree.mli index cc27d2c4bfb..dc0f9265380 100644 --- a/ocaml/typing/outcometree.mli +++ b/ocaml/typing/outcometree.mli @@ -77,6 +77,9 @@ type out_global = | Ogf_nonlocal | Ogf_unrestricted +(* should be empty if all the layout annotations are missing *) +type out_vars_layouts = (string * out_layout option) list + type out_type = | Otyp_abstract | Otyp_open @@ -93,7 +96,7 @@ type out_type = | Otyp_var of bool * string | Otyp_variant of bool * out_variant * bool * (string list) option - | Otyp_poly of string list * out_type + | Otyp_poly of out_vars_layouts * out_type | Otyp_module of out_ident * (string * out_type) list | Otyp_attribute of out_type * out_attribute | Otyp_layout_annot of out_type * out_layout @@ -103,7 +106,7 @@ type out_type = and out_constructor = { ocstr_name: string; ocstr_args: (out_type * out_global) list; - ocstr_return_type: out_type option; + ocstr_return_type: (out_vars_layouts * out_type) option; } and out_variant = @@ -148,7 +151,11 @@ and out_type_decl = otype_params: out_type_param list; otype_type: out_type; otype_private: Asttypes.private_flag; - otype_layout: Asttypes.const_layout option; + + (* Some <=> we should print this annotation; + see Note [When to print layout annotations] in Printtyp, Case (C1) *) + otype_layout: out_layout option; + otype_unboxed: bool; otype_cstrs: (out_type * out_type) list } and out_extension_constructor = @@ -156,7 +163,7 @@ and out_extension_constructor = oext_type_name: string; oext_type_params: string list; oext_args: (out_type * out_global) list; - oext_ret_type: out_type option; + oext_ret_type: (out_vars_layouts * out_type) option; oext_private: Asttypes.private_flag } and out_type_extension = { otyext_name: string; diff --git a/ocaml/typing/primitive.ml b/ocaml/typing/primitive.ml index d6de7b654dd..e9c1ad96d1b 100644 --- a/ocaml/typing/primitive.ml +++ b/ocaml/typing/primitive.ml @@ -199,6 +199,8 @@ let add_attribute_list ty attrs = let rec add_native_repr_attributes ty attrs = match ty, attrs with + (* Otyp_poly case might have been added in e.g. tree_of_value_description *) + | Otyp_poly (vars, ty), _ -> Otyp_poly (vars, add_native_repr_attributes ty attrs) | Otyp_arrow (label, am, a, rm, r), attr_l :: rest -> let r = add_native_repr_attributes r rest in let a = add_attribute_list a attr_l in diff --git a/ocaml/typing/printtyp.ml b/ocaml/typing/printtyp.ml index 8573fc63499..8245d6d5f4d 100644 --- a/ocaml/typing/printtyp.ml +++ b/ocaml/typing/printtyp.ml @@ -29,6 +29,64 @@ open Outcometree module String = Misc.Stdlib.String module Int = Misc.Stdlib.Int +(* Note [When to print layout annotations] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Layout annotations are only occasionally necessary to write + (compilation can often infer layouts), so when should we print + them? This Note addresses all the cases. + + Case (C1). The layout on a type declaration, like + [type 'a t : <> = ...]. + + We print the layout when it cannot be inferred from the rest of what is + printed. Specifically, we print the user-written layout in both of these + cases: + + (C1.1) The type declaration is abstract and has no manifest (i.e., + it's written without any [=]-signs). + + In this case, there is no way to know the layout without the annotation. + It is possible we might print a redundant [ : value ] annotation, but if the + user included this, they are probably happy to have it be printed, too. + + (C1.2) The type is [@@unboxed]. If an [@@unboxed] type is recursive, it can + be impossible to deduce the layout. We thus defer to the user in determining + whether to print the layout annotation. + + Case (C2). The layout on a type parameter to a type, like + [type ('a : <>) t = ...]. + + This layout is printed if both of the following are true: + + (C2.1) The layout is something other than the default [value]. + (* CR layouts reisenberg: update when the default changes *) + + (C2.2) The variable has no constraints on it. (If there is a constraint, + the constraint determines the layout, so printing the layout is + redundant.) + + We *could*, in theory, print this only when it cannot be inferred. + But this amounts to repeating inference. The heuristic also runs into + trouble when considering the possibility of a recursive type. So, in + order to keep the pretty-printer simple, we just always print the + (non-default) annotation. + + Another design possibility is to pass in verbosity level as some kind + of flag. + + Case (C3). The layout on a universal type variable, like + [val f : ('a : <>). 'a -> 'a]. + + We should print this layout annotation whenever it is not the + default [value]. (* CR layouts reisenberg: update when the default changes *) + This is a challenge, though, because the type in a [val] does not + explicitly quantify its free variables. So we must collect the free + variables, look to see whether any have interesting layouts, and + print the whole set of variables if any of them do. This is all + implemented in [extract_qtvs], used also in a number of other places + we do quantification (e.g. gadt-syntax constructors). +*) + (* Print a long identifier *) let rec longident ppf = function @@ -1098,6 +1156,14 @@ let add_type_to_preparation = prepare_type (* Disabled in classic mode when printing an unification error *) let print_labels = ref true +(* returns None for [value], according to (C2.1) from + Note [When to print layout annotations] *) +let out_layout_option_of_layout layout = + match Layout.get layout with + | Const Value -> None + | Const clay -> Some (Olay_const clay) + | Var v -> Some (Olay_var (Sort.var_name v)) + let rec tree_of_typexp mode ty = let px = proxy ty in if List.memq px !printed_aliases && not (List.memq px !delayed) then @@ -1204,18 +1270,16 @@ let rec tree_of_typexp mode ty = (*let print_names () = List.iter (fun (_, name) -> prerr_string (name ^ " ")) !names; prerr_string "; " in *) - if tyl = [] then tree_of_typexp mode ty else begin - let tyl = List.map Transient_expr.repr tyl in - let old_delayed = !delayed in - (* Make the names delayed, so that the real type is - printed once when used as proxy *) - List.iter add_delayed tyl; - let tl = List.map (Names.name_of_type Names.new_name) tyl in - let tr = Otyp_poly (tl, tree_of_typexp mode ty) in - (* Forget names when we leave scope *) - Names.remove_names tyl; - delayed := old_delayed; tr - end + let tyl = List.map Transient_expr.repr tyl in + let old_delayed = !delayed in + (* Make the names delayed, so that the real type is + printed once when used as proxy *) + List.iter add_delayed tyl; + let tl = tree_of_qtvs tyl in + let tr = Otyp_poly (tl, tree_of_typexp mode ty) in + (* Forget names when we leave scope *) + Names.remove_names tyl; + delayed := old_delayed; tr | Tunivar _ -> Otyp_var (false, Names.name_of_type Names.new_name tty) | Tpackage (p, fl) -> @@ -1233,6 +1297,20 @@ let rec tree_of_typexp mode ty = Otyp_alias (pr_typ (), Names.name_of_type Names.new_name px) end else pr_typ () +(* qtvs = quantified type variables *) +(* this silently drops any arguments that are not generic Tvar or Tunivar *) +and tree_of_qtvs qtvs = + let tree_of_qtv v : (string * out_layout option) option = + let tree layout = Some (Names.name_of_type Names.new_name v, + out_layout_option_of_layout layout) + in + match v.desc with + | Tvar { layout } when v.level = generic_level -> tree layout + | Tunivar { layout } -> tree layout + | _ -> None + in + List.filter_map tree_of_qtv qtvs + and tree_of_row_field mode (l, f) = match row_field_repr f with | Rpresent None | Reither(true, [], _) -> (l, false, []) @@ -1360,19 +1438,29 @@ let filter_params tyl = [] tyl in List.rev params -let prepare_type_constructor_arguments = function - | Cstr_tuple l -> List.iter (fun (ty, _) -> prepare_type ty) l - | Cstr_record l -> List.iter (fun l -> prepare_type l.ld_type) l +let prepare_type_constructor_arguments args = + List.iter prepare_type (tys_of_constr_args args) + +(* returns an empty list if no variables in the list have a layout annotation *) +let zap_qtvs_if_boring qtvs = + if List.exists (fun (_v, l) -> Option.is_some l) qtvs + then qtvs + else [] + +(* get the free variables with their layouts; do this *after* converting the + type itself, so that the type names are available. + This implements Case (C3) from Note [When to print layout annotations]. *) +let extract_qtvs tyl = + let fvs = Ctype.free_non_row_variables_of_list tyl in + let tfvs = List.map Transient_expr.repr fvs in + let vars_layouts = tree_of_qtvs tfvs in + zap_qtvs_if_boring vars_layouts let param_layout ty = match get_desc ty with | Tvar { layout; _ } | Tunivar { layout; _ } -> - begin match Layouts.Layout.get layout with - | Const Value -> None - | Const clay -> Some (Olay_const clay) - | Var v -> Some (Olay_var (Sort.var_name v)) - end - | _ -> None + out_layout_option_of_layout layout + | _ -> None (* this is (C2.2) from Note [When to print layout annotations] *) let rec tree_of_type_decl id decl = @@ -1481,14 +1569,6 @@ let rec tree_of_type_decl id decl = in let (name, args) = type_defined decl in let constraints = tree_of_constraints params in - let lay = - (* Here we're just printing, so we ignore whether the layout annotation was - allowed or not. *) - match Builtin_attributes.layout ~legacy_immediate:true decl.type_attributes - with - | Ok l -> l - | Error l_loc -> Some l_loc - in let ty, priv, unboxed = match decl.type_kind with | Type_abstract -> @@ -1514,12 +1594,29 @@ let rec tree_of_type_decl id decl = tree_of_manifest Otyp_open, decl.type_private, false + in + (* The algorithm for setting [lay] here is described as Case (C1) in + Note [When to print layout annotations] *) + let lay = match ty, unboxed with + | (Otyp_abstract, _) | (_, true) -> + (* (C1.1) from the Note corresponds to Otyp_abstract. Anything + but the default must be user-written, so we just look in the + attributes. Similarly, look in the attributes for (C1.2), the + unboxed case. Because this is just printing, we liberally + allow [@@immediate]. *) + begin match + Builtin_attributes.layout ~legacy_immediate:true decl.type_attributes + with + | Ok annot -> annot + | Error annot -> Some annot (* don't care here about extensions *) + end + | _ -> None (* other cases have no layout annotation *) in { otype_name = name; otype_params = args; otype_type = ty; otype_private = priv; - otype_layout = Option.map Location.get_txt lay; + otype_layout = Option.map (fun { txt } -> Olay_const txt) lay; otype_unboxed = unboxed; otype_cstrs = constraints } @@ -1527,24 +1624,23 @@ and tree_of_constructor_arguments = function | Cstr_tuple l -> List.map tree_of_typ_gf l | Cstr_record l -> [ Otyp_record (List.map tree_of_label l), Ogf_unrestricted ] -and tree_of_constructor cd = - let name = Ident.name cd.cd_id in - let arg () = tree_of_constructor_arguments cd.cd_args in - match cd.cd_res with - | None -> { - ocstr_name = name; - ocstr_args = arg (); - ocstr_return_type = None; - } +and tree_of_constructor_args_and_ret_type args ret_type = + match ret_type with + | None -> (tree_of_constructor_arguments args, None) | Some res -> Names.with_local_names (fun () -> - let ret = tree_of_typexp Type res in - let args = arg () in - { - ocstr_name = name; - ocstr_args = args; - ocstr_return_type = Some ret; - }) + let out_ret = tree_of_typexp Type res in + let out_args = tree_of_constructor_arguments args in + let qtvs = extract_qtvs (res :: tys_of_constr_args args) in + (out_args, Some (qtvs, out_ret))) + +and tree_of_constructor cd = + let name = Ident.name cd.cd_id in + let args, ret = tree_of_constructor_args_and_ret_type cd.cd_args cd.cd_res in + { ocstr_name = name; + ocstr_args = args; + ocstr_return_type = ret + } and tree_of_label l = let gom = @@ -1579,15 +1675,6 @@ let constructor_arguments ppf a = (* Print an extension declaration *) -let extension_constructor_args_and_ret_type_subtree ext_args ext_ret_type = - match ext_ret_type with - | None -> (tree_of_constructor_arguments ext_args, None) - | Some res -> - Names.with_local_names (fun () -> - let ret = tree_of_typexp Type res in - let args = tree_of_constructor_arguments ext_args in - (args, Some ret)) - let tree_of_extension_constructor id ext es = reset_except_context (); let ty_name = Path.name ext.ext_type_path in @@ -1607,7 +1694,7 @@ let tree_of_extension_constructor id ext es = in let name = Ident.name id in let args, ret = - extension_constructor_args_and_ret_type_subtree + tree_of_constructor_args_and_ret_type ext.ext_args ext.ext_ret_type in @@ -1636,7 +1723,7 @@ let extension_only_constructor id ppf ext = Option.iter prepare_type ext.ext_ret_type; let name = Ident.name id in let args, ret = - extension_constructor_args_and_ret_type_subtree + tree_of_constructor_args_and_ret_type ext.ext_args ext.ext_ret_type in @@ -1653,9 +1740,12 @@ let tree_of_value_description id decl = (* Format.eprintf "@[%a@]@." raw_type_expr decl.val_type; *) let id = Ident.name id in let ty = tree_of_type_scheme decl.val_type in + (* Important: process the fvs *after* the type; tree_of_type_scheme + resets the naming context *) + let qtvs = extract_qtvs [decl.val_type] in let vd = { oval_name = id; - oval_type = ty; + oval_type = Otyp_poly(qtvs, ty); oval_prims = []; oval_attributes = [] } in @@ -1683,10 +1773,13 @@ let prepare_method _lab (priv, _virt, ty) = let tree_of_method mode (lab, priv, virt, ty) = let (ty, tyl) = method_type priv ty in let tty = tree_of_typexp mode ty in - Names.remove_names (List.map Transient_expr.repr tyl); + let tyl = List.map Transient_expr.repr tyl in + let qtvs = tree_of_qtvs tyl in + let qtvs = zap_qtvs_if_boring qtvs in + Names.remove_names tyl; let priv = priv <> Mpublic in let virt = virt = Virtual in - Ocsg_method (lab, priv, virt, tty) + Ocsg_method (lab, priv, virt, Otyp_poly(qtvs, tty)) let rec prepare_class_type params = function | Cty_constr (_p, tyl, cty) -> @@ -1774,11 +1867,11 @@ let class_type ppf cty = prepare_class_type [] cty; !Oprint.out_class_type ppf (tree_of_class_type Type [] cty) -let tree_of_class_param param variance = +let tree_of_class_param param var_inj = let variance, injectivity = if is_Tvar param then Asttypes.(NoVariance, NoInjectivity) - else variance + else var_inj in { oparam_name = begin match tree_of_typexp Type_scheme param with | Otyp_var (_, s) -> s @@ -1786,6 +1879,8 @@ let tree_of_class_param param variance = end; oparam_variance = variance; oparam_injectivity = injectivity; + (* CR layouts: fix next line when adding support for layout + annotations on class type parameters *) oparam_layout = param_layout param } let class_variance = diff --git a/ocaml/typing/printtyped.ml b/ocaml/typing/printtyped.ml index 81003bfd417..b354525b091 100644 --- a/ocaml/typing/printtyped.ml +++ b/ocaml/typing/printtyped.ml @@ -155,8 +155,20 @@ let arg_label i ppf = function | Labelled s -> line i ppf "Labelled \"%s\"\n" s ;; +let typevar_layout ~print_quote ppf (v, l) = + let pptv = + if print_quote + then Pprintast.tyvar + else fun ppf s -> fprintf ppf "%s" s + in + match l with + | None -> fprintf ppf " %a" pptv v + | Some lay -> fprintf ppf " (%a : %a)" + pptv v + Pprintast.const_layout lay + let typevars ppf vs = - List.iter (fun x -> fprintf ppf " %a" Pprintast.tyvar x.txt) vs + List.iter (typevar_layout ~print_quote:true ppf) vs ;; let layout_array i ppf layouts = @@ -239,11 +251,14 @@ let rec core_type i ppf x = core_type i ppf ct; | Ttyp_poly (sl, ct) -> line i ppf "Ttyp_poly%a\n" - (fun ppf -> List.iter (fun x -> fprintf ppf " '%s" x)) sl; + (fun ppf -> List.iter (typevar_layout ~print_quote:true ppf)) sl; core_type i ppf ct; | Ttyp_package { pack_path = s; pack_fields = l } -> line i ppf "Ttyp_package %a\n" fmt_path s; list i package_with ppf l; + | Ttyp_layout (inner_ty, layout) -> + line i ppf "Ttyp_layout %s\n" (Pprintast.const_layout_to_string layout); + core_type i ppf inner_ty; and package_with i ppf (s, t) = line i ppf "with type %a\n" fmt_longident s; @@ -335,8 +350,8 @@ and expression_extra i ppf (x,_,attrs) = line i ppf "Texp_poly\n"; attributes i ppf attrs; option i core_type ppf cto; - | Texp_newtype s -> - line i ppf "Texp_newtype \"%s\"\n" s; + | Texp_newtype (s, lay) -> + line i ppf "Texp_newtype %a\n" (typevar_layout ~print_quote:false) (s, lay); attributes i ppf attrs; and alloc_mode i ppf m = diff --git a/ocaml/typing/tast_iterator.ml b/ocaml/typing/tast_iterator.ml index 801c571de81..89149d0261f 100644 --- a/ocaml/typing/tast_iterator.ml +++ b/ocaml/typing/tast_iterator.ml @@ -32,6 +32,7 @@ type iterator = env: iterator -> Env.t -> unit; expr: iterator -> expression -> unit; extension_constructor: iterator -> extension_constructor -> unit; + layout_annotation: iterator -> const_layout -> unit; module_binding: iterator -> module_binding -> unit; module_coercion: iterator -> module_coercion -> unit; module_declaration: iterator -> module_declaration -> unit; @@ -468,8 +469,11 @@ let typ sub {ctyp_desc; ctyp_env; _} = | Ttyp_class (_, _, list) -> List.iter (sub.typ sub) list | Ttyp_alias (ct, _) -> sub.typ sub ct | Ttyp_variant (list, _, _) -> List.iter (sub.row_field sub) list - | Ttyp_poly (_, ct) -> sub.typ sub ct + | Ttyp_poly (vars, ct) -> + List.iter (fun (_, l) -> Option.iter (sub.layout_annotation sub) l) vars; + sub.typ sub ct | Ttyp_package pack -> sub.package_type sub pack + | Ttyp_layout (ct, l) -> sub.typ sub ct; sub.layout_annotation sub l let class_structure sub {cstr_self; cstr_fields; _} = sub.pat sub cstr_self; @@ -512,6 +516,8 @@ let value_binding sub {vb_pat; vb_expr; _} = let env _sub _ = () +let layout_annotation _sub _ = () + let default_iterator = { binding_op; @@ -528,6 +534,7 @@ let default_iterator = env; expr; extension_constructor; + layout_annotation; module_binding; module_coercion; module_declaration; diff --git a/ocaml/typing/tast_iterator.mli b/ocaml/typing/tast_iterator.mli index e126128edf7..332481d3484 100644 --- a/ocaml/typing/tast_iterator.mli +++ b/ocaml/typing/tast_iterator.mli @@ -36,6 +36,7 @@ type iterator = env: iterator -> Env.t -> unit; expr: iterator -> expression -> unit; extension_constructor: iterator -> extension_constructor -> unit; + layout_annotation: iterator -> const_layout -> unit; module_binding: iterator -> module_binding -> unit; module_coercion: iterator -> module_coercion -> unit; module_declaration: iterator -> module_declaration -> unit; diff --git a/ocaml/typing/tast_mapper.ml b/ocaml/typing/tast_mapper.ml index 40b70425734..886b12899e2 100644 --- a/ocaml/typing/tast_mapper.ml +++ b/ocaml/typing/tast_mapper.ml @@ -37,6 +37,7 @@ type mapper = expr: mapper -> expression -> expression; extension_constructor: mapper -> extension_constructor -> extension_constructor; + layout_annotation: mapper -> const_layout -> const_layout; module_binding: mapper -> module_binding -> module_binding; module_coercion: mapper -> module_coercion -> module_coercion; module_declaration: mapper -> module_declaration -> module_declaration; @@ -201,11 +202,14 @@ let type_exception sub x = in {x with tyexn_constructor} +let var_layout sub (v, l) = v, Option.map (sub.layout_annotation sub) l + let extension_constructor sub x = let ext_kind = match x.ext_kind with Text_decl(v, ctl, cto) -> - Text_decl(v, constructor_args sub ctl, Option.map (sub.typ sub) cto) + Text_decl(List.map (var_layout sub) v, + constructor_args sub ctl, Option.map (sub.typ sub) cto) | Text_rebind _ as d -> d in {x with ext_kind} @@ -707,10 +711,12 @@ let typ sub x = Ttyp_alias (sub.typ sub ct, s) | Ttyp_variant (list, closed, labels) -> Ttyp_variant (List.map (sub.row_field sub) list, closed, labels) - | Ttyp_poly (sl, ct) -> - Ttyp_poly (sl, sub.typ sub ct) + | Ttyp_poly (vars, ct) -> + Ttyp_poly (List.map (var_layout sub) vars, sub.typ sub ct) | Ttyp_package pack -> Ttyp_package (sub.package_type sub pack) + | Ttyp_layout (ct, l) -> + Ttyp_layout (sub.typ sub ct, sub.layout_annotation sub l) in {x with ctyp_desc; ctyp_env} @@ -778,6 +784,8 @@ let value_binding sub x = let env _sub x = x +let layout_annotation _sub l = l + let default = { binding_op; @@ -794,6 +802,7 @@ let default = env; expr; extension_constructor; + layout_annotation; module_binding; module_coercion; module_declaration; diff --git a/ocaml/typing/tast_mapper.mli b/ocaml/typing/tast_mapper.mli index ea6543d04fd..a665e7b6bb6 100644 --- a/ocaml/typing/tast_mapper.mli +++ b/ocaml/typing/tast_mapper.mli @@ -36,6 +36,7 @@ type mapper = expr: mapper -> expression -> expression; extension_constructor: mapper -> extension_constructor -> extension_constructor; + layout_annotation: mapper -> const_layout -> const_layout; module_binding: mapper -> module_binding -> module_binding; module_coercion: mapper -> module_coercion -> module_coercion; module_declaration: mapper -> module_declaration -> module_declaration; diff --git a/ocaml/typing/typeclass.ml b/ocaml/typing/typeclass.ml index d3c4d02f4cc..992ed71214b 100644 --- a/ocaml/typing/typeclass.ml +++ b/ocaml/typing/typeclass.ml @@ -320,7 +320,7 @@ let rec class_type_field env sign self_scope ctf = (fun () -> let sty = Ast_helper.Typ.force_poly sty in match sty.ptyp_desc, priv with - | Ptyp_poly ([],sty'), Public -> + | Ptyp_poly ([],sty',[]), Public -> let expected_ty = Ctype.newvar (Layout.value ~why:Object_field) in @@ -1602,6 +1602,8 @@ let class_infos define_class kind let ci_params = let make_param (sty, v) = try + (* CR layouts: That should probably allow [any], not just + [value] *) (transl_type_param env sty (Layout.value ~why:Class_argument), v) with Already_bound -> raise(Error(sty.ptyp_loc, env, Repeated_parameter)) diff --git a/ocaml/typing/typecore.ml b/ocaml/typing/typecore.ml index fc1a2e2aaa3..995a7cab697 100644 --- a/ocaml/typing/typecore.ml +++ b/ocaml/typing/typecore.ml @@ -3420,7 +3420,7 @@ let is_local_returning_expr e = false, e.pexp_loc | Pexp_let(_, _, e) | Pexp_sequence(_, e) | Pexp_constraint(e, _) | Pexp_coerce(e, _, _) | Pexp_letmodule(_, _, e) | Pexp_letexception(_, e) - | Pexp_poly(e, _) | Pexp_newtype(_, e) | Pexp_open(_, e) + | Pexp_poly(e, _) | Pexp_newtype(_, e, _) | Pexp_open(_, e) | Pexp_ifthenelse(_, e, None)-> loop e | Pexp_ifthenelse(_, e1, Some e2)-> combine (loop e1) (loop e2) @@ -3446,7 +3446,7 @@ let rec is_an_uncurried_function e = match e.pexp_desc, e.pexp_attributes with | (Pexp_fun _ | Pexp_function _), _ -> true | Pexp_poly (e, _), _ - | Pexp_newtype (_, e), _ + | Pexp_newtype (_, e, _), _ | Pexp_coerce (e, _, _), _ | Pexp_constraint (e, _), _ -> is_an_uncurried_function e | Pexp_let (Nonrecursive, _, e), @@ -5343,7 +5343,7 @@ and type_expect_ in re { exp with exp_extra = (Texp_poly cty, loc, sexp.pexp_attributes) :: exp.exp_extra } - | Pexp_newtype({txt=name}, sbody) -> + | Pexp_newtype({txt=name}, sbody, lay) -> let layout = match Layout.of_attributes_default ~legacy_immediate:false ~reason:(Newtype_declaration name) @@ -5390,7 +5390,8 @@ and type_expect_ any new extra node in the typed AST. *) rue { body with exp_loc = loc; exp_type = ety; exp_extra = - (Texp_newtype name, loc, sexp.pexp_attributes) :: body.exp_extra } + (Texp_newtype (name, Option.map Location.get_txt lay), + loc, sexp.pexp_attributes) :: body.exp_extra } | Pexp_pack m -> let (p, fl) = match get_desc (Ctype.expand_head env (instance ty_expected)) with @@ -6872,7 +6873,7 @@ and type_let | None -> match sexp.pexp_desc with | Pexp_fun _ | Pexp_function _ -> true | Pexp_constraint (e, _) - | Pexp_newtype (_, e) + | Pexp_newtype (_, e, _) | Pexp_apply ({ pexp_desc = Pexp_extension( {txt = "extension.local"|"ocaml.local"|"local"}, PStr []) }, diff --git a/ocaml/typing/typedecl.ml b/ocaml/typing/typedecl.ml index a85f35f39d5..b7ddcf8ba6e 100644 --- a/ocaml/typing/typedecl.ml +++ b/ocaml/typing/typedecl.ml @@ -63,8 +63,8 @@ type error = | Multiple_native_repr_attributes | Cannot_unbox_or_untag_type of native_repr_kind | Deep_unbox_or_untag_attribute of native_repr_kind - | Layout_coherence_check of type_expr * Layout.Violation.t - | Layout_update_check of Path.t * Layout.Violation.t + | Layout_of_type of type_expr * Layout.Violation.t + | Layout_of_path of Path.t * Layout.Violation.t | Layout_sort of { lloc : layout_sort_loc ; typ : type_expr @@ -445,7 +445,8 @@ let transl_constructor_arguments env univars closed = function type declaration to compute accurate layouts in the presence of recursively defined types. It is updated later by [update_constructor_arguments_layouts] *) -let make_constructor env loc type_path type_params svars sargs sret_type = +let make_constructor + env loc ~cstr_path ~type_path type_params svars slays sargs sret_type = match sret_type with | None -> let args, targs = @@ -461,7 +462,9 @@ let make_constructor env loc type_path type_params svars sargs sret_type = | [] -> None, false | vs -> Ctype.begin_def(); - Some (TyVarEnv.make_poly_univars (List.map (fun v -> v.txt) vs)), true + Some (TyVarEnv.make_poly_univars + ~reason:(fun v -> Constructor_type_parameter (cstr_path, v)) + vs slays), true in let args, targs = transl_constructor_arguments env univars closed sargs @@ -682,13 +685,15 @@ let transl_declaration env sdecl (id, uid) = let make_cstr scstr = let name = Ident.create_local scstr.pcd_name.txt in let targs, tret_type, args, ret_type = - make_constructor env scstr.pcd_loc (Path.Pident id) params - scstr.pcd_vars scstr.pcd_args scstr.pcd_res + make_constructor env scstr.pcd_loc + ~cstr_path:(Path.Pident name) ~type_path:(Path.Pident id) params + scstr.pcd_vars scstr.pcd_layouts scstr.pcd_args scstr.pcd_res in + let mk_var_layout sv sl = sv.txt, Option.map Location.get_txt sl in let tcstr = { cd_id = name; cd_name = scstr.pcd_name; - cd_vars = scstr.pcd_vars; + cd_vars = List.map2 mk_var_layout scstr.pcd_vars scstr.pcd_layouts; cd_args = targs; cd_res = tret_type; cd_loc = scstr.pcd_loc; @@ -843,9 +848,14 @@ let rec check_constraints_rec env loc visited ty = *already* violate the constraints -- we need to report a problem with the unexpanded types, or we get errors that talk about the same type twice. This is generally true for constraint errors. *) - try Ctype.matches ~expand_error_trace:false env ty ty' - with Ctype.Matches_failure (env, err) -> + match Ctype.matches ~expand_error_trace:false env ty ty' with + | Unification_failure err -> raise (Error(loc, Constraint_failed (env, err))) + | Layout_mismatch { original_layout; inferred_layout } -> + raise (Error(loc, Layout_of_type (ty, + (Layout.Violation.of_ (Not_a_sublayout + (original_layout, inferred_layout)))))) + | All_good -> () end; List.iter (check_constraints_rec env loc visited) args | Tpoly (ty, tl) -> @@ -995,7 +1005,7 @@ let check_coherence env loc dpath decl = begin match Layout.sub_with_history layout' decl.type_layout with | Ok layout' -> { decl with type_layout = layout' } | Error v -> - raise (Error (loc, Layout_coherence_check (ty,v))) + raise (Error (loc, Layout_of_type (ty,v))) end | { type_manifest = None } -> decl @@ -1219,7 +1229,7 @@ let update_decl_layout env dpath decl = if new_layout != decl.type_layout then begin match Layout.sub new_layout decl.type_layout with | Ok () -> () - | Error err -> raise(Error(decl.type_loc, Layout_update_check (dpath,err))) + | Error err -> raise(Error(decl.type_loc, Layout_of_path (dpath,err))) end; new_decl @@ -1606,10 +1616,11 @@ let transl_extension_constructor ~scope env type_path type_params let id = Ident.create_scoped ~scope sext.pext_name.txt in let args, arg_layouts, constant, ret_type, kind = match sext.pext_kind with - Pext_decl(svars, sargs, sret_type) -> + Pext_decl(svars, sargs, sret_type, slays) -> let targs, tret_type, args, ret_type = - make_constructor env sext.pext_loc type_path typext_params - svars sargs sret_type + make_constructor env sext.pext_loc + ~cstr_path:(Pident id) ~type_path typext_params + svars slays sargs sret_type in let num_args = match targs with @@ -1620,7 +1631,10 @@ let transl_extension_constructor ~scope env type_path type_params let args, constant = update_constructor_arguments_layouts env sext.pext_loc args layouts in - args, layouts, constant, ret_type, Text_decl(svars, targs, tret_type) + let strip_locs sv sl = sv.txt, Option.map Location.get_txt sl in + let vars = List.map2 strip_locs svars slays in + args, layouts, constant, ret_type, + Text_decl(vars, targs, tret_type) | Pext_rebind lid -> let usage : Env.constructor_usage = if priv = Public then Env.Exported else Env.Exported_private @@ -1974,7 +1988,7 @@ let rec parse_native_repr_attributes env core_type ty rmode ~global_repr = parse_native_repr_attributes env ct2 t2 (prim_const_mode mret) ~global_repr in ((mode,repr_arg) :: repr_args, repr_res) - | (Ptyp_poly (_, t) | Ptyp_alias (t, _)), _, _ -> + | (Ptyp_poly (_, t, _) | Ptyp_alias (t, _)), _, _ -> parse_native_repr_attributes env t ty rmode ~global_repr | _ -> let rmode = @@ -2336,11 +2350,6 @@ let explain_unbound_single ppf tv ty = "case" (fun (lab,_) -> "`" ^ lab ^ " of ") | _ -> trivial ty - -let tys_of_constr_args = function - | Types.Cstr_tuple tl -> List.map fst tl - | Types.Cstr_record lbls -> List.map (fun l -> l.Types.ld_type) lbls - let report_error ppf = function | Repeated_parameter -> fprintf ppf "A type parameter occurs several times" @@ -2540,12 +2549,12 @@ let report_error ppf = function a direct argument or result of the primitive,@ \ it should not occur deeply into its type.@]" (match kind with Unboxed -> "@unboxed" | Untagged -> "@untagged") - | Layout_update_check (dpath,v) -> + | Layout_of_path (dpath,v) -> (* the type is always printed just above, so print out just the head of the path instead of something like [t/3] *) let offender ppf = fprintf ppf "Type %s" (Ident.name (Path.head dpath)) in Layout.Violation.report_with_offender ~offender ppf v - | Layout_coherence_check (ty,v) -> + | Layout_of_type (ty,v) -> let offender ppf = fprintf ppf "Type %a" Printtyp.type_expr ty in Layout.Violation.report_with_offender ~offender ppf v | Layout_sort {lloc; typ; err} -> diff --git a/ocaml/typing/typedecl.mli b/ocaml/typing/typedecl.mli index 6bbb84da6f0..9ca2bcf0669 100644 --- a/ocaml/typing/typedecl.mli +++ b/ocaml/typing/typedecl.mli @@ -102,8 +102,8 @@ type error = | Multiple_native_repr_attributes | Cannot_unbox_or_untag_type of native_repr_kind | Deep_unbox_or_untag_attribute of native_repr_kind - | Layout_coherence_check of type_expr * Layout.Violation.t - | Layout_update_check of Path.t * Layout.Violation.t + | Layout_of_type of type_expr * Layout.Violation.t + | Layout_of_path of Path.t * Layout.Violation.t | Layout_sort of { lloc : layout_sort_loc ; typ : type_expr diff --git a/ocaml/typing/typedtree.ml b/ocaml/typing/typedtree.ml index 388fb496cdd..ac3bad58326 100644 --- a/ocaml/typing/typedtree.ml +++ b/ocaml/typing/typedtree.ml @@ -96,7 +96,7 @@ and exp_extra = | Texp_constraint of core_type | Texp_coerce of core_type option * core_type | Texp_poly of core_type option - | Texp_newtype of string + | Texp_newtype of string * const_layout option and fun_curry_state = @@ -531,8 +531,9 @@ and core_type_desc = | Ttyp_class of Path.t * Longident.t loc * core_type list | Ttyp_alias of core_type * string | Ttyp_variant of row_field list * closed_flag * label list option - | Ttyp_poly of string list * core_type + | Ttyp_poly of (string * const_layout option) list * core_type | Ttyp_package of package_type + | Ttyp_layout of core_type * const_layout and package_type = { pack_path : Path.t; @@ -582,6 +583,7 @@ and type_declaration = typ_manifest: core_type option; typ_loc: Location.t; typ_attributes: attribute list; + (* XXX layouts RAE: should that be a const_layout? *) typ_layout_annotation: layout option; } @@ -606,7 +608,7 @@ and constructor_declaration = { cd_id: Ident.t; cd_name: string loc; - cd_vars: string loc list; + cd_vars: (string * const_layout option) list; cd_args: constructor_arguments; cd_res: core_type option; cd_loc: Location.t; @@ -646,7 +648,9 @@ and extension_constructor = } and extension_constructor_kind = - Text_decl of string loc list * constructor_arguments * core_type option + Text_decl of (string * const_layout option) list * + constructor_arguments * + core_type option | Text_rebind of Path.t * Longident.t loc and class_type = diff --git a/ocaml/typing/typedtree.mli b/ocaml/typing/typedtree.mli index e0508129540..bc634decacf 100644 --- a/ocaml/typing/typedtree.mli +++ b/ocaml/typing/typedtree.mli @@ -171,8 +171,8 @@ and exp_extra = *) | Texp_poly of core_type option (** Used for method bodies. *) - | Texp_newtype of string - (** fun (type t) -> *) + | Texp_newtype of string * const_layout option + (** fun (type t : immediate) -> *) and fun_curry_state = | More_args of { partial_mode : Types.alloc_mode } @@ -730,8 +730,15 @@ and core_type_desc = | Ttyp_class of Path.t * Longident.t loc * core_type list | Ttyp_alias of core_type * string | Ttyp_variant of row_field list * closed_flag * label list option - | Ttyp_poly of string list * core_type + | Ttyp_poly of (string * Asttypes.const_layout option) list * core_type | Ttyp_package of package_type + | Ttyp_layout of core_type * Asttypes.const_layout + (* The expression level equivalent of Ttyp_layout is Pexp_constraint, + which appears only as an exp_extra. In types, though, we store + it right in the core_type_desc. This is because, post-type-checking, + we don't analyze types in the same way we do expressions, for which + keeping inessential information (like the user-written type constraint) + off to the side is beneficial. *) and package_type = { pack_path : Path.t; @@ -806,7 +813,7 @@ and constructor_declaration = { cd_id: Ident.t; cd_name: string loc; - cd_vars: string loc list; + cd_vars: (string * const_layout option) list; cd_args: constructor_arguments; cd_res: core_type option; cd_loc: Location.t; @@ -846,7 +853,9 @@ and extension_constructor = } and extension_constructor_kind = - Text_decl of string loc list * constructor_arguments * core_type option + Text_decl of (string * const_layout option) list * + constructor_arguments * + core_type option | Text_rebind of Path.t * Longident.t loc and class_type = diff --git a/ocaml/typing/types.ml b/ocaml/typing/types.ml index 20b8265d738..b722f453da6 100644 --- a/ocaml/typing/types.ml +++ b/ocaml/typing/types.ml @@ -295,6 +295,10 @@ and type_transparence = | Type_new (* "new" type *) | Type_private (* private type *) +let tys_of_constr_args = function + | Cstr_tuple tl -> List.map fst tl + | Cstr_record lbls -> List.map (fun l -> l.ld_type) lbls + (* Type expressions for the class language *) type class_type = diff --git a/ocaml/typing/types.mli b/ocaml/typing/types.mli index 8128337d97e..1e363514302 100644 --- a/ocaml/typing/types.mli +++ b/ocaml/typing/types.mli @@ -577,6 +577,8 @@ and constructor_arguments = | Cstr_tuple of (type_expr * global_flag) list | Cstr_record of label_declaration list +val tys_of_constr_args : constructor_arguments -> type_expr list + val decl_is_abstract : type_declaration -> bool (* Returns the inner type, if unboxed. *) diff --git a/ocaml/typing/typetexp.ml b/ocaml/typing/typetexp.ml index ac5c42774b7..6bafd70bbde 100644 --- a/ocaml/typing/typetexp.ml +++ b/ocaml/typing/typetexp.ml @@ -30,6 +30,19 @@ exception Already_bound type value_loc = Fun_arg | Fun_ret | Tuple | Poly_variant | Package_constraint | Object_field +type cannot_quantify_reason = + | Unified of type_expr + | Univar + | Scope_escape + +(* a description of the layout on an explicitly quantified universal + variable, containing whether the layout was a default + (e.g. [let f : 'a. 'a -> 'a = ...]) or explicit + (e.g. [let f : ('a : immediate). ...]) and what the layout was; + it is original as compared to the inferred layout after processing + the body of the type *) +type layout_info = { original_layout : layout; defaulted : bool } + type error = | Unbound_type_variable of string * string list | No_type_wildcards @@ -46,7 +59,9 @@ type error = | Not_a_variant of type_expr | Variant_tags of string * string | Invalid_variable_name of string - | Cannot_quantify of string * type_expr + | Cannot_quantify of string * cannot_quantify_reason + | Bad_univar_layout of + { name : string; layout_info : layout_info; inferred_layout : layout } | Multiple_constraints_on_type of Longident.t | Method_mismatch of string * type_expr * type_expr | Opened_object of Path.t option @@ -55,6 +70,7 @@ type error = | Polymorphic_optional_param | Non_value of {vloc : value_loc; typ : type_expr; err : Layout.Violation.t} + | Bad_layout_annot of type_expr * Layout.Violation.t exception Error of Location.t * Env.t * error exception Error_forward of Location.error @@ -75,7 +91,9 @@ module TyVarEnv : sig val with_univars : poly_univars -> (unit -> 'a) -> 'a (* evaluate with a locally extended set of univars *) - val make_poly_univars : string list -> poly_univars + val make_poly_univars : + reason:(string -> Layout.annotation_context) -> + string Location.loc list -> type_vars_layouts -> poly_univars (* see mli file *) val check_poly_univars : Env.t -> Location.t -> poly_univars -> type_expr list @@ -142,16 +160,6 @@ end = struct let used_variables = ref (TyVarMap.empty : (type_expr * Location.t) TyVarMap.t) - (* These are variables we expect to become univars (they were introduced with - e.g. ['a .]), but we need to make sure they don't unify first. Why not - just birth them as univars? Because they might successfully unify with a - row variable in the ['a. < m : ty; .. > as 'a] idiom. They are like the - [used_variables], but will not be globalized in [globalize_used_variables]. - *) - let univars = ref ([] : (string * type_expr) list) - let assert_not_generic uvs = - assert (List.for_all (fun (_name, v) -> not_generic v) uvs) - (* These are variables that will become univars when we're done with the current type. Used to force free variables in method types to become univars. @@ -192,7 +200,24 @@ end = struct TyVarMap.fold add_name !type_variables [] (*****) - type poly_univars = (string * type_expr) list + type poly_univars = (string * type_expr * layout_info) list + + (* These are variables we expect to become univars (they were introduced with + e.g. ['a .]), but we need to make sure they don't unify first. Why not + just birth them as univars? Because they might successfully unify with a + row variable in the ['a. < m : ty; .. > as 'a] idiom. They are like the + [used_variables], but will not be globalized in [globalize_used_variables]. + *) + let univars = ref ([] : poly_univars) + let assert_not_generic uvs = + assert (List.for_all (fun (_name, v, _lay) -> not_generic v) uvs) + + let rec find_poly_univars name = function + | [] -> raise Not_found + | (n, t, _) :: rest -> + if String.equal name n + then t + else find_poly_univars name rest let with_univars new_ones f = assert_not_generic new_ones; @@ -202,18 +227,40 @@ end = struct f ~finally:(fun () -> univars := old_univars) - let make_poly_univars vars = - List.map (fun name -> name, newvar ~name (Layout.value ~why:Univar)) vars + let make_poly_univars ~reason vars layouts = + let mk_pair v l = + let name = v.txt in + let original_layout = Layout.of_annotation_option_default l + ~default:(Layout.value ~why:Univar) + ~reason:(reason name) + in + let layout_info = { original_layout; defaulted = Option.is_none l } in + name, newvar ~name original_layout, layout_info + in + List.map2 mk_pair vars layouts let check_poly_univars env loc vars = - vars |> List.iter (fun (_, v) -> generalize v); - vars |> List.map (fun (name, ty1) -> + vars |> List.iter (fun (_, v, _) -> generalize v); + vars |> List.map (fun (name, ty1, + ({ original_layout; _ } as layout_info)) -> let v = Btype.proxy ty1 in + let cant_quantify reason = + raise (Error (loc, env, Cannot_quantify(name, reason))) + in begin match get_desc v with - | Tvar { name; layout } when get_level v = Btype.generic_level -> + | Tvar { layout } when not (Layout.equate layout original_layout) -> + let reason = + Bad_univar_layout { name; layout_info; inferred_layout = layout } + in + raise (Error (loc, env, reason)) + | Tvar _ when get_level v <> Btype.generic_level -> + cant_quantify Scope_escape + | Tvar { name; layout } -> set_type_desc v (Tunivar { name; layout }) + | Tunivar _ -> + cant_quantify Univar | _ -> - raise (Error (loc, env, Cannot_quantify(name, v))) + cant_quantify (Unified v) end; v) @@ -235,7 +282,7 @@ end = struct (* throws Not_found if the variable is not in scope *) let lookup_local name = try - List.assoc name !univars + find_poly_univars name !univars with Not_found -> instance (fst (TyVarMap.find name !used_variables)) (* This call to instance might be redundant; all variables @@ -360,6 +407,9 @@ let newvar ?name layout = let valid_tyvar_name name = name <> "" && name.[0] <> '_' +let make_typed_univars vars layouts : (string * Layout.const option) list = + List.map2 (fun v l -> v.txt, Option.map Location.get_txt l) vars layouts + (* Here we take a layout argument and ignore any layout annotations in the styp. The expectation is most callers will get the layout from the annotation, but in some cases (objects) we don't want to support those annotations, so it @@ -777,12 +827,12 @@ and transl_type_aux env policy mode styp = in let ty = newty (Tvariant (make_row more)) in ctyp (Ttyp_variant (tfields, closed, present)) ty - | Ptyp_poly(vars, st) -> - (* CR layouts v1.5: probably some work to do here when we add layout - annotations on type parameters *) - let vars = List.map (fun v -> v.txt) vars in + | Ptyp_poly(vars, st, layouts) -> + let typed_vars = make_typed_univars vars layouts in begin_def(); - let new_univars = TyVarEnv.make_poly_univars vars in + let new_univars = + TyVarEnv.make_poly_univars ~reason:(fun v -> Univar v) vars layouts + in let cty = TyVarEnv.with_univars new_univars begin fun () -> transl_type env policy mode st end in @@ -793,7 +843,7 @@ and transl_type_aux env policy mode styp = let ty_list = List.filter (fun v -> deep_occur v ty) ty_list in let ty' = Btype.newgenty (Tpoly(ty, ty_list)) in unify_var env (newvar (Layout.any ~why:Dummy_layout)) ty'; - ctyp (Ttyp_poly (vars, cty)) ty' + ctyp (Ttyp_poly (typed_vars, cty)) ty' | Ptyp_package (p, l) -> (* CR layouts: right now we're doing a real gross hack where we demand everything in a package type with constraint be value. @@ -831,6 +881,20 @@ and transl_type_aux env policy mode styp = }) ty | Ptyp_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) + | Ptyp_layout (inner_type, layout_annot) -> + let cty = transl_type env policy mode inner_type in + let cty_expr = cty.ctyp_type in + let layout = + Layout.of_annotation ~reason:(Type_variable "XXX layouts") + layout_annot + in + begin match constrain_type_layout env cty_expr layout with + | Ok _ -> () + | Error err -> + raise (Error(styp.ptyp_loc, env, + Bad_layout_annot(cty_expr, err))) + end; + ctyp (Ttyp_layout (cty, layout_annot.txt)) cty.ctyp_type and transl_type_aux_jst _env _policy _mode : Jane_syntax.Core_type.t -> _ = function @@ -983,15 +1047,17 @@ let transl_simple_type_delayed env mode styp = let transl_type_scheme env styp = TyVarEnv.reset (); match styp.ptyp_desc with - | Ptyp_poly (vars, st) -> + | Ptyp_poly (vars, st, layouts) -> + let typed_vars = make_typed_univars vars layouts in begin_def(); - let vars = List.map (fun v -> v.txt) vars in - let univars = TyVarEnv.make_poly_univars vars in + let univars = + TyVarEnv.make_poly_univars ~reason:(fun v -> Univar v) vars layouts + in let typ = transl_simple_type env ~univars ~closed:true Alloc_mode.Global st in end_def(); generalize typ.ctyp_type; let _ = TyVarEnv.instance_poly_univars env styp.ptyp_loc univars in - { ctyp_desc = Ttyp_poly (vars, typ); + { ctyp_desc = Ttyp_poly (typed_vars, typ); ctyp_type = typ.ctyp_type; ctyp_env = env; ctyp_loc = styp.ptyp_loc; @@ -1078,17 +1144,27 @@ let report_error env ppf = function lab1 lab2 "Change one of them." | Invalid_variable_name name -> fprintf ppf "The type variable name %s is not allowed in programs" name - | Cannot_quantify (name, v) -> + | Cannot_quantify (name, reason) -> fprintf ppf "@[The universal type variable %a cannot be generalized:@ " Pprintast.tyvar name; - if Btype.is_Tvar v then - fprintf ppf "it escapes its scope" - else if Btype.is_Tunivar v then + begin match reason with + | Unified v -> + fprintf ppf "it is bound to@ %a" Printtyp.type_expr v + | Univar -> fprintf ppf "it is already bound to another variable" - else - fprintf ppf "it is bound to@ %a" Printtyp.type_expr v; + | Scope_escape -> + fprintf ppf "it escapes its scope" + end; fprintf ppf ".@]"; + | Bad_univar_layout { name; layout_info; inferred_layout } -> + fprintf ppf + "@[The universal type variable %a was %s to have@ \ + layout %a, but was inferred to have layout %a.@]" + Pprintast.tyvar name + (if layout_info.defaulted then "defaulted" else "declared") + Layout.format layout_info.original_layout + Layout.format inferred_layout | Multiple_constraints_on_type s -> fprintf ppf "Multiple constraints for type %a" longident s | Method_mismatch (l, ty, ty') -> @@ -1123,6 +1199,10 @@ let report_error env ppf = function fprintf ppf "@[%s types must have layout value.@ \ %a@]" s (Layout.Violation.report_with_offender ~offender:(fun ppf -> Printtyp.type_expr ppf typ)) err + | Bad_layout_annot(ty, violation) -> + fprintf ppf "@[Bad layout annotation:@ %a@]" + (Layout.Violation.report_with_offender + ~offender:(fun ppf -> Printtyp.type_expr ppf ty)) violation let () = Location.register_error_of_exn diff --git a/ocaml/typing/typetexp.mli b/ocaml/typing/typetexp.mli index 5c354e8a63a..222e822c0f3 100644 --- a/ocaml/typing/typetexp.mli +++ b/ocaml/typing/typetexp.mli @@ -29,7 +29,11 @@ module TyVarEnv : sig (** Evaluate in a narrowed type-variable scope *) type poly_univars - val make_poly_univars : string list -> poly_univars + val make_poly_univars : + reason:(string -> Layout.annotation_context) -> + string Location.loc list -> + Asttypes.layout_annotation option list -> + poly_univars (** remember that a list of strings connotes univars; this must always be paired with a [check_poly_univars]. *) @@ -71,6 +75,8 @@ exception Already_bound type value_loc = Fun_arg | Fun_ret | Tuple | Poly_variant | Package_constraint | Object_field +type cannot_quantify_reason +type layout_info type error = | Unbound_type_variable of string * string list | No_type_wildcards @@ -87,7 +93,9 @@ type error = | Not_a_variant of type_expr | Variant_tags of string * string | Invalid_variable_name of string - | Cannot_quantify of string * type_expr + | Cannot_quantify of string * cannot_quantify_reason + | Bad_univar_layout of + { name : string; layout_info : layout_info; inferred_layout : layout } | Multiple_constraints_on_type of Longident.t | Method_mismatch of string * type_expr * type_expr | Opened_object of Path.t option @@ -96,6 +104,7 @@ type error = | Polymorphic_optional_param | Non_value of {vloc : value_loc; typ : type_expr; err : Layout.Violation.t} + | Bad_layout_annot of type_expr * Layout.Violation.t exception Error of Location.t * Env.t * error diff --git a/ocaml/typing/untypeast.ml b/ocaml/typing/untypeast.ml index abca6fc05f1..8a22a3e6bac 100644 --- a/ocaml/typing/untypeast.ml +++ b/ocaml/typing/untypeast.ml @@ -259,8 +259,10 @@ let constructor_arguments sub = function let constructor_declaration sub cd = let loc = sub.location sub cd.cd_loc in let attrs = sub.attributes sub cd.cd_attributes in + let vars, layouts = List.split cd.cd_vars in + let add_loc x = mkloc x loc in Type.constructor ~loc ~attrs - ~vars:cd.cd_vars + ~vars:(List.map add_loc vars, List.map (Option.map add_loc) layouts) ~args:(constructor_arguments sub cd.cd_args) ?res:(Option.map (sub.typ sub) cd.cd_res) (map_loc sub cd.cd_name) @@ -288,13 +290,15 @@ let type_exception sub tyexn = let extension_constructor sub ext = let loc = sub.location sub ext.ext_loc in + let add_loc x = mkloc x loc in let attrs = sub.attributes sub ext.ext_attributes in Te.constructor ~loc ~attrs (map_loc sub ext.ext_name) (match ext.ext_kind with | Text_decl (vs, args, ret) -> - Pext_decl (vs, constructor_arguments sub args, - Option.map (sub.typ sub) ret) + let vs, ls = List.split vs in + Pext_decl (List.map add_loc vs, constructor_arguments sub args, + Option.map (sub.typ sub) ret, List.map (Option.map add_loc) ls) | Text_rebind (_p, lid) -> Pext_rebind (map_loc sub lid) ) @@ -384,6 +388,7 @@ let pattern : type k . _ -> k T.general_pattern -> _ = fun sub pat -> let exp_extra sub (extra, loc, attrs) sexp = let loc = sub.location sub loc in let attrs = sub.attributes sub attrs in + let add_loc x = mkloc x loc in let desc = match extra with Texp_coerce (cty1, cty2) -> @@ -393,7 +398,8 @@ let exp_extra sub (extra, loc, attrs) sexp = | Texp_constraint cty -> Pexp_constraint (sexp, sub.typ sub cty) | Texp_poly cto -> Pexp_poly (sexp, Option.map (sub.typ sub) cto) - | Texp_newtype s -> Pexp_newtype (mkloc s loc, sexp) + | Texp_newtype (s, lay) -> + Pexp_newtype (add_loc s, sexp, Option.map add_loc lay) in Exp.mk ~loc ~attrs desc @@ -884,9 +890,14 @@ let core_type sub ct = | Ttyp_variant (list, bool, labels) -> Ptyp_variant (List.map (sub.row_field sub) list, bool, labels) | Ttyp_poly (list, ct) -> - let list = List.map (fun v -> mkloc v loc) list in - Ptyp_poly (list, sub.typ sub ct) + let vars, layouts = List.split list in + let add_loc x = mkloc x loc in + let vars = List.map add_loc vars in + let layouts = List.map (fun lay -> Option.map add_loc lay) layouts in + Ptyp_poly (vars, sub.typ sub ct, layouts) | Ttyp_package pack -> Ptyp_package (sub.package_type sub pack) + | Ttyp_layout (ct, l) -> + Ptyp_layout (sub.typ sub ct, mkloc l loc) in Typ.mk ~loc ~attrs desc diff --git a/printer/printast_with_mappings.ml b/printer/printast_with_mappings.ml index a7853f044e2..9ca3e6c2450 100644 --- a/printer/printast_with_mappings.ml +++ b/printer/printast_with_mappings.ml @@ -151,6 +151,14 @@ let arg_label i ppf = function let typevars ppf vs = List.iter (fun x -> fprintf ppf " %a" Pprintast.tyvar x.txt) vs +let layout_annotation_option ppf = function + | None -> fprintf ppf "--" + | Some lay -> fprintf ppf "%s" (Layouts.Layout.string_of_const lay.txt) + +let type_vars_layouts ppf vars_layouts = + List.iter (fun lay -> fprintf ppf " %a" layout_annotation_option lay) + vars_layouts + let rec core_type i ppf x = with_location_mapping ~loc:x.ptyp_loc ppf (fun () -> line i ppf "core_type %a\n" fmt_location x.ptyp_loc; @@ -193,12 +201,13 @@ let rec core_type i ppf x = | Ptyp_alias (ct, s) -> line i ppf "Ptyp_alias \"%s\"\n" s; core_type i ppf ct; - | Ptyp_poly (sl, ct) -> + | Ptyp_poly (sl, ct, lays) -> line i ppf "Ptyp_poly%a\n" (fun ppf -> List.iter (fun x -> fprintf ppf " %a" Pprintast.tyvar x.txt) ) sl; + line i ppf "layouts%a\n" type_vars_layouts lays; core_type i ppf ct; | Ptyp_package (s, l) -> line i ppf "Ptyp_package %a\n" fmt_longident_loc s; @@ -206,6 +215,10 @@ let rec core_type i ppf x = | Ptyp_extension (s, arg) -> line i ppf "Ptyp_extension \"%s\"\n" s.txt; payload i ppf arg + | Ptyp_layout (ty, l) -> + line i ppf "Ptyp_layout\n"; + core_type i ppf ty; + fprintf ppf "%s" (Layouts.Layout.string_of_const l.txt) ) and package_with i ppf (s, t) = @@ -389,8 +402,9 @@ and expression i ppf x = | Pexp_object s -> line i ppf "Pexp_object\n"; class_structure i ppf s - | Pexp_newtype (s, e) -> + | Pexp_newtype (s, e, lay) -> line i ppf "Pexp_newtype \"%s\"\n" s.txt; + layout_annotation_option ppf lay; expression i ppf e | Pexp_pack me -> line i ppf "Pexp_pack\n"; @@ -505,9 +519,11 @@ and extension_constructor i ppf x = and extension_constructor_kind i ppf x = match x with - Pext_decl(v, a, r) -> + Pext_decl(v, a, r, l) -> line i ppf "Pext_decl\n"; - if v <> [] then line (i+1) ppf "vars%a\n" typevars v; + if v <> [] then + (line (i+1) ppf "vars%a\n" typevars v; + line (i+1) ppf "layouts%a\n" type_vars_layouts l); constructor_arguments (i+1) ppf a; option (i+1) core_type ppf r; | Pext_rebind li ->