From 90aeb998d88488b4402e7b211b064056d175fcbb Mon Sep 17 00:00:00 2001 From: Coccinelle Date: Sun, 3 Oct 2010 14:03:55 +0200 Subject: [PATCH] Release coccinelle-0.2.3rc2 Release Candidate 2 for coccinelle-0.2.3 --- Makefile | 99 +- Makefile.dev | 2 +- changes.txt | 15 + cocci.ml | 105 +- cocci.mli | 30 +- commitmsg | 4 +- commons/Makefile | 50 +- commons/sexp_common.ml | 2 +- configure | 31 + ctl/Makefile | 4 +- ctl/ast_ctl.ml | 26 +- ctl/ctl_engine.ml | 26 +- ctl/ctl_engine.mli | 26 +- ctl/flag_ctl.ml | 26 +- ctl/pretty_print_ctl.ml | 26 +- ctl/pretty_print_ctl.mli | 26 +- ctl/test_ctl.ml | 26 +- ctl/wrapper_ctl.ml | 26 +- ctl/wrapper_ctl.mli | 26 +- demos/spp/test | 8 +- docs/Makefile | 16 +- docs/manual/cocci_syntax.tex | 56 + docs/manual/main_grammar.pdf | Bin 321422 -> 325745 bytes docs/manual/manual.pdf | Bin 424418 -> 428934 bytes docs/manual/options.pdf | Bin 133301 -> 133058 bytes docs/{spatch.1 => spatch.1.in} | 14 +- engine/Makefile | 4 +- engine/asttoctl.ml | 26 +- engine/asttoctl.mli | 26 +- engine/asttoctl2.ml | 33 +- engine/asttoctl2.mli | 26 +- engine/asttomember.ml | 26 +- engine/asttomember.mli | 26 +- engine/c_vs_c.ml | 26 +- engine/c_vs_c.mli | 26 +- engine/check_exhaustive_pattern.ml | 26 +- engine/check_reachability.ml | 26 +- engine/check_reachability.mli | 26 +- engine/cocci_vs_c.ml | 150 +- engine/cocci_vs_c.mli | 26 +- engine/ctlcocci_integration.ml | 26 +- engine/ctlcocci_integration.mli | 26 +- engine/ctltotex.ml | 26 +- engine/ctltotex.mli | 26 +- engine/flag_engine.ml | 26 +- engine/flag_matcher.ml | 26 +- engine/isomorphisms_c_c.ml | 26 +- engine/lib_engine.ml | 26 +- engine/lib_matcher_c.ml | 26 +- engine/lib_matcher_c.mli | 26 +- engine/main.ml | 26 +- engine/pattern_c.ml | 26 +- engine/pattern_c.mli | 26 +- engine/postprocess_transinfo.ml | 26 +- engine/postprocess_transinfo.mli | 26 +- engine/pretty_print_engine.ml | 26 +- engine/pretty_print_engine.mli | 26 +- engine/sgrep.ml | 26 +- engine/transformation_c.ml | 28 +- engine/transformation_c.mli | 26 +- env.sh | 2 +- flag_cocci.ml | 26 +- globals/Makefile | 4 +- globals/config.ml.in | 2 +- globals/flag.ml | 30 +- main.ml | 74 +- ocamlsexp/Makefile | 26 +- parsing_c/Makefile | 15 +- parsing_c/sexp_ast_c.ml | 1 + parsing_c/unparse_c.ml | 2 +- parsing_c/unparse_cocci.ml | 6 +- parsing_cocci/.depend | 5 +- parsing_cocci/Makefile | 13 +- parsing_cocci/adjacency.ml | 26 +- parsing_cocci/adjacency.mli | 26 +- parsing_cocci/adjust_pragmas.ml | 26 +- parsing_cocci/adjust_pragmas.mli | 26 +- parsing_cocci/arity.ml | 26 +- parsing_cocci/arity.mli | 26 +- parsing_cocci/ast0_cocci.ml | 26 +- parsing_cocci/ast0_cocci.mli | 26 +- parsing_cocci/ast0toast.ml | 57 +- parsing_cocci/ast0toast.mli | 26 +- parsing_cocci/ast_cocci.ml | 29 +- parsing_cocci/ast_cocci.mli | 29 +- parsing_cocci/check_meta.ml | 26 +- parsing_cocci/check_meta.mli | 26 +- parsing_cocci/comm_assoc.ml | 26 +- parsing_cocci/comm_assoc.mli | 26 +- parsing_cocci/compute_lines.ml | 26 +- parsing_cocci/compute_lines.mli | 26 +- parsing_cocci/context_neg.ml | 26 +- parsing_cocci/context_neg.mli | 26 +- parsing_cocci/data.ml | 26 +- parsing_cocci/data.mli | 26 +- parsing_cocci/disjdistr.ml | 30 +- parsing_cocci/disjdistr.mli | 26 +- parsing_cocci/flag_parsing_cocci.ml | 26 +- parsing_cocci/free_vars.ml | 26 +- parsing_cocci/free_vars.mli | 26 +- parsing_cocci/function_prototypes.ml | 26 +- parsing_cocci/function_prototypes.mli | 26 +- parsing_cocci/get_constants.ml | 26 +- parsing_cocci/get_constants.mli | 26 +- parsing_cocci/get_constants2.ml | 220 +- parsing_cocci/get_constants2.mli | 29 +- parsing_cocci/index.ml | 26 +- parsing_cocci/index.mli | 26 +- parsing_cocci/insert_plus.ml | 51 +- parsing_cocci/insert_plus.mli | 26 +- parsing_cocci/iso_compile.ml | 26 +- parsing_cocci/iso_compile.mli | 26 +- parsing_cocci/iso_pattern.ml | 28 +- parsing_cocci/iso_pattern.mli | 26 +- parsing_cocci/lexer_cocci.mll | 26 +- parsing_cocci/lexer_script.mll | 26 +- parsing_cocci/main.ml | 26 +- parsing_cocci/merge.ml | 26 +- parsing_cocci/merge.mli | 26 +- parsing_cocci/parse_aux.ml | 26 +- parsing_cocci/parse_cocci.ml | 38 +- parsing_cocci/parse_cocci.mli | 28 +- parsing_cocci/parser_cocci.mly | 26 +- parsing_cocci/parser_cocci_menhir.ml | 8022 +++++++++++++------------ parsing_cocci/parser_cocci_menhir.mly | 30 +- parsing_cocci/plus.ml | 26 +- parsing_cocci/plus.mli | 26 +- parsing_cocci/pretty_print_cocci.ml | 28 +- parsing_cocci/pretty_print_cocci.mli | 26 +- parsing_cocci/semantic_cocci.ml | 26 +- parsing_cocci/simple_assignments.ml | 26 +- parsing_cocci/simple_assignments.mli | 26 +- parsing_cocci/single_statement.ml | 26 +- parsing_cocci/single_statement.mli | 26 +- parsing_cocci/test.cocci | 4 +- parsing_cocci/test2.cocci | 4 +- parsing_cocci/test_exps.ml | 26 +- parsing_cocci/test_exps.mli | 26 +- parsing_cocci/top_level.ml | 26 +- parsing_cocci/top_level.mli | 26 +- parsing_cocci/type_cocci.ml | 26 +- parsing_cocci/type_cocci.mli | 26 +- parsing_cocci/type_infer.ml | 26 +- parsing_cocci/type_infer.mli | 26 +- parsing_cocci/unify_ast.ml | 30 +- parsing_cocci/unify_ast.mli | 26 +- parsing_cocci/unitary_ast0.ml | 26 +- parsing_cocci/unitary_ast0.mli | 26 +- parsing_cocci/unparse_ast0.ml | 26 +- parsing_cocci/unparse_ast0.mli | 26 +- parsing_cocci/visitor_ast.ml | 33 +- parsing_cocci/visitor_ast.mli | 26 +- parsing_cocci/visitor_ast0.ml | 26 +- parsing_cocci/visitor_ast0.mli | 26 +- parsing_cocci/visitor_ast0_types.ml | 26 +- popl/Makefile | 4 +- popl/ast_popl.ml | 26 +- popl/asttopopl.ml | 26 +- popl/asttopopl.mli | 26 +- popl/insert_befaft.ml | 26 +- popl/insert_befaft.mli | 26 +- popl/insert_quantifiers.ml | 26 +- popl/insert_quantifiers.mli | 26 +- popl/popl.ml | 26 +- popl/popl.mli | 26 +- popl/popltoctl.ml | 26 +- popl/popltoctl.mli | 26 +- popl/pretty_print_popl.ml | 26 +- popl/pretty_print_popl.mli | 26 +- popl09/Makefile | 4 +- popl09/ast_popl.ml | 26 +- popl09/asttopopl.ml | 26 +- popl09/asttopopl.mli | 26 +- popl09/flag_popl.ml | 26 +- popl09/insert_quantifiers.ml | 26 +- popl09/insert_quantifiers.mli | 26 +- popl09/popl.ml | 26 +- popl09/popl.mli | 26 +- popl09/popltoctl.ml | 26 +- popl09/popltoctl.mli | 26 +- popl09/pretty_print_popl.ml | 26 +- popl09/pretty_print_popl.mli | 26 +- pycaml/._d/pycaml.d | 2 - pycaml/dllpycaml_stubs.so | Bin 47422 -> 0 bytes pycaml/libpycaml_stubs.a | Bin 33908 -> 0 bytes pycaml/pycaml.a | Bin 37708 -> 0 bytes pycaml/pycaml.cma | Bin 13426 -> 0 bytes pycaml/pycaml.cmi | Bin 39117 -> 0 bytes pycaml/pycaml.cmo | Bin 13306 -> 0 bytes pycaml/pycaml.cmx | Bin 2256 -> 0 bytes pycaml/pycaml.cmxa | Bin 276 -> 0 bytes pycaml/pycaml.customtop | Bin 1142339 -> 0 bytes pycaml/pycaml.o | Bin 34512 -> 0 bytes pycaml/pycaml_ml.o | Bin 33072 -> 0 bytes python/.depend | 14 +- python/Makefile | 18 +- python/coccilib/__init__.pyc | Bin 0 -> 162 bytes python/coccilib/elems.pyc | Bin 0 -> 2274 bytes python/coccilib/org.pyc | Bin 0 -> 2500 bytes python/coccilib/output.pyc | Bin 0 -> 6779 bytes python/coccilib/report.pyc | Bin 0 -> 657 bytes python/no_pycocci.ml | 26 +- python/no_pycocci_aux.ml | 26 +- python/yes_pycocci.ml | 32 +- python/yes_pycocci_aux.ml | 26 +- scripts/extract_c_and_res.pl | 4 +- scripts/extract_examples.pl | 4 +- scripts/extractor_README.pl | 4 +- scripts/gather_failed.pl | 4 +- scripts/readme.pl | 4 +- scripts/stat_directories.pl | 4 +- scripts/stat_directories_complete.pl | 4 +- scripts/stat_directory_complete.pl | 4 +- test.ml | 24 + testing.ml | 34 +- testing.mli | 28 +- tests/SCORE_expected.sexp | 60 +- tests/SCORE_expected.sexp.save | 162 + tests/initializer_many_fields.cocci | 2 +- tests/nameless.c | 6 + tests/nameless.cocci | 5 + tests/nameless.res | 6 + tests/stm1.cocci | 3 + tests/stm7.cocci | 4 + tests/str_init.c | 7 + tests/str_init.cocci | 8 + tests/str_init.res | 3 + tools/Makefile | 4 +- tools/alloc_free.ml | 26 +- tools/bridge.ml | 26 +- tools/dir_stats.ml | 26 +- tools/extract_c_and_res.ml | 26 +- tools/generate_dependencies.ml | 26 +- tools/gitgrep.ml | 26 +- tools/gitsort.ml | 26 +- tools/licensify.ml | 30 +- tools/process_isoprofile.ml | 26 +- tools/split_patch.ml | 32 +- tools/spp.ml | 26 +- 239 files changed, 5554 insertions(+), 8183 deletions(-) rename docs/{spatch.1 => spatch.1.in} (93%) delete mode 100644 pycaml/._d/pycaml.d delete mode 100755 pycaml/dllpycaml_stubs.so delete mode 100644 pycaml/libpycaml_stubs.a delete mode 100644 pycaml/pycaml.a delete mode 100644 pycaml/pycaml.cma delete mode 100644 pycaml/pycaml.cmi delete mode 100644 pycaml/pycaml.cmo delete mode 100644 pycaml/pycaml.cmx delete mode 100644 pycaml/pycaml.cmxa delete mode 100755 pycaml/pycaml.customtop delete mode 100644 pycaml/pycaml.o delete mode 100644 pycaml/pycaml_ml.o create mode 100644 python/coccilib/__init__.pyc create mode 100644 python/coccilib/elems.pyc create mode 100644 python/coccilib/org.pyc create mode 100644 python/coccilib/output.pyc create mode 100644 python/coccilib/report.pyc create mode 100644 tests/SCORE_expected.sexp.save create mode 100644 tests/nameless.c create mode 100644 tests/nameless.cocci create mode 100644 tests/nameless.res create mode 100644 tests/str_init.c create mode 100644 tests/str_init.cocci create mode 100644 tests/str_init.res diff --git a/Makefile b/Makefile index 62afbfe..2761047 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,6 @@ -# Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen +# Copyright 2010, INRIA, University of Copenhagen +# Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix # This file is part of Coccinelle. # @@ -40,37 +42,65 @@ PRJNAME=coccinelle SRC=flag_cocci.ml cocci.ml testing.ml test.ml main.ml ifeq ($(FEATURE_PYTHON),1) -PYCMA=pycaml/pycaml.cma -PYDIR=pycaml -PYLIB=dllpycaml_stubs.so +PYCMA=pycaml.cma # the following is essential for Coccinelle to compile under gentoo (weird) -OPTLIBFLAGS=-cclib dllpycaml_stubs.so +#OPTLIBFLAGS=-cclib dllpycaml_stubs.so else PYCMA= -PYDIR= -PYLIB= +endif OPTLIBFLAGS= + +ifeq ("$(SEXPDIR)","ocamlsexp") +SEXPLIB=sexplib.cmo +OPTSEXPLIB=sexplib.cmx +else +SEXPLIB=sexplib.cma +OPTSEXPLIB=sexplib.cmxa endif SEXPSYSCMA=bigarray.cma nums.cma -SYSLIBS=str.cma unix.cma $(SEXPSYSCMA) +SYSLIBS=str.cma unix.cma $(SEXPSYSCMA) $(PYCMA) LIBS=commons/commons.cma \ - ocamlsexp/sexplib1.cma commons/commons_sexp.cma \ + commons/commons_sexp.cma \ globals/globals.cma \ ctl/ctl.cma \ parsing_cocci/cocci_parser.cma parsing_c/parsing_c.cma \ engine/cocciengine.cma popl09/popl.cma \ - extra/extra.cma $(PYCMA) python/coccipython.cma + extra/extra.cma python/coccipython.cma + +# Should we use the local version of pycaml +ifeq ("$(PYCAMLDIR)","pycaml") +LOCALPYCAML=pycaml +else +LOCALPYCAML= +endif + +# Should we use the local version of menhirLib +ifeq ("$(MENHIRDIR)","menhirLib") +LOCALMENHIR=menhirLib +else +LOCALMENHIR= +endif + +# Should we use the local version of ocamlsexp +ifeq ("$(SEXPDIR)","ocamlsexp") +LOCALSEXP=ocamlsexp +else +LOCALSEXP= +endif #used for clean: and depend: and a little for rec & rec.opt -MAKESUBDIRS=commons ocamlsexp \ - globals menhirlib $(PYDIR) ctl parsing_cocci parsing_c \ +MAKESUBDIRS=$(LOCALPYCAML) $(LOCALSEXP) commons \ + globals $(LOCALMENHIR) ctl parsing_cocci parsing_c \ engine popl09 extra python -INCLUDEDIRS=commons commons/ocamlextra ocamlsexp \ - globals menhirlib $(PYDIR) ctl \ + +INCLUDEDIRSDEP=commons commons/ocamlextra $(LOCALSEXP) \ + globals $(LOCALMENHIR) $(LOCALPYCAML) ctl \ parsing_cocci parsing_c engine popl09 extra python +INCLUDEDIRS=$(INCLUDEDIRSDEP) $(SEXPDIR) $(MENHIRDIR) $(PYCAMLDIR) + ############################################################################## # Generic variables ############################################################################## @@ -95,15 +125,12 @@ OCAMLCFLAGS= # to also link with -g, but even in 3.11 the backtrace support seems buggy so # not worth it. OPTFLAGS= -# the following is essential for Coccinelle to compile under gentoo -# but is now defined above in this file -#OPTLIBFLAGS=-cclib dllpycaml_stubs.so OCAMLC=ocamlc$(OPTBIN) $(OCAMLCFLAGS) $(INCLUDES) OCAMLOPT=ocamlopt$(OPTBIN) $(OPTFLAGS) $(INCLUDES) OCAMLLEX=ocamllex #-ml # -ml for debugging lexer, but slightly slower OCAMLYACC=ocamlyacc -v -OCAMLDEP=ocamldep $(INCLUDES) +OCAMLDEP=ocamldep $(INCLUDEDIRSDEP:%=-I %) OCAMLMKTOP=ocamlmktop -g -custom $(INCLUDES) # can also be set via 'make static' @@ -138,16 +165,18 @@ opt-compil: .depend top: $(EXEC).top subdirs: - $(MAKE) -C commons OCAMLCFLAGS="$(OCAMLCFLAGS)" - $(MAKE) -C ocamlsexp OCAMLCFLAGS="$(OCAMLCFLAGS)" - $(MAKE) -C commons sexp OCAMLCFLAGS="$(OCAMLCFLAGS)" +# $(MAKE) -C commons OCAMLCFLAGS="$(OCAMLCFLAGS)" +# if [ "$(LOCALSEXP)" != "" ]; then \ +# $(MAKE) -C ocamlsexp OCAMLCFLAGS="$(OCAMLCFLAGS)" ; fi +for D in $(MAKESUBDIRS); do $(MAKE) $$D || exit 1 ; done + $(MAKE) -C commons sexp OCAMLCFLAGS="$(OCAMLCFLAGS)" subdirs.opt: - $(MAKE) -C commons all.opt OCAMLCFLAGS="$(OCAMLCFLAGS)" - $(MAKE) -C ocamlsexp all.opt OCAMLCFLAGS="$(OCAMLCFLAGS)" - $(MAKE) -C commons sexp.opt OCAMLCFLAGS="$(OCAMLCFLAGS)" +# $(MAKE) -C commons all.opt OCAMLCFLAGS="$(OCAMLCFLAGS)" +# if [ "$(LOCALSEXP)" != "" ]; then \ +# $(MAKE) -C ocamlsexp all.opt OCAMLCFLAGS="$(OCAMLCFLAGS)"; fi +for D in $(MAKESUBDIRS); do $(MAKE) $$D.opt || exit 1 ; done + $(MAKE) -C commons sexp.opt OCAMLCFLAGS="$(OCAMLCFLAGS)" $(MAKESUBDIRS): $(MAKE) -C $@ OCAMLCFLAGS="$(OCAMLCFLAGS)" all @@ -179,17 +208,16 @@ $(OBJS):$(LIBS) $(OPTOBJS):$(LIBS:.cma=.cmxa) $(EXEC): $(LIBS) $(OBJS) - $(OCAMLC) $(BYTECODE_STATIC) -o $@ $(SYSLIBS) $^ + $(OCAMLC) $(BYTECODE_STATIC) -o $@ $(SYSLIBS) $(SEXPLIB) $^ $(EXEC).opt: $(LIBS:.cma=.cmxa) $(OPTOBJS) - $(OCAMLOPT) $(STATIC) -o $@ $(SYSLIBS:.cma=.cmxa) $(OPTLIBFLAGS) $^ + $(OCAMLOPT) $(STATIC) -o $@ $(SYSLIBS:.cma=.cmxa) $(OPTSEXPLIB) $(OPTLIBFLAGS) $^ $(EXEC).top: $(LIBS) $(OBJS) - $(OCAMLMKTOP) -custom -o $@ $(SYSLIBS) $^ + $(OCAMLMKTOP) -custom -o $@ $(SYSLIBS) $(SEXPLIB) $^ clean:: rm -f $(TARGET) $(TARGET).opt $(TARGET).top - rm -f dllpycaml_stubs.so .PHONY:: tools configure @@ -235,7 +263,10 @@ distclean:: # Pre-Install (customization of spatch frontend script) ############################################################################## -preinstall: scripts/spatch scripts/spatch.opt scripts/spatch.byte +preinstall: docs/spatch.1 scripts/spatch scripts/spatch.opt scripts/spatch.byte + +docs/spatch.1: Makefile.config + $(MAKE) -C docs spatch.1 # user will use spatch to run spatch.opt (native) scripts/spatch: Makefile.config @@ -294,7 +325,8 @@ install-python: $(DESTDIR)$(SHAREDIR)/python/coccilib/coccigui $(INSTALL_DATA) python/coccilib/coccigui/pygui.gladep \ $(DESTDIR)$(SHAREDIR)/python/coccilib/coccigui - $(INSTALL_LIB) dllpycaml_stubs.so $(DESTDIR)$(LIBDIR) + if [ -f pycaml/dllpycaml_stubs.so ]; then \ + $(INSTALL_LIB) pycaml/dllpycaml_stubs.so $(DESTDIR)$(LIBDIR) ; fi install: install-common @if test -x spatch -a ! -x spatch.opt ; then \ @@ -330,9 +362,14 @@ uninstall: rm -f $(DESTDIR)$(BINDIR)/spatch rm -f $(DESTDIR)$(BINDIR)/spatch.opt rm -f $(DESTDIR)$(LIBDIR)/dllpycaml_stubs.so + rm -f $(DESTDIR)$(SHAREDIR)/spatch + rm -f $(DESTDIR)$(SHAREDIR)/spatch.opt rm -f $(DESTDIR)$(SHAREDIR)/standard.h rm -f $(DESTDIR)$(SHAREDIR)/standard.iso - rm -rf $(DESTDIR)$(SHAREDIR)/python/coccilib + rm -f $(DESTDIR)$(SHAREDIR)/python/coccilib/coccigui/* + rm -f $(DESTDIR)$(SHAREDIR)/python/coccilib/*.py + rmdir --ignore-fail-on-non-empty -p \ + $(DESTDIR)$(SHAREDIR)/python/coccilib/coccigui rm -f $(DESTDIR)$(MANDIR)/man1/spatch.1 version: diff --git a/Makefile.dev b/Makefile.dev index bed6049..0534424 100644 --- a/Makefile.dev +++ b/Makefile.dev @@ -4,7 +4,7 @@ ############################################################################## #TOP=/home/pad/mobile/project-coccinelle -WEBSITE=/home/pad/mobile/homepage/software/project-coccinelle +WEBSITE=~/website/distrib website: cp $(TMP)/$(PACKAGE).tgz $(WEBSITE) diff --git a/changes.txt b/changes.txt index 97724f2..be3440a 100644 --- a/changes.txt +++ b/changes.txt @@ -31,6 +31,15 @@ smpl cause passing column 80 - allow - in front of statement level nests, if everything inside the nest is also - +- 'configure' looks for some system libraries: menhirLib, sexplib, pycaml. + Not available libraries are replaced by a copy provided with the sources. +- added static for a function goes just before what is specified in the + semantic patch, not before any comments etc. +- Add a new option, -ignore_unknown_options, to ease the integration + of Coccinelle as a checker in a toolchain. +- error in python code causes immediate abort of spatch +- use the same algorithm for collecing grep tokens as for collecting + glimpse tokens ** Bugfix: - drop inconsistent paths check when only one node was matched @@ -46,6 +55,12 @@ list - support Parameter metavariables - add space after the last comma in an added portion of an argument list +- SmPL nameless struct should only match a nameless struct, not a nameless + union. Thanks to Peter Tummeltshammer for pointing out the problem. +- adjustments to storage don't modify inline as well +- matching and transformation allowed on inline +- allow removed field between two ... in structure initialization +- allow removing an entire structure initialization * 0.2.2 ** Language: diff --git a/cocci.ml b/cocci.ml index 0ddd588..6f3ee5b 100644 --- a/cocci.ml +++ b/cocci.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -458,46 +438,44 @@ let worth_trying cfiles tokens = (* drop the following line for a list of list by rules. since we don't allow multiple minirules, all the tokens within a rule should be in a single CFG entity *) - let tokens = Common.union_all tokens in - if not !Flag_cocci.windows && not (null tokens) - then + match (!Flag_cocci.windows,tokens) with + (true,_) | (_,None) -> true + | (_,Some tokens) -> (* could also modify the code in get_constants.ml *) - let tokens = tokens +> List.map (fun s -> - match () with - | _ when s =~ "^[A-Za-z_][A-Za-z_0-9]*$" -> - "\\b" ^ s ^ "\\b" + let tokens = tokens +> List.map (fun s -> + match () with + | _ when s =~ "^[A-Za-z_][A-Za-z_0-9]*$" -> + "\\b" ^ s ^ "\\b" - | _ when s =~ "^[A-Za-z_]" -> - "\\b" ^ s + | _ when s =~ "^[A-Za-z_]" -> + "\\b" ^ s - | _ when s =~ ".*[A-Za-z_]$" -> - s ^ "\\b" - | _ -> s + | _ when s =~ ".*[A-Za-z_]$" -> + s ^ "\\b" + | _ -> s - ) in - let com = sprintf "egrep -q '(%s)' %s" (join "|" tokens) (join " " cfiles) - in - (match Sys.command com with - | 0 (* success *) -> true - | _ (* failure *) -> - (if !Flag.show_misc - then Printf.printf "grep failed: %s\n" com); - false (* no match, so not worth trying *) - ) - else true - -let check_macro_in_sp_and_adjust tokens = - let tokens = Common.union_all tokens in - tokens +> List.iter (fun s -> - if Hashtbl.mem !Parse_c._defs s - then begin - if !Flag_cocci.verbose_cocci then begin - pr2 "warning: macro in semantic patch was in macro definitions"; - pr2 ("disabling macro expansion for " ^ s); - end; - Hashtbl.remove !Parse_c._defs s - end - ) + ) in + let com = sprintf "egrep -q '(%s)' %s" (join "|" tokens) (join " " cfiles) + in + (match Sys.command com with + | 0 (* success *) -> true + | _ (* failure *) -> + (if !Flag.show_misc + then Printf.printf "grep failed: %s\n" com); + false (* no match, so not worth trying *)) + +let check_macro_in_sp_and_adjust = function + None -> () + | Some tokens -> + tokens +> List.iter (fun s -> + if Hashtbl.mem !Parse_c._defs s + then begin + if !Flag_cocci.verbose_cocci then begin + pr2 "warning: macro in semantic patch was in macro definitions"; + pr2 ("disabling macro expansion for " ^ s); + end; + Hashtbl.remove !Parse_c._defs s + end) let contain_loop gopt = @@ -806,7 +784,7 @@ type toplevel_cocci_info = | FinalScriptRuleCocciInfo of toplevel_cocci_info_script_rule | CocciRuleCocciInfo of toplevel_cocci_info_cocci_rule -type cocci_info = toplevel_cocci_info list * string list list (* tokens *) +type cocci_info = toplevel_cocci_info list * string list option (* tokens *) type kind_file = Header | Source type file_info = { @@ -1699,8 +1677,11 @@ let full_engine2 (cocci_infos,toks) cfiles = if !Flag_cocci.worth_trying_opt && not (worth_trying cfiles toks) then begin - pr2 ("No matches found for " ^ (Common.join " " (Common.union_all toks)) - ^ "\nSkipping:" ^ (Common.join " " cfiles)); + (match toks with + None -> () + | Some toks -> + pr2 ("No matches found for " ^ (Common.join " " toks) + ^ "\nSkipping:" ^ (Common.join " " cfiles))); cfiles +> List.map (fun s -> s, None) end else diff --git a/cocci.mli b/cocci.mli index a2f0cba..e53246b 100644 --- a/cocci.mli +++ b/cocci.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -82,7 +62,7 @@ val sp_of_file : (*fresh used after list seeds*) Ast_cocci.meta_name list list list) * Ast_cocci.meta_name list list list * - string list list * - string list option + string list option (*grep tokens*) * + string list option (*glimpse tokens*) val normalize_path : string -> string diff --git a/commitmsg b/commitmsg index 660b462..647fd7f 100644 --- a/commitmsg +++ b/commitmsg @@ -1,3 +1,3 @@ -Release coccinelle-0.2.3rc1 +Release coccinelle-0.2.3rc2 -Release Candidate 1 for coccinelle-0.2.3 +Release Candidate 2 for coccinelle-0.2.3 diff --git a/commons/Makefile b/commons/Makefile index 081bb1a..4169157 100644 --- a/commons/Makefile +++ b/commons/Makefile @@ -8,17 +8,25 @@ TARGET=commons # note: if you add a file (a .mli or .ml), dont forget to redo a 'make depend' -MYSRC=common.ml common_extra.ml \ - interfaces.ml objet.ml \ - ocollection.ml \ - seti.ml \ - oset.ml oassoc.ml osequence.ml ograph.ml \ - ocollection/oseti.ml ocollection/oseth.ml ocollection/osetb.ml ocollection/osetpt.ml \ - ocollection/oassocb.ml ocollection/oassoch.ml ocollection/oassoc_buffer.ml ocollection/oassoc_cache.ml ocollection/oassocid.ml \ - oarray.ml \ - ocollection/ograph2way.ml ograph_simple.ml ograph_extended.ml \ - ofullcommon.ml \ - glimpse.ml parser_combinators.ml +MYSRC= common.ml common_extra.ml \ + interfaces.ml objet.ml \ + ocollection.ml \ + seti.ml \ + oset.ml oassoc.ml osequence.ml ograph.ml \ + ocollection/oseti.ml \ + ocollection/oseth.ml \ + ocollection/osetb.ml \ + ocollection/osetpt.ml \ + ocollection/oassocb.ml \ + ocollection/oassoch.ml \ + ocollection/oassoc_buffer.ml \ + ocollection/oassoc_cache.ml \ + ocollection/oassocid.ml \ + oarray.ml \ + ocollection/ograph2way.ml \ + ograph_simple.ml ograph_extended.ml \ + ofullcommon.ml \ + glimpse.ml parser_combinators.ml # src from other authors, got from the web or caml hump SRC=ocamlextra/dumper.ml @@ -62,17 +70,25 @@ PYSYSLIBS=python.cma #ocamlmpi MYMPISRC=distribution.ml -MPIINCLUDES=-I ../ocamlmpi -I ../../ocamlmpi -I +ocamlmpi +MPIINCLUDES=-I ../ocamlmpi -I ../../ocamlmpi -I +ocamlmpi MPISYSLIBS=mpi.cma -#pcre +#pcre #REGEXPINCLUDES=-I +pcre MYREGEXPSRC=regexp.ml REGEXPINCLUDES=-I ../ocamlpcre/lib -I ../../ocamlpcre/lib -#sexplib +#sexplib MYSEXPSRC=sexp_common.ml -SEXPINCLUDES=-I ../ocamlsexp -I ../ocamltarzan/lib-sexp -I ../../ocamltarzan/lib-sexp +ifeq ("$(SEXPDIR)","ocamlsexp") +SEXPDIRUSED=../$(SEXPDIR) +else +SEXPDIRUSED=$(SEXPDIR) +endif # Use local ocamlsexp +SEXPINCLUDES=-I $(SEXPDIRUSED) \ + -I ../ocamltarzan/lib-sexp \ + -I ../../ocamltarzan/lib-sexp + #binprot MYBINSRC=bin_common.ml BININCLUDES=-I ../ocamltarzan/lib-binprot -I ../../ocamltarzan/lib-binprot @@ -101,9 +117,9 @@ INCLUDES=$(INCLUDEDIRS:%=-I %) $(INCLUDESEXTRA) OPTFLAGS= #-thread -# The OPTBIN variable is here to allow to use ocamlc.opt instead of +# The OPTBIN variable is here to allow to use ocamlc.opt instead of # ocaml, when it is available, which speeds up compilation. So -# if you want the fast version of the ocaml chain tools, set this var +# if you want the fast version of the ocaml chain tools, set this var # or setenv it to ".opt" in your startup script. OPTBIN ?= #.opt diff --git a/commons/sexp_common.ml b/commons/sexp_common.ml index 70ea49c..d8fd24c 100644 --- a/commons/sexp_common.ml +++ b/commons/sexp_common.ml @@ -1,7 +1,7 @@ (* automatically generated by ocamltarzan *) +open Sexplib open Common - let either_of_sexp__ = let _loc = "Xxx.either" in diff --git a/configure b/configure index 7520c8c..4660d92 100755 --- a/configure +++ b/configure @@ -30,6 +30,9 @@ my $prefix="/usr/local"; my $python=1; my $opt=".opt"; my $tarzan=1; +my $pydir="pycaml"; +my $menhirdir="menhirlib"; +my $sexpdir="ocamlsexp"; local $_ = join ' ', @ARGV; @@ -181,6 +184,30 @@ We need 3.XX", # Librairies #--------------------------------------------------------------------- +# pycaml. Binding between Python and OCaml +my $syspydir=`ocamlfind query pycaml 2> /dev/null | xargs echo -n`; + +if($syspydir) { + $pydir=$syspydir; + pr2 "'pycaml' library present in $pydir"; +} + +# menhirLib. Runtime system for the parsers generated with menhir +my $sysmenhirdir=`ocamlfind query menhirLib 2> /dev/null | xargs echo -n`; + +if($sysmenhirdir) { + $menhirdir=$sysmenhirdir; + pr2 "'menhirLib' library present in $menhirdir"; +} + +# sexplib. Runtime system for the parsers generated with menhir +my $syssexpdir=`ocamlfind query sexplib 2> /dev/null | xargs echo -n`; + +if($syssexpdir) { + $sexpdir=$syssexpdir; + pr2 "'sexplib' library present in $sexpdir"; +} + ###################################################################### # Generate config files (platform/portability issues) ###################################################################### @@ -280,6 +307,10 @@ SHAREDIR=$src FEATURE_PYTHON=$python FEATURE_TARZAN=$tarzan +PYCAMLDIR=$pydir +MENHIRDIR=$menhirdir +SEXPDIR=$sexpdir + # The OPTBIN variable is here to allow to use ocamlc.opt instead of # ocaml, when it is available, which speeds up compilation. So # if you want the fast version of the ocaml chain tools, set this var diff --git a/ctl/Makefile b/ctl/Makefile index 2e7ee66..996dfbc 100644 --- a/ctl/Makefile +++ b/ctl/Makefile @@ -1,4 +1,6 @@ -# Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen +# Copyright 2010, INRIA, University of Copenhagen +# Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix # This file is part of Coccinelle. # diff --git a/ctl/ast_ctl.ml b/ctl/ast_ctl.ml index b387722..30e8c60 100644 --- a/ctl/ast_ctl.ml +++ b/ctl/ast_ctl.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/ctl/ctl_engine.ml b/ctl/ctl_engine.ml index d39ad0a..1196f12 100644 --- a/ctl/ctl_engine.ml +++ b/ctl/ctl_engine.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/ctl/ctl_engine.mli b/ctl/ctl_engine.mli index 2fe9d10..3251c0a 100644 --- a/ctl/ctl_engine.mli +++ b/ctl/ctl_engine.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/ctl/flag_ctl.ml b/ctl/flag_ctl.ml index dc6669c..d840ef0 100644 --- a/ctl/flag_ctl.ml +++ b/ctl/flag_ctl.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/ctl/pretty_print_ctl.ml b/ctl/pretty_print_ctl.ml index 25adfc9..9c7fbf1 100644 --- a/ctl/pretty_print_ctl.ml +++ b/ctl/pretty_print_ctl.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/ctl/pretty_print_ctl.mli b/ctl/pretty_print_ctl.mli index 3e14c42..4819215 100644 --- a/ctl/pretty_print_ctl.mli +++ b/ctl/pretty_print_ctl.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/ctl/test_ctl.ml b/ctl/test_ctl.ml index c8dbad2..c53681c 100644 --- a/ctl/test_ctl.ml +++ b/ctl/test_ctl.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/ctl/wrapper_ctl.ml b/ctl/wrapper_ctl.ml index 3ad9c75..ac740dc 100644 --- a/ctl/wrapper_ctl.ml +++ b/ctl/wrapper_ctl.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/ctl/wrapper_ctl.mli b/ctl/wrapper_ctl.mli index caab704..17436dd 100644 --- a/ctl/wrapper_ctl.mli +++ b/ctl/wrapper_ctl.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/demos/spp/test b/demos/spp/test index c01c522..39ae6ac 100644 --- a/demos/spp/test +++ b/demos/spp/test @@ -1,5 +1,5 @@ ---- test.c.i 2009-05-18 14:00:32.000000000 +0200 -+++ /tmp/cocci-output-25285-b49c53-test.c.i 2009-05-18 14:00:33.000000000 +0200 +--- test.c.i 2010-05-25 11:50:20.000000000 +0200 ++++ /tmp/cocci-output-6159-8a3e07-test.c.i 2010-05-25 11:50:20.000000000 +0200 @@ -11,7 +11,7 @@ int main(void) { @@ -9,8 +9,8 @@ return x; } ---- test2.c.i 2009-05-18 14:00:33.000000000 +0200 -+++ /tmp/cocci-output-25300-b31556-test2.c.i 2009-05-18 14:00:33.000000000 +0200 +--- test2.c.i 2010-05-25 11:50:20.000000000 +0200 ++++ /tmp/cocci-output-6174-d107da-test2.c.i 2010-05-25 11:50:20.000000000 +0200 @@ -4,6 +4,6 @@ # 1 "test2.c" int main() { diff --git a/docs/Makefile b/docs/Makefile index 91d8e35..8bbcd1f 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -1,14 +1,16 @@ SUBDIR=manual -.PHONY: all clean distclean +.PHONY: all clean distclean spatch.1 -all: - make -C $(SUBDIR) +-include ../Makefile.config -clean: - make -C $(SUBDIR) clean +all:: spatch.1 -distclean: - make -C $(SUBDIR) distclean +spatch.1: spatch.1.in + sed "s|SHAREDIR|$(SHAREDIR)|g" $^ > $@ +clean distclean:: + rm -f spatch.1 +all clean distclean:: + make -C $(SUBDIR) $@ diff --git a/docs/manual/cocci_syntax.tex b/docs/manual/cocci_syntax.tex index 8929f7e..b179c41 100644 --- a/docs/manual/cocci_syntax.tex +++ b/docs/manual/cocci_syntax.tex @@ -599,6 +599,62 @@ $^\dag$ The optional \texttt{when} construct ends at the end of the line. \CASE{\NT{COMMA\_LIST}\mth{(}\NT{gram\_p} \OR \ldots \opt{\NT{when\_p}}\mth{)}} \end{grammar} +To match a function it is not necessary to provide all of the annotations +that appear before the function name. For example, the following semantic +patch: + +\begin{lstlisting}[language=Cocci] +@@ +@@ + +foo() { ... } +\end{lstlisting} + +\noindent +matches a function declared as follows: + +\begin{lstlisting}[language=C] +static int foo() { return 12; } +\end{lstlisting} + +\noindent +This behavior can be turned off by disabling the \KW{optional\_storage} +isomorphism. If one adds code before a function declaration, then the +effect depends on the kind of code that is added. If the added code is a +function definition or CPP code, then the new code is placed before +all information associated with the function definition, including any +comments preceeding the function definition. On the other hand, if the new +code is associated with the function, such as the addition of the keyword +{\tt static}, the new code is placed exactly where it appears with respect +to the rest of the function definition in the semantic patch. For example, + +\begin{lstlisting}[language=Cocci] +@@ +@@ + ++ static +foo() { ... } +\end{lstlisting} + +\noindent +causes static to be placed just before the function name. The following +causes it to be placed just before the type + +\begin{lstlisting}[language=Cocci] +@@ +type T; +@@ + ++ static +T foo() { ... } +\end{lstlisting} + +\noindent +It may be nencessary to consider several cases to ensure that the added ode +is placed in the right position. For example, one may need one pattern +that considers that the function is declared {\tt inline} and another that +considers that it is not. + %\newpage \section{Declarations} diff --git a/docs/manual/main_grammar.pdf b/docs/manual/main_grammar.pdf index 30653b9b4c19e8caf800d1eaa752a6717e9637b3..fe91f2834286527442eaea0a29f4e8831fb36fa5 100644 GIT binary patch delta 74116 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

wunS>-+vB!=FL;f;o4pDttlO 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 delta 69370 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

G|v8!ND^2 zM^W+VfjecK`RCTTIYGx!Ai16@wDRRTAv|6x)N=0pHQ@=NmRT>Dr$kFD|J!wLq5tQJ zDJS^z?{%|X94{^WikG>002d;e?g6-9GCtR%pjmMo1Ue)*&O(Ep9sIw$H~ zrhG~W`2L^PyU|lLd->jh3}tG}vxz_HCO2;eS3)qlC-A4mLNK$u`5^>juH*;yLw+=a zPl9xkW+?Lon3Ak?xXmB@*pyQn>kzGX$4^O?rvB$QFuWwNMffU!1qmNGkZZmpxBNyo zkDi<)L+sfAD(ehO^MS5g=aU2Djjx0H&oMDfrtuE1#1M`jLiVWsP*wpqrWB zw3#8KK^?PNNSNbfY<}o~kePLs{D^`ZQ5m!OkiP47SyO{=Hk2tmO`BHWrxC@7Nja; zOJr<>l`@E_Nf`D%Cf$?_-TKDOs7@AyP&BHO1tAn!=N7 z&28W)OocyTMF$a}MKD#Me@c!KTDS?hMj#YkqN_Cw-M51e0*~L$Ocf#=n`~*YjHLVL%LAIFPBeA?=ZN=I*$f0t>IKl zbN|ar1!IknD2dDzg$J>Z5-o4393r=NbTsMNq^2dowMgo)hs{CfyDl}w`d|ZVF z`WV*x883A&YV?^Wg|uM*Mu!>x(d};TbO9)|b*vx11bgoPwAs-ElMcDU8Z9A(BAtWH1R3F%?zbkS>-2Jdi#*k_hd2u+lu6 z2$`Hoj7UzOBY+gD#Q)}UxA^hR?zm}*a5%38%~Xj2t6*_w2r3yy(F`Lg{f3=xZfKTa zG^R)}36eQR``W8U$MJEl*$9aCd~~> zj`0^Pvn}UR|Cu$N;iNKzG76$iWdLOufPZW=zAz2L42qOVm-(!tL`o9lR#`9ur_T`x zY7nJ==ap`euxqLeK5I*`exdB>>BeZ0`xW&q807a${zl2l#5{0XU^7;PIdKpY2uC}VHK#FjT zrCSGyz)^!K{PFAExUfx#X4SYI113bn8;B-Uto@_Ak@LFpo0cTEiBT({|+?%;++J?!YLNL4IIIm2v&*B5JpVV(Y^mo;cIp*wBp-n-k4oZ3xu3@iqd5Y3TQ*dC%Jfey0} zW)qU}1EvPoR0CPKI7h&?kP@%?PhT&JK^)TnV5UfLBqPe3QSeLd5p{FVNxDM;&=k;!SphmY74*u#>Ba_n?Vp4)pd7u2jB4S3#~(ri0^U~uHN+i!o-wGykM42P zPzTXvfGR(fR6O&ln}jiy1S=#@MR!Lk!Cw2lJ1~w9yuyw6zkVgm$G?XzGI8l5niT@{ zX)Jmq`w(P)N&qxSdFnUc>|+1LSB0f}cCTCRXW!?}5eq$Ulv&aqC((N3Z@7iob=iIH zCO`Flcas0zeYpR7SmBLwS8-iLyZTnTpL@T%fz-ga?srK8Iui;92|;3!Pi~{{Ne{T2 zeenRG|K54Z!4BI_jc2DF?zFro+n%tC&^{~~XaunGqX#g{kl#8S}>5{f3CIc+XKL92Qb z13}W6+=CfK-bw7W5DQ*b=0BQrbJrHxv2Y5?@IgpD8bO~msogeSLB`5h7&Y49R`>nS zHoEc2LdGZ%`i$tJfSMTLv-LCN+LXg@bP`RBnW!fYs-k6X96Q!bStzGz~! z)8+(P+7G7wdz;+&8KpS?qDfgR2*Q96txFh_l`)ST@VvakB zfATt*S&0=L9Avol&^8PwSE+v!C>C-h<7z&p0ly$FJD{kEG#;4Q>;`HkrUz!l+6wPNZ6iAUu_!c+XyKCFTrmfqy>|8Py zr_F|qFCSuABqo>z2b@^EYsXf<=1zCk;lKXw4gOOPxq2A;|MQ33mE&WJ_ioz0t&w5) zh!+5x7Li@E6LuRPgV?ca#{^qZhoAfIjZ;GhU+i#;?r6Hgo-*l(xoLq(%}3{Z;NVW# zm0;5cwp87{i>8G+S#`7GO$)^H)jfacVP+0k8q7;x?iL;2+=oGYFvjnB*qwtn`Od?5 zleazWPMIlM6?zo@^t;?y7lmtp3{H``7LV@n;UXB_n%fn5BQ@ zEv_Eg>sLJCmigCBfafD`bJMXsVH1=c&ql+!Xf%Y2#td-LtVX$b{0X(PZw|Ax+;vY6Mi*!J7GQwU#hEnmNgQ=_ zn~RW3?QDllyw%NWR-bEM0Z19scxQua_Ssq!C6hRNdC9}1I;-6hvb2mZFBP%(E-~tI1pBAnM&y6(}xb@p^HXTe(BqI z{D60-n)OPEfxmiRL*R^&MlAm0(m#Z%HVQ5<^-tg59Z~Z+<}qJ9-g)926Wj#1)k?j` zQQ@C@8$m3(YefmR#(?*tJumjh)id^X3OTbk6QLqB!a} z9xnX6$J`l1xlEZ0{gnqDA6ZAe{P(NEZoqnCE7)O;q`4P8SEbkOX)Q~p+ zVRym{dtJL!b?jiwKOyg4|3$hjSiNmOo{qL4_<>pqnlk_XC)}B5cgrZQKERId?rrpr zdL;*&cFFIU*yW#}zjO*$8)1(Q4}p&GIRW@JzH0An%FkBc=ZKI z1dDoI{P*7J-Z4xtbI-e6JXeZ4^EHj1vvzkypRbN_^Qa|^zy zTM0JxHn|0>)U7zr{nK*G0*r_!|L|^CzJT3(iI>|?rZu}bS3T*f`6>U*UCEKXGu#aU zqIy>L_5bBbS5BoHQTFp6ceB};yXYxboQmqivLaJY6y)t6eF|(y2Pvw%8Ef-@Xzp63 zr5Vqj{~n&rbJ_k@&!+4w-Y<8fL^jRU-Gn6f*Wcqx|K~p>;7-`6EF!<)y>w49aRRD) z#3tIV_rkNJPQ-n*Zzp`m%70EC&e)$bcj1LU;eD=}ld(&o@A@MjCTXzg9`zX<_E;2W;Ndc)bb|wWm{Vhp{ylpY@@0oZHx(*6Jt2yDwVQB`8P1EDi`DP zA!ssesMzb%xN3Z?X~SWfwqr~^>a>(PMKK@2?2M;RllW>9uh3*zokYg9Lo^BuOes9QoJNnIy^aVowPOJ@6zAtDScD zG%=Pv!K+sO7Xm`_7=+r*qM~7q(guqIE&R%l078onBdTKxK$Mn>td?w*fH1tsQzKOz zyzx0nE_3>*fY4?kVNGe+NxIaqliVa3_NM`1*jYxlduePk7Dx(q4hjf8kf@;cNeK{D zk=nvRc48?@RtC=t2(2=4n#tEf2fKq29-B5IQNQq`$C`BMF$_TpP6dK_BOA0WRDAB$ z*gR?=Wxd(zmy~6<-@v3RD@6PpG+E|Wv36upQl%1*x8YV9-wU4gv14#1si=L>-RrQ< zZ-Zdxk3dF1=n*HBd>V~_4VvL80X$om0zzX<9irKRF+{i%wh!9Oni#Ic4|rZ$?Q=+vlenXyf_Pe2%{mbtOU;%N+L zP(cc30Wr&r#1DNHhNUGdEi*`Ve{~zRZ$_LIbI|m|nA$cS%SKrgK5>3Qi@O=Im*zr7 z^rtzV#Tl89BcFsbdQRgk;;6gK>PPumhN;vKv*y>L%LI$*mmAN>3Wpk# zm46AFw3cL9ctxl!K$gjdojI8re+Up~8;m(#OH<+3{f%tl@lpn%h#)pkF+|Ovw92}3 zu+Q)!B`p&_i+l`CEGP`$N$eP63brLRfk@r3v!EQ*^dp_qv`r4s#4@bi5j%r|w%b_f zh1XYF%;jwjvob4LP-?{>L{gS_Qt}+Ev=x$!x*EfUIx`+TV~uP^jPUh{bG*9lmlHo! z{<%*h1U2p`=f9S19)%6g*0@=tnq_ZJhSQ*mVTKxF9%o$}-nY#;`2}8^`H#m?YV=pO z!5p_BBP7IBVDcnw29nC`qrW!MVMwx4X*{{j$ZMVjYzcLm$i`hwNEW)q=+abZkA zJv)fxN)tZ9`)=Z=KeY-RuAT~Hd1Cztn{JMT&q-zry4NaP4NElOf8hN&PUMQL{R)D1lJ@kg4^FlKE2oa%7@8NLbV( zW>+U4FR_wYPm%|a-Sk0LGevDCf_}0|GT0AzxB%VeH+_Y~?}MLn&T2o&ON9#<;e{v# zSKj-0?sLcR+Bx+JTH?gK#!=?fR2XszI}D$&&4#3sbV@U<0fR){0QLT#XGU7M=`rBq zQ8jDIoN|sM0zyv$LPcu>%EB5cCK@ZMF95<&%_|F9gK)wote}nT>pB6UXGG58vORUk zob$?}1xsk=p8|yO+Bvx{3pTtD+!8Sx6Gj!vV_0RfnnpgPQ@bW;z_euH^|=-jO682Q z6u2r)APZs>5L5nUXFd6twot{ikfYJEps35Z&4Tg;t+_>EGgZtHV+ji49xVjyMU)%U zQm`GR)Q$ovlha|zWfqDQfXQxun}ek_OSl!OSquFpyQT$VjP~)icXuB3-3)~^TE)mx zTcQcf%s_1NW0F|JCIE?tyAeenacvVVZ1tISOTn7QAm(5IBVtL+k0F2l^^jn6%oYnJ zTxNw#IB6Uv*|4rw55Oyp1IAqTiJokBS|xKU#h-0rNVRKoSH^ZDjQtQ3c47fdu*_=N zhKAib_n45^*)j?wX#n%tR9) zRw$R&VA<~IkE9t0Of?=IA7XTiWlk_=!v7u%0cQ*iZ;zSL;egEM3sN!*#)`c|Z7bN1 z8C<_^ep)eyu7zD(07=uUX79DZEUqHMd?r-4Un9l z@lm9D4bd!pl^!E7X1#IgwAqw4?#=5o(n3`i6v^sOhi&@KJh$J*>n>H$PHURNyI)bevnW~8)V``tZds@6WO!{*NFNPU9Nr{+5 zEXG!871bHUIC>@$1(@i!j)~U%p>G~zRZNwMF-vuVvZ_&$b~l>_WQ@Ao`914UCs<h_-bA{i;dQ8YJwK8YHA5%}7}K z*?w%l>k$*%8DjFNE_LWyvzKRBom&NB99B#$3(Y`SQfsqN7g5jU&FF@%wLkh<)PbnV zY&norGpiIfA*8IZH4|&{jb`Aubu(~Qpn4Y9gix4;_H-vdW775J97O$aiTR)nvtPp`yCNZ|ad$ zI84n#+DwH9MHeQ0jMp;hW78)z)&8eABVM=XDhSeM0{XeL|vi(W(HBDVjLDaqX?uDn<%f17$;M$HO`@psuzBQ+TsAQ7h;oz${w<)V$;gn2g8(~f@O;IG~^7XH&%=;3%$|p7tEE)9hq%F8PwL>F%0LtTN}Jx}k_tk-N}AUSZ8~(OExhH|93Ll_OuW|N~1;WXZ<&_ z#MgYsIb9Dxf9ymLNC!s2ZnSA*9@;i-#wau)M`8L=o7lAVQoM9zSI!^(4ka39U?k=G z1MAYnafg1vcPV4Fq?uAWpi?en$iP|HHaq*sa2x)UZ0eBN3nek8QEBKT^2CSZ{^z27}aqX}4OGXaaV z8E3|3luonIuhy#o%0Ac()?B4EQCUza5YgF9>81lvX)}g_<(^SO@=rzyY3oN`oh&E- z!&`wZA3&jc+tJ`>XfsL(&6W!>ieyG?3c=$$W74HsGikHBfF9{-2Q9|IQG%soNSKx6 ze&_djiSn2K%bhYwJ(J#cfG5XL7YvsfL&g-=<08m3q_G2OB;LG@(e^DQ2>a4#Qqsr* z#n(u1EiJDv!eFakTLiMyRv1{@{y>`L3JqUMJDd>|u)L>VRI_%yNZBY8*8Z_S%i?u(M{wg$-X~wzAELSqcvf zILIHwHkhGJS2L0};{_Z=pwvwo&S0^0znGW$jeb<~ObJ`eQj9Y+j_}@-@y8_S?7%q| z%HU#dn}M^VY1@urR7jt77}WR2F=;VNyj>`e{np!JjEA$96w_!kafocy^e2YICir79 zNM>S?Br|G4*2}0#ZIY+J>n;@f>jc_#CWL-jo@sv^6PgqSV}v$5TMpsR)5ATOLkKWhBjRUz;Jrj>E=E&SY2rq<8=%ZyYr@# ziQTDgHnDr+H~pA3!QP|J8MR`W+Ktx-@SA$VnDPo>OtK%OZIHwtYMMxz!A6;+9*j$& z(%krW+N_wE5X`2wbHpl{RU6g$R%n#g8lh1uJ79Gsvf+(Av*jvn148RKNAjsAM4+(B z3XLSEQ8=ctwhQQ`6acPP`s1P<{S2j4#?R1JrGA~Lsu@qs z+Q86h6DW!7Zs>jl@@9-RTVbYO@6Cz6t4c`d8pIfGqXn1(iEnOV`wBzn~5lR zRi+n8^;}iTMyu8Z+Kjiyz?vn57+ozAsio4^go<~~=}AV+CW4Y3Z|7Jpu>LbhhyV=| zS*RFzgRy&)J|X9Zz6Dd+pJ=!Wy&WsB8S0`@+RW=%(q{ZC@12=QftP;z%gOH2kwz=0 zn2mTd5>wd)V!P7AznR5_>{IJmGD&{L%84R}_B0`niT^gl;1-ScqrXO+ByaW9P6<#D zXWLcLXt_Z4)*?1<(m|j(BY-x_CNu|$FZw!jTt^uQFgPwz45A_a7$F6#V_h8<6Q7zG zjxfMZd%T!oE=7hNMixC!lu}V>xXUXhhCpicIg;)t#4gzn+{u$9cufGo&aIu@EPM@f z5Q_GCDJ5G*033FtRVk%n5h*K)VrtAFs4nkIpd$dznoyQLA@DZQGZBSx%WT37s8=WW zpm@SsX55$=G0Qtc46jF+ek8ceK&Ut}(wL;&L5)P-0JOG?V?7N(J`bdIgExT<61I~} zfRVA)BLfls_jD*{%T~`knoNFzN)zL=3VH2LO&*H>jOYkr26Z9GA8Tgb=;YV~%P#6q zjJ0M*)GSKa_12Y6SUr;-OX6aZ0Ip3nZ-6sjRhyiDpybYCsI?_3p@T%;+MdzI0V)a} zwe5}Q7=M@jyf$uXbJ6Ntvz7b=Rp<&JwM#l4q9xO-YTDY>Y{GvgEH4acfEXh+x9MkM z8q6sBYWi8~$7~x_eY#(nPU^Uwbssw*rlZMA@#-5pAi5v*afWElIxz6~6jSqTeYyq35`6dB^cD;Aa}m0X+^?9N^^k9CzLYLnK{c$)R7SVOm#v+X^1h)xE#(ZJNPTRTBSQL2&ggQYqhgw zu}Wsh^rO_ww3+h_IGIY6OEfI%>o#diBdwZn*dQSU)k47J>U;<9w^JLWiQyEAwko3A ztdfn@xZyt8gtP0rD<5YO6Xp(H`AapseWIt-zoao#Vd(HsUwu0YEP zBv?*8n^AXT#c4A(lA>G=4E*|U+=9utm^r?F&z=c6Cl98|#}hB-%XRV-=;7z;v0E-o z(v_=LUlOmpbd@9-)7A0H)hnx&@;3QO$Vjv0WB>myw~Z}dK6C%Xrn@IzdH1$EW-@|0 QonFj5`|L}vzHH|I19^HZ`Tzg` diff --git a/docs/manual/manual.pdf b/docs/manual/manual.pdf index e8e15cdf5d11ca153fdd4f0beadd392d4c5712d9..7a0d3e01855d72749776d163588db6cbf54d5eda 100644 GIT binary patch delta 62827 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 delta 58886 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 azH9ei@7nRk8QdO1k24!L9{Z9P%=~{+Upg!R diff --git a/docs/manual/options.pdf b/docs/manual/options.pdf index 1ef11316a27578345f2b9ae0b5693828b55f4491..814590eeb4556e921d02481a86fde1ab5f870a30 100644 GIT binary patch delta 9912 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

EeSH6>_Bw7wk9 z2Gkivm0?6qBP1&P8J5K2#6VkzZ325>ALJ-Z0~n4`Z+6-UtV$dVX&|A5ZNfA7#yrnr zPy^D~2L<|bf%{5oMu5~oLoA5x!ueH+84(IIx=;kHF&mH78Q?kAD6!BRqH%|=0jY0* zKXezEFn}my3dfQZMoiEdOt_%$#owiH{a~R-ASA>)78)uPR+c6(HDhV0x9Gc|QmB5g zkjH2mv(R$1hf``F4p>IOQDE`@lVv$fq*!PX&@i!}gebRIo5+xi5!hjtR zNc}aO(x=gwV;LL;m{u{U0R}Y1R76L~%5iv!=6D)zB{Vt1NpNV)2pt#Zi2yS!`ZARA zubzB%L||}!z-WVo1kR^IMuq=Zs6|}$IPpI`7Fj&TP}nfE0DUw|c(`X!bL3P0fi7UJ z6i)zNh{rr3V&3tp=@MN>g4AF(0h`izN}{kl=3%Ttg@&hitgYvv9H1UUX~K}5K4 z*Wms@bwKd{3;ZzdVDW?=2O}KMaM-;C&xjaVd8jZbSz*r7XiD1f2M%II2l`HIXyAcI zC^2~sbQy&jY8Y-~a4zsX;E%m5ViL>?6xLWkl3*eQcQ-f}L;@2ZUZg)e0*TQsD!j;I z4FfO2w2B;1AQYEmS}?g$7#NVGSd9`04$~k3c#LMQ0JmEx77!LSt@@PV0?D@(QH{)n z?jHkE(7f|%6CP+FvC&eXc({zz)FmjF*mVfp%&2#KpE4IZK6T@#O=uAlI=B2x}#ixx{ozfBEe~l7;X5A1YE}=AB3981a^4^HX1!N*fjE|jbUJfD+A3F!g&85A0$Bvuyv4Cm<>`5wNV(- za3Li9$IBEb9riL@5TiDrA`(>?z_1n@YyztJBs5x|WJxW?qy=;Z{&a(`gY&6}PK7@#gvktB2(pXXcoHo=Bn-A_i3A&u^8;>Bu`mg6H-McG zG!64aq|tg!5qfmLXoMY>9a3FwnT|6V@fefB}&>f6s{5?h9n;|%AO_Dn2;^4 z(^wiQS&Jk@jUr1Z#qZqjsCb@UuiyRW-p{$u=R9Y5pEZArT1LFu)*&(`fy}d1xH>Jl z&uM2r`?2n5iOSp`4j%b2@aT1YYnQh!XQV@f_lD;~_UrN6pWOVMO&d?QTIh2rIPR&} zb&rq%l?}TLUuW*(D?jCyYW_3!TJQ98WlLOj)-N>U4FCDd!iM7;pB6uyz2xT+nyHQ% zCl)>lH#jML$g+A_(Xev+crABVQ|H5BPKtzSm&f(W`Lq5f-fqor0e`u=nyEXmZUaul zE)Jj6>$lL-*G}iE-5S&~$MiP%QMjx!AU)Qsz+_BJ`oy%D{#F}_xNSvKR)6M zowu)Gv(|@8tscW;Z@rp1>lzh3C-=OWrsILP4>iT@{ddZ<51i5M`g+z&Py4$5t7Ucb z_O9vfP}1e%`_%mdr}+G|?^D-S_uW%Arxxz^>Ys4(_Q0~GHHtXx8m9$+%m18^ozZNl z<+fvfP5yRu1JZTR=z>)Vn`108-cPZ2kGvIh$Zyu>R@!my3@yIHOg0fA9=1Jwe-@A!I8_CukiC-^7gv@ zdC9zAx>fJ}MY==pItMT{Z~orhwBwCd(x}ulJ(n9#l4>1c} zM(lY6(uFQ|Q7$2gb2P;=av zaOBv!Wa|Q&IMyt#$eR;d5!q`i7VZe!XZbsklEd4n5G-JQ+ue}HN zq=xL>Y*=k)d-$H?Z?_lrEnl}$E{_=<8Rs!t_3`#2;e&+GhP;USrxoghPtHnWOI%%^ z+b{5+yMM?1f@ZCJ>8(e#QE*LVdYWy;3%vpN4e#kM^xM3`@@7ly)GG!)r*Fve8_div zEt@`UTQ9|@u!uwViH7fVUj5!}#1DQZ&&EC*m~6=0_!t(yVVu4q`|^{mWvzqUJ$|pv z9lvpZ^@&)o-_71USYETz{`KOKzK`8rR+k2pSv%_AHC9x++$f*@K=Zx7r%jg~7RfOq z`&@0b5}&Mn?dPzmJpO*QRgz$+Si3AY%BSR^{tqcdth!aS!glz(IW*HrALyXkpd;F87&Sd9d?9uR~VrgZr%+aeC9E zL9WH&p~Jju4Z=g8w`wTv&mSNExiUV*?bfU!mw)c9Ntxv4bR*4oNUy-jHv*IP%zyE* ztMM?eK&R%=g}jEwjx4hp*Ae4(8(3-fEG;^%_IUHF*XRFTW4E~6K4|oosHMIUV`^HQ z>oj_GeP(F{x9HcmOm%7uYOJrQ4!)rG@nX}X;F?9jOGf2XD)xSy5MjJm z5tSJx_s;{h8-`cjc~N-H{Q06qpKB6xyq0~g z&EKeD)R_0~&#+)2$HXGve)qHs!tj!FzXm4nBc5JqS^IcMU}bjh;tON1&sh8ZwWay{ z39F3FelUMI;I79{%cmZ-`a7|_zu&O23OAFF5A0U=w5Beos%)xWFk)WsdtKZbLkA_= zL{>)VQ?EiUXE#kXJ$cylWOZew*~+^W2}d96yLfdk&CE+qoT^%pwx4<65m~)OC)><$ z`PRjUU-T0d-CPzSxxPKcP&S9E(yA0T2lV6VZ|jqr|m6Sq1(K6oXT5JF=SiD zK~w+v2U`C!NcUS)tZUieqv~e!?9*~RMZ}xdqFstEmNN%sN;(5&ebxl4o(Wc!Nvjjq zT_2`cS(@kAmDKL>P+enAUwNdpMcD3K?}Zt!y!Oos(u&?aBG$z%B<2F6UQDIkZ^r|f^joi3LIN@PrS#9#uL$h(MlLyB& z@BVq(0XtS=R@=o%!`_zE$i5qveK9L4J@Zjea#o+Xy)#z)ZD(uu`<{UVikIc@)>`x~ z^c|g@RvXnabKK@F7mJEUTK5aFdN(6vLB9n5YfZJUntr+e=uwP+h*Ngz@(|~uZJv=e zF}k<@@D7L?yU}`{=kR%2B}*-rbx+kdS{kSQbJ`P!tRLfc-fFr;9sSPdpW{j0t{kd5 zU0fdMXS8emHIuR;zm}!R4eLEG9a-(NLV*Dd-W8f z^9Pq)*%aXUpUS!$WqrC*jF4dJWvTEf$#E(v+Bb2xG8>VYRZ)932+{&|1XUu7*Df1Q*4tN6<=k76{ZHU%vbMpZAn zsHKzTGJ{RJ`f2w2si!7SstiinnjN&Xw01~NR<_-?xpR|)$4C5qMrW6;XP_Xg}Yz$&G|#sab`+^R+(mT zc1zMgCUm>=T+`C!j(6U6buV%?m-_^IhlYjtNVV%_J*94OvOZ_zn`D|Y={@|EhHjSS zNd}vN_-V7uPA1iEmg&og1akgRMM_E0qWsa?xvyeItBfo0?=|+B`gxKM*8gj8Rolcyi@It8k-rNKDYE} z9$ytM& zy0YgV6P;sBFABNctY4((7S>i;C(BL_>PcRdediavrTgtEIr*iA_p6_oz9TMnTi}y!}X+eaF;MK)i9GO?xz6M-?|goIbWirNe# zx0&o28aB?)GsJ|XNU3p)%)dJ$e9yB9@l|AZLHwR(;Fozj&89m`e$Q~yo2@cWb(XU6 zWGNGtPI#DPl(2JAA61I9@l^8J885STVN3{<>2e!SMl_*G_R9lHzysIzK*0n5<$>qn zf&B6yDj%pX55N(g=rab}WU6k%Sc)M8mM2Lof-)xvb4$66^Ahjzo?$*F7UPFg1W6F> zM_yQA&ra6oz(rte1)vhBcQh@B>7qUJhQJE-O zU=SL(juTM66e+Tll&55Yi7T>7bbqY^u%HAbB;eC71x4||Lg!^CEGP=hiya3{;xv(x zJb{G*1p!4f9Evw(JYiBWB!|7rP#ktW;2d=p#8MkB6dh_YJO%=a?L;4z<`GL1U}+4c z6f3fr-W-K^+J+z~j>RBB@dSareBFtuX(c8QJ3;7U_@rrqBcv!`p}@qYIV=Uyw1BJ1 zkOXQ%nqizTilLmxAAP0wLJ4mxUYIlaEFkdh%01g$J6)21!Mm(o`Xw0~PH0%c~<&DN5JhgPE}7kT6{eJ(Vml zjm7o?&<+-kAZZjV(2oL))0HgnzeEfQkcBxkvY^d{aX{AGi4+_Ou0wpmQIv?fougQY zglWJ6YfLx*DJB_>2NOp#SkQ4$UeHM3pwB_8Ds&)iG2amh9HcM&Adi8CgIL7`1Pr2Z z=U9k$Y0SsYbmSiywE0k2L?F-@~2d#lnE18U~o?h zU=-Ayf`Cn-8~_J%JKz_MYz~HzFZ{leN#sOPifZWuPCOJS)FlwA|C?IB&Wb$2)2wt| z$pQr{00K*xP#Lg9#6!+wB-2({!_2IcX-#_^tcT%g za35k(7;oFq*zRSX!FwWT0n29)|t*`31pJT8{ z;sHIFNqDFqs6H@=d`VAV$pq;X+8~e#s|&n9VWS<)W;Et`0i>5?pFu6`FY$lNnQuxZ z5A!XWB_UV0b^qKyO2~c`bH$mvMCHfAv1cDOr%=#|4CFg04_IJn3wjK!@qi?Q^<6;0Ha8-RkGilH!6q6JeEUVy4*$Sn zfQ9a+YiDY4&^jajfms7<&_o`XZFHjRqlPwbpXLpaL1;mC!xA-3ZH8jVT@ zG)_RE05s_EztsSSMH+2>fd<+5zjN)w77zveAO-tIlp)2TEetf4BHE;ruvOs@VF*e|m{ia`7tpWT5KzS&>lf$M)*O?1a9x6ET`?Gr?QWNC9bKe z%9weyFn&BE3hY>lngGM%IDr`pDk*nWqCI>GqfAEpzenbnj2a~m4f6~MTNdKuD~HG; OSy4V@i2c+F^8W+b(#OyM diff --git a/docs/spatch.1 b/docs/spatch.1.in similarity index 93% rename from docs/spatch.1 rename to docs/spatch.1.in index 6649f53..5459320 100644 --- a/docs/spatch.1 +++ b/docs/spatch.1.in @@ -61,10 +61,10 @@ the semantic patch file process all files in directory recursively .TP .B -iso_file \fI\fP -(default=/usr/local/share/coccinelle/standard.iso) +(default=SHAREDIR/standard.iso) .TP .B -macro_file \fI\fP -(default=/usr/local/share/coccinelle/standard.h) +(default=SHAREDIR/standard.h) .TP .B -debug print some information to help debug the matching process @@ -118,7 +118,7 @@ show summary of options. Apply the semantic patch foo.cocci to the C file foo.c. The semantic patch is applied modulo a set of isomorphisms contained in standard.iso (standard.iso is by default located in -/usr/local/share/coccinelle/standard.iso). A patch showing the effect of +SHAREDIR/standard.iso). A patch showing the effect of the application, if any, will be generated on the standard output. ./spatch -sp_file foo.cocci foo.c -o /tmp/newfoo.c @@ -129,25 +129,25 @@ The same as the above, except that a modified version of foo.c is stored in It is also possible to apply spatch to all of the C files in a directory: - ./spatch -cocci_file foo.cocci -dir foodir . + ./spatch -cocci_file foo.cocci -dir foodir If the semantic patch is not working as expected, the option -debug shows selection of information about the application of a semantic patch to a file or directory. .SH FILES -.I /usr/local/share/coccinelle/standard.iso +.I SHAREDIR/standard.iso .RS This file contains the default set of isomorphisms. .RE -.I /usr/local/share/coccinelle/standard.h +.I SHAREDIR/standard.h .RS This file contains the default set of macro hints. .SH ENVIRONMENT .IP COCCINELLE_HOME The path to coccinelle share directory. Defaut is -.I /usr/local/share/coccinelle +.I SHAREDIR .SH REFERENCES Y. Padioleau, J.L. Lawall, R.R Hansen, G. Muller diff --git a/engine/Makefile b/engine/Makefile index 4bb0dc5..6a7fa2c 100644 --- a/engine/Makefile +++ b/engine/Makefile @@ -1,4 +1,6 @@ -# Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen +# Copyright 2010, INRIA, University of Copenhagen +# Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix # This file is part of Coccinelle. # diff --git a/engine/asttoctl.ml b/engine/asttoctl.ml index f9df539..5e885c6 100644 --- a/engine/asttoctl.ml +++ b/engine/asttoctl.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/asttoctl.mli b/engine/asttoctl.mli index af6749e..611a946 100644 --- a/engine/asttoctl.mli +++ b/engine/asttoctl.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/asttoctl2.ml b/engine/asttoctl2.ml index 9ffd8b3..b66c879 100644 --- a/engine/asttoctl2.ml +++ b/engine/asttoctl2.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -467,11 +447,16 @@ let contains_modif = bind (mcode r ((),(),bef,Ast.NoMetaPos)) res | Ast.Decl(bef,_,decl) -> bind (mcode r ((),(),bef,Ast.NoMetaPos)) res | _ -> res in + let init r k i = + let res = k i in + match Ast.unwrap i with + Ast.InitList(allminus,_,_,_,_) -> allminus or res + | _ -> res in let recursor = V.combiner bind option_default mcode mcode mcode mcode mcode mcode mcode mcode mcode mcode mcode mcode do_nothing do_nothing do_nothing do_nothing - do_nothing do_nothing do_nothing do_nothing do_nothing do_nothing + do_nothing do_nothing do_nothing do_nothing init do_nothing do_nothing rule_elem do_nothing do_nothing do_nothing do_nothing in recursor.V.combiner_rule_elem diff --git a/engine/asttoctl2.mli b/engine/asttoctl2.mli index 33d564f..a6732d7 100644 --- a/engine/asttoctl2.mli +++ b/engine/asttoctl2.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/asttomember.ml b/engine/asttomember.ml index 6e8b144..bde798d 100644 --- a/engine/asttomember.ml +++ b/engine/asttomember.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/asttomember.mli b/engine/asttomember.mli index 8b38708..4ceb553 100644 --- a/engine/asttomember.mli +++ b/engine/asttomember.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/c_vs_c.ml b/engine/c_vs_c.ml index aaf3231..a38b037 100644 --- a/engine/c_vs_c.ml +++ b/engine/c_vs_c.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/c_vs_c.mli b/engine/c_vs_c.mli index 86e9c83..63d887d 100644 --- a/engine/c_vs_c.mli +++ b/engine/c_vs_c.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/check_exhaustive_pattern.ml b/engine/check_exhaustive_pattern.ml index 6315bed..5996c89 100644 --- a/engine/check_exhaustive_pattern.ml +++ b/engine/check_exhaustive_pattern.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/check_reachability.ml b/engine/check_reachability.ml index 5acf0df..3bff497 100644 --- a/engine/check_reachability.ml +++ b/engine/check_reachability.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/check_reachability.mli b/engine/check_reachability.mli index c4c0fa8..a436341 100644 --- a/engine/check_reachability.mli +++ b/engine/check_reachability.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/cocci_vs_c.ml b/engine/cocci_vs_c.ml index c726fb9..5f0ad2a 100644 --- a/engine/cocci_vs_c.ml +++ b/engine/cocci_vs_c.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -100,11 +80,10 @@ let (need_unordered_initialisers : B.initialiser B.wrap2 list -> bool) = | B.InitDesignators _ | B.InitFieldOld _ | B.InitIndexOld _ - -> true + -> true | B.InitExpr _ | B.InitList _ - -> false - ) + -> false) (* For the #include in the .cocci, need to find where is * the '+' attached to this element, to later find the first concrete @@ -1936,7 +1915,6 @@ and onedecl = fun allminus decla (declb, iiptvirgb, iistob) -> ) | A.StructUnionName(sua, sa) -> - fullType tya2 structnameb >>= (fun tya2 structnameb -> let tya1 = A.StructUnionDef(tya2,lba,declsa,rba)+> A.rewrap tya1 @@ -2199,21 +2177,22 @@ and (initialiser: (A.initialiser, Ast_c.initialiser) matcher) = fun ia ib -> | _ -> fail ) - | (A.InitList (ia1, ias, ia2, []), (B.InitList ibs, ii)) -> + | (A.InitList (allminus, ia1, ias, ia2, []), (B.InitList ibs, ii)) -> (match ii with | ib1::ib2::iicommaopt -> tokenf ia1 ib1 >>= (fun ia1 ib1 -> tokenf ia2 ib2 >>= (fun ia2 ib2 -> - initialisers ias (ibs, iicommaopt) >>= (fun ias (ibs,iicommaopt) -> + initialisers allminus ias (ibs, iicommaopt) >>= + (fun ias (ibs,iicommaopt) -> return ( - (A.InitList (ia1, ias, ia2, [])) +> A.rewrap ia, + (A.InitList (allminus, ia1, ias, ia2, [])) +> A.rewrap ia, (B.InitList ibs, ib1::ib2::iicommaopt) )))) | _ -> raise Impossible ) - | (A.InitList (i1, ias, i2, whencode),(B.InitList ibs, _ii)) -> + | (A.InitList (allminus, i1, ias, i2, whencode),(B.InitList ibs, _ii)) -> failwith "TODO: not handling whencode in initialisers" @@ -2310,13 +2289,13 @@ and designator da db = fail -and initialisers = fun ias (ibs, iicomma) -> +and initialisers = fun allminus ias (ibs, iicomma) -> let ias_unsplit = unsplit_icomma ias in let ibs_split = resplit_initialiser ibs iicomma in let f = if need_unordered_initialisers ibs - then initialisers_unordered2 + then initialisers_unordered2 allminus else initialisers_ordered2 in f ias_unsplit ibs_split >>= @@ -2347,11 +2326,21 @@ and initialisers_ordered2 = fun ias ibs -> | _ -> fail - -and initialisers_unordered2 = fun ias ibs -> +and initialisers_unordered2 = fun allminus ias ibs -> match ias, ibs with - | [], ys -> return ([], ys) + | [], ys -> + if allminus + then + let rec loop = function + [] -> return ([],[]) + | (ib,comma)::ibs -> + X.distrf_ini minusizer ib >>= (fun _ ib -> + tokenf minusizer comma >>= (fun _ comma -> + loop ibs >>= (fun l ibs -> + return(l,(ib,comma)::ibs)))) in + loop ibs + else return ([], ys) | (x,xcomma)::xs, ys -> let permut = Common.uncons_permut_lazy ys in @@ -2371,7 +2360,7 @@ and initialisers_unordered2 = fun ias ibs -> ) >>= (fun x e -> let rest = Lazy.force rest in - initialisers_unordered2 xs rest >>= (fun xs rest -> + initialisers_unordered2 allminus xs rest >>= (fun xs rest -> return ( x::xs, Common.insert_elem_pos (e, pos) rest @@ -2927,12 +2916,17 @@ and (typeC: (A.typeC, Ast_c.typeC) matcher) = A.Type(None,ty) -> (match A.unwrap ty with A.StructUnionName(sua, None) -> - tokenf sua iisub >>= (fun sua iisub -> - let ty = - A.Type(None, - A.StructUnionName(sua, None) +> A.rewrap ty) - +> A.rewrap s in - return (ty,[iisub])) + (match (term sua, sub) with + (A.Struct,B.Struct) + | (A.Union,B.Union) -> return ((),()) + | _ -> fail) >>= + (fun _ _ -> + tokenf sua iisub >>= (fun sua iisub -> + let ty = + A.Type(None, + A.StructUnionName(sua, None) +> A.rewrap ty) + +> A.rewrap s in + return (ty,[iisub]))) | _ -> fail) | A.DisjType(disjs) -> disjs +> @@ -3072,16 +3066,64 @@ and storage_optional_allminus allminus stoa (stob, iistob) = let rec loop acc = function [] -> fail | i1::iistob -> - let try1 = - tokenf x i1 >>= (fun x i1 -> - let rebuilt = (List.rev acc) @ i1 :: iistob in - return (Some x, ((stobis, inline), rebuilt))) in - let try2 x = loop (i1::acc) iistob x in (* x for laziness *) - try1 >||> try2 in + let str = B.str_of_info i1 in + (match str with + "static" | "extern" | "auto" | "register" -> + (* not very elegant, but tokenf doesn't know what token to + match with *) + tokenf x i1 >>= (fun x i1 -> + let rebuilt = (List.rev acc) @ i1 :: iistob in + return (Some x, ((stobis, inline), rebuilt))) + | _ -> loop (i1::acc) iistob) in loop [] iistob else fail ) +and inline_optional_allminus allminus inla (stob, iistob) = + (* "iso-by-absence" for storage, and return type. *) + X.optional_storage_flag (fun optional_storage -> + match inla, stob with + | None, (stobis, inline) -> + let do_minus () = + if allminus + then + minusize_list iistob >>= (fun () iistob -> + return (None, (stob, iistob)) + ) + else return (None, (stob, iistob)) + in + + if inline + then + if optional_storage + then + begin + if !Flag.show_misc + then pr2_once "USING optional_storage builtin isomorphism"; + do_minus() + end + else fail (* inline not in SP and present in C code *) + else do_minus() + + | Some x, ((stobis, inline)) -> + if inline + then + let rec loop acc = function + [] -> fail + | i1::iistob -> + let str = B.str_of_info i1 in + (match str with + "inline" -> + (* not very elegant, but tokenf doesn't know what token to + match with *) + tokenf x i1 >>= (fun x i1 -> + let rebuilt = (List.rev acc) @ i1 :: iistob in + return (Some x, ((stobis, inline), rebuilt))) + | _ -> loop (i1::acc) iistob) in + loop [] iistob + else fail (* SP has inline, but the C code does not *) + ) + and fullType_optional_allminus allminus tya retb = match tya with | None -> @@ -3624,8 +3666,9 @@ let rec (rule_elem_node: (A.rule_elem, Control_flow_c.node) matcher) = match List.filter (function A.FType(s) -> true | _ -> false) fninfoa with [A.FType(t)] -> Some t | _ -> None in - (match List.filter (function A.FInline(i) -> true | _ -> false) fninfoa - with [A.FInline(i)] -> failwith "not checking inline" | _ -> ()); + let inla = + match List.filter (function A.FInline(i) -> true | _ -> false) fninfoa + with [A.FInline(i)] -> Some i | _ -> None in (match List.filter (function A.FAttr(a) -> true | _ -> false) fninfoa with [A.FAttr(a)] -> failwith "not checking attributes" | _ -> ()); @@ -3645,6 +3688,8 @@ let rec (rule_elem_node: (A.rule_elem, Control_flow_c.node) matcher) = (A.undots paramsa) paramsb >>= (fun paramsaundots paramsb -> let paramsa = redots paramsa paramsaundots in + inline_optional_allminus allminus + inla (stob, iistob) >>= (fun inla (stob, iistob) -> storage_optional_allminus allminus stoa (stob, iistob) >>= (fun stoa (stob, iistob) -> ( @@ -3662,6 +3707,7 @@ let rec (rule_elem_node: (A.rule_elem, Control_flow_c.node) matcher) = let fninfoa = (match stoa with Some st -> [A.FStorage st] | None -> []) ++ + (match inla with Some i -> [A.FInline i] | None -> []) ++ (match tya with Some t -> [A.FType t] | None -> []) in @@ -3678,7 +3724,7 @@ let rec (rule_elem_node: (A.rule_elem, Control_flow_c.node) matcher) = }, ioparenb::icparenb::iifakestart::iistob) ) - )))))))) + ))))))))) | _ -> raise Impossible ) diff --git a/engine/cocci_vs_c.mli b/engine/cocci_vs_c.mli index b4f1a7b..2200d9e 100644 --- a/engine/cocci_vs_c.mli +++ b/engine/cocci_vs_c.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/ctlcocci_integration.ml b/engine/ctlcocci_integration.ml index 1b9f524..b603e4c 100644 --- a/engine/ctlcocci_integration.ml +++ b/engine/ctlcocci_integration.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/ctlcocci_integration.mli b/engine/ctlcocci_integration.mli index 3edb984..e2a5793 100644 --- a/engine/ctlcocci_integration.mli +++ b/engine/ctlcocci_integration.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/ctltotex.ml b/engine/ctltotex.ml index 5e18fef..b9308be 100644 --- a/engine/ctltotex.ml +++ b/engine/ctltotex.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/ctltotex.mli b/engine/ctltotex.mli index 1d5a5e8..a403d62 100644 --- a/engine/ctltotex.mli +++ b/engine/ctltotex.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/flag_engine.ml b/engine/flag_engine.ml index ca07510..afb8789 100644 --- a/engine/flag_engine.ml +++ b/engine/flag_engine.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/flag_matcher.ml b/engine/flag_matcher.ml index 128ff88..100dead 100644 --- a/engine/flag_matcher.ml +++ b/engine/flag_matcher.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/isomorphisms_c_c.ml b/engine/isomorphisms_c_c.ml index 87e3cb3..6383da7 100644 --- a/engine/isomorphisms_c_c.ml +++ b/engine/isomorphisms_c_c.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/lib_engine.ml b/engine/lib_engine.ml index 171bb4b..7db4a94 100644 --- a/engine/lib_engine.ml +++ b/engine/lib_engine.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/lib_matcher_c.ml b/engine/lib_matcher_c.ml index 26fb1f5..1fd1d49 100644 --- a/engine/lib_matcher_c.ml +++ b/engine/lib_matcher_c.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/lib_matcher_c.mli b/engine/lib_matcher_c.mli index 26fb1f5..1fd1d49 100644 --- a/engine/lib_matcher_c.mli +++ b/engine/lib_matcher_c.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/main.ml b/engine/main.ml index 877022f..680ff46 100644 --- a/engine/main.ml +++ b/engine/main.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/pattern_c.ml b/engine/pattern_c.ml index fd7b11a..04519d0 100644 --- a/engine/pattern_c.ml +++ b/engine/pattern_c.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/pattern_c.mli b/engine/pattern_c.mli index 539fbfc..93756f9 100644 --- a/engine/pattern_c.mli +++ b/engine/pattern_c.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/postprocess_transinfo.ml b/engine/postprocess_transinfo.ml index d880125..73c7c0a 100644 --- a/engine/postprocess_transinfo.ml +++ b/engine/postprocess_transinfo.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/postprocess_transinfo.mli b/engine/postprocess_transinfo.mli index bf1c06e..b5fde8f 100644 --- a/engine/postprocess_transinfo.mli +++ b/engine/postprocess_transinfo.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/pretty_print_engine.ml b/engine/pretty_print_engine.ml index deba5b7..fbad228 100644 --- a/engine/pretty_print_engine.ml +++ b/engine/pretty_print_engine.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/pretty_print_engine.mli b/engine/pretty_print_engine.mli index b217367..602f118 100644 --- a/engine/pretty_print_engine.mli +++ b/engine/pretty_print_engine.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/sgrep.ml b/engine/sgrep.ml index 1c142d6..f1089b2 100644 --- a/engine/sgrep.ml +++ b/engine/sgrep.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/engine/transformation_c.ml b/engine/transformation_c.ml index 55c220f..69b9050 100644 --- a/engine/transformation_c.ml +++ b/engine/transformation_c.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -477,7 +457,7 @@ module XTRANS = struct | Ast_cocci.CONTEXT (Ast_cocci.DontCarePos,_) | Ast_cocci.MINUS (Ast_cocci.DontCarePos,_,_,_) -> Ast_cocci.DontCarePos - | _ -> failwith "weird: dont have position info for the mcodekind" + | _ -> failwith "weird: dont have position info for the mcodekind 2" let distrf (ii_of_x_f, distribute_mck_x_f) = fun ia x -> fun tin -> diff --git a/engine/transformation_c.mli b/engine/transformation_c.mli index 0b57d32..71e36a3 100644 --- a/engine/transformation_c.mli +++ b/engine/transformation_c.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/env.sh b/env.sh index 02e1822..05273a6 100644 --- a/env.sh +++ b/env.sh @@ -44,7 +44,7 @@ LD_LIBRARY_PATH=$COCCINELLE_HOME:$LD_LIBRARY_PATH ; export LD_LIBRARY_PATH # To find .py files like the one in python/coccib echo adding $COCCINELLE_HOME/python to PYTHONPATH -PYTHONPATH=$COCCINELLE_HOME/python:PYTHONPATH ; export PYTHONPATH +PYTHONPATH=$COCCINELLE_HOME/python:$PYTHONPATH ; export PYTHONPATH fi diff --git a/flag_cocci.ml b/flag_cocci.ml index 26ad3bc..eb7ce20 100644 --- a/flag_cocci.ml +++ b/flag_cocci.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/globals/Makefile b/globals/Makefile index b38a110..b292746 100644 --- a/globals/Makefile +++ b/globals/Makefile @@ -1,4 +1,6 @@ -# Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen +# Copyright 2010, INRIA, University of Copenhagen +# Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix # This file is part of Coccinelle. # diff --git a/globals/config.ml.in b/globals/config.ml.in index 6cefbb9..2134e4e 100644 --- a/globals/config.ml.in +++ b/globals/config.ml.in @@ -1,4 +1,4 @@ -let version = "0.2.3rc1" +let version = "0.2.3rc2" let path = try (Sys.getenv "COCCINELLE_HOME") diff --git a/globals/flag.ml b/globals/flag.ml index 24b58ce..982cfd3 100644 --- a/globals/flag.ml +++ b/globals/flag.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -52,8 +32,8 @@ let show_trying = ref false let track_iso_usage = ref false -type scanner = Glimpse | Google of string | NoScanner -let scanner = ref NoScanner +type scanner = Glimpse | Grep | Google of string | NoScanner +let scanner = ref Grep let pyoutput = ref "coccilib.output.Console" diff --git a/main.ml b/main.ml index f180c38..3e4deab 100644 --- a/main.ml +++ b/main.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -63,6 +43,7 @@ let backup_suffix = let outplace_modif = ref false (* generates a .cocci_res *) let preprocess = ref false (* run the C preprocessor before cocci *) let compat_mode = ref false +let ignore_unknown_opt = ref false (* somehow obsolete now *) let dir = ref false @@ -320,6 +301,8 @@ let short_options = [ "-local_includes", Arg.Unit (function _ -> FC.include_options := FC.I_NORMAL_INCLUDES), " causes local include files to be used"; + "-ignore_unknown_options", Arg.Set ignore_unknown_opt, + " For integration in a toolchain (must be set before the first unknown option)"; "-include_headers", Arg.Set include_headers, " process header files independently"; "-I", Arg.String (fun x -> @@ -357,7 +340,7 @@ let short_options = [ " guess what"; "-date", Arg.Unit (fun () -> - pr2 "version: $Date: 2010/05/03 11:10:04 $"; + pr2 "version: $Date: 2010/06/07 09:53:34 $"; raise (Common.UnixExit 0) ), " guess what"; @@ -667,17 +650,48 @@ let all_options = let arg_align2 xs = Arg.align xs +> List.rev +> Common.drop 2 +> List.rev +(* + Ignore unknown option + + This simplifies the integration of Coccinelle in toolchain. For + instance, spatch can then be used as a checker in the Linux build + system. + +*) +let check_include_path () = + let opt = Array.get Sys.argv !Arg.current in + let is_include_re = Str.regexp "-I\\(.*\\)" in + if Str.string_match is_include_re opt 0 then + let path = Str.matched_group 1 opt in + FC.include_path:= path::!FC.include_path + else () + +let rec arg_parse_no_fail l f msg = + try + check_include_path (); + Arg.parse_argv Sys.argv l f msg; + with + | Arg.Bad emsg -> + arg_parse_no_fail l f msg + | Arg.Help msg -> (* printf "%s" msg; exit 0; *) + raise Impossible (* -help is specified in speclist *) + (* copy paste of Arg.parse. Don't want the default -help msg *) let arg_parse2 l f msg = (try Arg.parse_argv Sys.argv l f msg; with - | Arg.Bad msg -> (* eprintf "%s" msg; exit 2; *) - let xs = Common.lines msg in - (* take only head, it's where the error msg is *) - pr2 (List.hd xs); - !short_usage_func(); - raise (Common.UnixExit (2)) + | Arg.Bad emsg -> (* eprintf "%s" msg; exit 2; *) + if not !ignore_unknown_opt then + begin + let xs = Common.lines emsg in + (* take only head, it's where the error msg is *) + pr2 (List.hd xs); + !short_usage_func(); + raise (Common.UnixExit (2)) + end + else + arg_parse_no_fail l f msg; | Arg.Help msg -> (* printf "%s" msg; exit 0; *) raise Impossible (* -help is specified in speclist *) ) diff --git a/ocamlsexp/Makefile b/ocamlsexp/Makefile index dc91b3e..f72b85b 100644 --- a/ocamlsexp/Makefile +++ b/ocamlsexp/Makefile @@ -15,12 +15,12 @@ SRC= \ #SOURCES = \ # parser.mly \ # lexer.mll \ -# sexp.mli path.mli conv.mli +# sexp.mli path.mli conv.mli -TARGET=sexplib1 +TARGET=sexplib TARGETPACK=sexplib -#LIB_PACK_NAME = sexplib +LIB_PACK_NAME = Sexplib ############################################################################## # Generic variables @@ -90,13 +90,13 @@ OBJS = $(SRC:.ml=.cmo) OPTOBJS = $(SRC:.ml=.cmx) all: $(TARGET).cma $(TARGETPACK).cmo -all.opt: $(TARGET).cmxa +all.opt: $(TARGET).cmxa $(TARGETPACK).cmx $(TARGET).cma: $(OBJS) - $(OCAMLC) -a -o $(TARGET).cma $(OBJS) + $(OCAMLC) -a -o $@ $(OBJS) $(TARGET).cmxa: $(OPTOBJS) $(LIBS:.cma=.cmxa) - $(OCAMLOPT) -a -o $(TARGET).cmxa $(OPTOBJS) + $(OCAMLOPT) -a -o $@ $(OPTOBJS) $(TARGET).top: $(OBJS) $(LIBS) $(OCAMLMKTOP) -o $(TARGET).top $(SYSLIBS) $(LIBS) $(OBJS) @@ -104,17 +104,18 @@ $(TARGET).top: $(OBJS) $(LIBS) clean:: rm -f $(TARGET).top - - $(TARGETPACK).cmo: $(OBJS) - $(OCAMLC) -pack -o $(TARGETPACK).cmo $(OBJS) + $(OCAMLC) -pack -o $@ $(OBJS) + +$(TARGETPACK).cmx: $(OPTOBJS) + $(OCAMLOPT) -pack -o $@ $(OPTOBJS) # special handling, fun that they use cpp whereas they claim camplp4 can do everything pre_sexp.cmo: pre_sexp.ml $(OCAMLC) -pp "cpp -w" -c $< pre_sexp.cmx: pre_sexp.ml - $(OCAMLOPT) -pp "cpp -w" -c $< + $(OCAMLOPT) -for-pack $(LIB_PACK_NAME) -pp "cpp -w" -c $< @@ -143,10 +144,11 @@ beforedepend:: parser.ml parser.mli $(OCAMLC) -c $< .mli.cmi: $(OCAMLC) -c $< + .ml.cmx: - $(OCAMLOPT) -c $< + $(OCAMLOPT) -for-pack $(LIB_PACK_NAME) -c $< -.ml.mldepend: +.ml.mldepend: $(OCAMLC) -i $< clean:: diff --git a/parsing_c/Makefile b/parsing_c/Makefile index 04a03c3..3d720ba 100644 --- a/parsing_c/Makefile +++ b/parsing_c/Makefile @@ -10,8 +10,12 @@ TARGET=parsing_c ifeq ($(FEATURE_TARZAN), 1) TARZANSRC=sexp_ast_c.ml -TARZANINCLUDE=-I ../ocamlsexp -endif +ifeq ("$(SEXPDIR)","ocamlsexp") +TARZANINCLUDE=-I ../$(SEXPDIR) +else +TARZANINCLUDE=-I $(SEXPDIR) +endif # Use local ocamlsexp +endif # FEATURE_TARZAN @@ -46,10 +50,11 @@ SRC= flag_parsing_c.ml parsing_stat.ml \ LIBS=../commons/commons.cma ../globals/globals.cma \ ../parsing_cocci/cocci_parser.cma -INCLUDES= -I ../commons -I ../commons/ocamlextra -I ../commons/ocollection \ - $(TARZANINCLUDE) \ +INCLUDESDEP= -I ../commons -I ../commons/ocamlextra -I ../commons/ocollection \ -I ../globals -I ../parsing_cocci +INCLUDES=$(INCLUDESDEP) $(TARZANINCLUDE) + #LIBS=../commons/commons.cma #INCLUDES= -I ../commons SYSLIBS= str.cma unix.cma num.cma @@ -66,7 +71,7 @@ OCAMLC=ocamlc$(OPTBIN) $(OCAMLCFLAGS) $(INCLUDES) OCAMLOPT=ocamlopt$(OPTBIN) $(OPTFLAGS) $(INCLUDES) OCAMLLEX=ocamllex$(OPTBIN) #-ml OCAMLYACC=ocamlyacc -v -OCAMLDEP=ocamldep$(OPTBIN) $(INCLUDES) +OCAMLDEP=ocamldep$(OPTBIN) $(INCLUDESDEP) OCAMLMKTOP=ocamlmktop -g -custom $(INCLUDES) diff --git a/parsing_c/sexp_ast_c.ml b/parsing_c/sexp_ast_c.ml index 7ff3535..3fa0ce6 100644 --- a/parsing_c/sexp_ast_c.ml +++ b/parsing_c/sexp_ast_c.ml @@ -1,5 +1,6 @@ (* generated by ocamltarzan with: camlp4o -o /tmp/yyy.ml -I pa/ pa_type_conv.cmo pa_sexp_conv.cmo pr_o.cmo /tmp/xxx.ml *) open Ast_c +open Sexplib (* let sexp_of_program x = diff --git a/parsing_c/unparse_c.ml b/parsing_c/unparse_c.ml index 23a6fc6..f8c9e34 100644 --- a/parsing_c/unparse_c.ml +++ b/parsing_c/unparse_c.ml @@ -118,7 +118,7 @@ let print_token2 = function | Unindent_cocci2 _ -> "Unindent" let simple_print_all_tokens1 l = - List.iter (function x -> Printf.printf "%s " (print_token1 x)) l; + List.iter (function x -> Printf.printf "|%s| " (print_token1 x)) l; Printf.printf "\n" let simple_print_all_tokens2 l = diff --git a/parsing_c/unparse_cocci.ml b/parsing_c/unparse_cocci.ml index af78f20..d5f24ef 100644 --- a/parsing_c/unparse_cocci.ml +++ b/parsing_c/unparse_cocci.ml @@ -330,6 +330,8 @@ let rec expression e = handle_metavar name (function | Ast_c.MetaExprListVal args -> pretty_print_c.Pretty_print_c.arg_list args + | Ast_c.MetaParamListVal _ -> + failwith "have meta param list matching meta exp list\n"; | _ -> raise Impossible ) @@ -598,7 +600,7 @@ and initialiser nlcomma i = pretty_print_c.Pretty_print_c.init ini | _ -> raise Impossible) | Ast.InitExpr(exp) -> expression exp - | Ast.InitList(lb,initlist,rb,[]) -> + | Ast.InitList(_,lb,initlist,rb,[]) -> mcode print_string lb; start_block(); (* awkward, because the comma is separate from the initialiser *) let rec loop = function @@ -607,7 +609,7 @@ and initialiser nlcomma i = | x::xs -> initialiser nlcomma x; loop xs in loop initlist; end_block(); mcode print_string rb - | Ast.InitList(lb,initlist,rb,_) -> failwith "unexpected whencode in plus" + | Ast.InitList(_,lb,initlist,rb,_) -> failwith "unexpected whencode in plus" | Ast.InitGccExt(designators,eq,ini) -> List.iter designator designators; pr_space(); mcode print_string eq; pr_space(); initialiser nlcomma ini diff --git a/parsing_cocci/.depend b/parsing_cocci/.depend index 633c276..ee2970b 100644 --- a/parsing_cocci/.depend +++ b/parsing_cocci/.depend @@ -1,4 +1,3 @@ -adjacency.cmi: ast0_cocci.cmi adjust_pragmas.cmi: ast0_cocci.cmi arity.cmi: ast0_cocci.cmi ast0_cocci.cmi: type_cocci.cmi ast_cocci.cmi @@ -130,7 +129,7 @@ parse_aux.cmx: type_cocci.cmx semantic_cocci.cmx ../globals/flag.cmx data.cmx \ parse_cocci.cmo: visitor_ast0_types.cmo visitor_ast0.cmi unitary_ast0.cmi \ type_infer.cmi test_exps.cmi single_statement.cmi simple_assignments.cmi \ semantic_cocci.cmo pretty_print_cocci.cmi parse_aux.cmo iso_pattern.cmi \ - iso_compile.cmi insert_plus.cmi get_constants2.cmi get_constants.cmi \ + iso_compile.cmi insert_plus.cmi get_constants2.cmi \ function_prototypes.cmi free_vars.cmi flag_parsing_cocci.cmo \ ../globals/flag.cmo disjdistr.cmi data.cmi context_neg.cmi \ compute_lines.cmi ../commons/common.cmi comm_assoc.cmi check_meta.cmi \ @@ -139,7 +138,7 @@ parse_cocci.cmo: visitor_ast0_types.cmo visitor_ast0.cmi unitary_ast0.cmi \ parse_cocci.cmx: visitor_ast0_types.cmx visitor_ast0.cmx unitary_ast0.cmx \ type_infer.cmx test_exps.cmx single_statement.cmx simple_assignments.cmx \ semantic_cocci.cmx pretty_print_cocci.cmx parse_aux.cmx iso_pattern.cmx \ - iso_compile.cmx insert_plus.cmx get_constants2.cmx get_constants.cmx \ + iso_compile.cmx insert_plus.cmx get_constants2.cmx \ function_prototypes.cmx free_vars.cmx flag_parsing_cocci.cmx \ ../globals/flag.cmx disjdistr.cmx data.cmx context_neg.cmx \ compute_lines.cmx ../commons/common.cmx comm_assoc.cmx check_meta.cmx \ diff --git a/parsing_cocci/Makefile b/parsing_cocci/Makefile index 2d25693..37ebde5 100644 --- a/parsing_cocci/Makefile +++ b/parsing_cocci/Makefile @@ -1,4 +1,6 @@ -# Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen +# Copyright 2010, INRIA, University of Copenhagen +# Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix # This file is part of Coccinelle. # @@ -35,13 +37,16 @@ adjust_pragmas.ml insert_plus.ml function_prototypes.ml \ unify_ast.ml semantic_cocci.ml data.ml free_vars.ml parse_aux.ml disjdistr.ml \ $(LEXER_SOURCES:.mll=.ml) $(PARSER_SOURCES:.mly=.ml) \ $(SCRIPT_LEXER_SOURCES:.mll=.ml) \ -get_constants.ml get_constants2.ml adjacency.ml parse_cocci.ml +get_constants2.ml adjacency.ml parse_cocci.ml LIBS=../commons/commons.cma ../globals/globals.cma SYSLIBS = str.cma unix.cma -#MENHIR_PATH=$(shell ocamlfind query menhirLib) -MENHIR_PATH=../menhirlib +ifeq ("$(MENHIRDIR)","menhirlib") +MENHIR_PATH=../$(MENHIRDIR) +else +MENHIR_PATH=$(MENHIRDIR) +endif INCLUDES = -I ../commons -I ../commons/ocamlextra -I ../globals \ -I $(MENHIR_PATH) diff --git a/parsing_cocci/adjacency.ml b/parsing_cocci/adjacency.ml index 9a83b82..b95258d 100644 --- a/parsing_cocci/adjacency.ml +++ b/parsing_cocci/adjacency.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/adjacency.mli b/parsing_cocci/adjacency.mli index 2932028..9c659f8 100644 --- a/parsing_cocci/adjacency.mli +++ b/parsing_cocci/adjacency.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/adjust_pragmas.ml b/parsing_cocci/adjust_pragmas.ml index 09d041f..6c55d6d 100644 --- a/parsing_cocci/adjust_pragmas.ml +++ b/parsing_cocci/adjust_pragmas.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/adjust_pragmas.mli b/parsing_cocci/adjust_pragmas.mli index 34f8e9c..8e9a400 100644 --- a/parsing_cocci/adjust_pragmas.mli +++ b/parsing_cocci/adjust_pragmas.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/arity.ml b/parsing_cocci/arity.ml index dda5557..824d692 100644 --- a/parsing_cocci/arity.ml +++ b/parsing_cocci/arity.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/arity.mli b/parsing_cocci/arity.mli index 9f6d0eb..73194c3 100644 --- a/parsing_cocci/arity.mli +++ b/parsing_cocci/arity.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/ast0_cocci.ml b/parsing_cocci/ast0_cocci.ml index 921e991..c2c54c3 100644 --- a/parsing_cocci/ast0_cocci.ml +++ b/parsing_cocci/ast0_cocci.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/ast0_cocci.mli b/parsing_cocci/ast0_cocci.mli index 902c894..731661f 100644 --- a/parsing_cocci/ast0_cocci.mli +++ b/parsing_cocci/ast0_cocci.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/ast0toast.ml b/parsing_cocci/ast0toast.ml index 53d3770..cc37b9c 100644 --- a/parsing_cocci/ast0toast.ml +++ b/parsing_cocci/ast0toast.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -553,19 +533,32 @@ and declaration_dots l = dots declaration l (* Initialiser *) and strip_idots initlist = + let isminus mc = + match Ast0.get_mcode_mcodekind mc with + Ast0.MINUS _ -> true + | _ -> false in match Ast0.unwrap initlist with Ast0.DOTS(x) -> - let (whencode,init) = + let (whencode,init,dotinfo) = List.fold_left - (function (prevwhen,previnit) -> + (function (prevwhen,previnit,dotinfo) -> function cur -> match Ast0.unwrap cur with Ast0.Idots(dots,Some whencode) -> - (whencode :: prevwhen, previnit) - | Ast0.Idots(dots,None) -> (prevwhen,previnit) - | _ -> (prevwhen, cur :: previnit)) - ([],[]) x in - (List.rev whencode, List.rev init) + (whencode :: prevwhen, previnit, + (isminus dots)::dotinfo) + | Ast0.Idots(dots,None) -> + (prevwhen, previnit, (isminus dots)::dotinfo) + | _ -> (prevwhen, cur :: previnit, dotinfo)) + ([],[],[]) x in + let allminus = + if List.for_all (function x -> not x) dotinfo + then false (* false if no dots *) + else + if List.for_all (function x -> x) dotinfo + then true + else failwith "inconsistent annotations on initialiser list dots" in + (List.rev whencode, List.rev init, allminus) | Ast0.CIRCLES(x) | Ast0.STARS(x) -> failwith "not possible for an initlist" and initialiser i = @@ -574,8 +567,8 @@ and initialiser i = Ast0.MetaInit(name,_) -> Ast.MetaInit(mcode name,unitary,false) | Ast0.InitExpr(exp) -> Ast.InitExpr(expression exp) | Ast0.InitList(lb,initlist,rb) -> - let (whencode,initlist) = strip_idots initlist in - Ast.InitList(mcode lb,List.map initialiser initlist,mcode rb, + let (whencode,initlist,allminus) = strip_idots initlist in + Ast.InitList(allminus,mcode lb,List.map initialiser initlist,mcode rb, List.map initialiser whencode) | Ast0.InitGccExt(designators,eq,ini) -> Ast.InitGccExt(List.map designator designators,mcode eq, diff --git a/parsing_cocci/ast0toast.mli b/parsing_cocci/ast0toast.mli index 2198e6b..6e03663 100644 --- a/parsing_cocci/ast0toast.mli +++ b/parsing_cocci/ast0toast.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/ast_cocci.ml b/parsing_cocci/ast_cocci.ml index 1446b48..8dabab8 100644 --- a/parsing_cocci/ast_cocci.ml +++ b/parsing_cocci/ast_cocci.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -341,7 +321,8 @@ and declaration = base_declaration wrap and base_initialiser = MetaInit of meta_name mcode * keep_binding * inherited | InitExpr of expression - | InitList of string mcode (*{*) * initialiser list * string mcode (*}*) * + | InitList of bool (* true if all are - *) * + string mcode (*{*) * initialiser list * string mcode (*}*) * initialiser list (* whencode: elements that shouldn't appear in init *) | InitGccExt of designator list (* name *) * string mcode (*=*) * diff --git a/parsing_cocci/ast_cocci.mli b/parsing_cocci/ast_cocci.mli index 5381972..135830d 100644 --- a/parsing_cocci/ast_cocci.mli +++ b/parsing_cocci/ast_cocci.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -320,7 +300,8 @@ and declaration = base_declaration wrap and base_initialiser = MetaInit of meta_name mcode * keep_binding * inherited | InitExpr of expression - | InitList of string mcode (*{*) * initialiser list * string mcode (*}*) * + | InitList of bool (* true if all are - *) * + string mcode (*{*) * initialiser list * string mcode (*}*) * initialiser list (* whencode: elements that shouldn't appear in init *) | InitGccExt of designator list (* name *) * string mcode (*=*) * diff --git a/parsing_cocci/check_meta.ml b/parsing_cocci/check_meta.ml index 2d95149..b9b7cbe 100644 --- a/parsing_cocci/check_meta.ml +++ b/parsing_cocci/check_meta.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/check_meta.mli b/parsing_cocci/check_meta.mli index 8d57309..371dbb9 100644 --- a/parsing_cocci/check_meta.mli +++ b/parsing_cocci/check_meta.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/comm_assoc.ml b/parsing_cocci/comm_assoc.ml index 58791f2..d03584d 100644 --- a/parsing_cocci/comm_assoc.ml +++ b/parsing_cocci/comm_assoc.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/comm_assoc.mli b/parsing_cocci/comm_assoc.mli index bf1914b..610e722 100644 --- a/parsing_cocci/comm_assoc.mli +++ b/parsing_cocci/comm_assoc.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/compute_lines.ml b/parsing_cocci/compute_lines.ml index 6325aae..6bcb0f7 100644 --- a/parsing_cocci/compute_lines.ml +++ b/parsing_cocci/compute_lines.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/compute_lines.mli b/parsing_cocci/compute_lines.mli index 5395aba..891bcc3 100644 --- a/parsing_cocci/compute_lines.mli +++ b/parsing_cocci/compute_lines.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/context_neg.ml b/parsing_cocci/context_neg.ml index eafd4d2..686b727 100644 --- a/parsing_cocci/context_neg.ml +++ b/parsing_cocci/context_neg.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/context_neg.mli b/parsing_cocci/context_neg.mli index 07365da..da1f6c5 100644 --- a/parsing_cocci/context_neg.mli +++ b/parsing_cocci/context_neg.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/data.ml b/parsing_cocci/data.ml index 562cd75..e1a244f 100644 --- a/parsing_cocci/data.ml +++ b/parsing_cocci/data.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/data.mli b/parsing_cocci/data.mli index 2ca4644..74f9cbf 100644 --- a/parsing_cocci/data.mli +++ b/parsing_cocci/data.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/disjdistr.ml b/parsing_cocci/disjdistr.ml index b2014ff..7076a59 100644 --- a/parsing_cocci/disjdistr.ml +++ b/parsing_cocci/disjdistr.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -225,10 +205,10 @@ and disjini i = | Ast.InitExpr(exp) -> let exp = disjexp exp in List.map (function exp -> Ast.rewrap i (Ast.InitExpr(exp))) exp - | Ast.InitList(lb,initlist,rb,whencode) -> + | Ast.InitList(allminus,lb,initlist,rb,whencode) -> List.map (function initlist -> - Ast.rewrap i (Ast.InitList(lb,initlist,rb,whencode))) + Ast.rewrap i (Ast.InitList(allminus,lb,initlist,rb,whencode))) (disjmult disjini initlist) | Ast.InitGccExt(designators,eq,ini) -> let designators = disjmult designator designators in diff --git a/parsing_cocci/disjdistr.mli b/parsing_cocci/disjdistr.mli index d7f5702..cf420d0 100644 --- a/parsing_cocci/disjdistr.mli +++ b/parsing_cocci/disjdistr.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/flag_parsing_cocci.ml b/parsing_cocci/flag_parsing_cocci.ml index 460721b..4b22f4a 100644 --- a/parsing_cocci/flag_parsing_cocci.ml +++ b/parsing_cocci/flag_parsing_cocci.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/free_vars.ml b/parsing_cocci/free_vars.ml index 09d7bd9..2bc4318 100644 --- a/parsing_cocci/free_vars.ml +++ b/parsing_cocci/free_vars.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/free_vars.mli b/parsing_cocci/free_vars.mli index e720430..d7fd980 100644 --- a/parsing_cocci/free_vars.mli +++ b/parsing_cocci/free_vars.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/function_prototypes.ml b/parsing_cocci/function_prototypes.ml index c503d12..881be24 100644 --- a/parsing_cocci/function_prototypes.ml +++ b/parsing_cocci/function_prototypes.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/function_prototypes.mli b/parsing_cocci/function_prototypes.mli index d6417a9..363db5c 100644 --- a/parsing_cocci/function_prototypes.mli +++ b/parsing_cocci/function_prototypes.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/get_constants.ml b/parsing_cocci/get_constants.ml index 3c2f055..2c87190 100644 --- a/parsing_cocci/get_constants.ml +++ b/parsing_cocci/get_constants.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/get_constants.mli b/parsing_cocci/get_constants.mli index a48ed3a..713a368 100644 --- a/parsing_cocci/get_constants.mli +++ b/parsing_cocci/get_constants.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/get_constants2.ml b/parsing_cocci/get_constants2.ml index c3406e6..bd11836 100644 --- a/parsing_cocci/get_constants2.ml +++ b/parsing_cocci/get_constants2.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -59,6 +39,11 @@ module TC = Type_cocci constants. *) +(* This doesn't do the . -> trick of get_constants for record fields, as + that does not fit well with the recursive structure. It was not clear + that that was completely safe either, although eg putting a newline + after the . or -> is probably unusual. *) + (* ----------------------------------------------------------------------- *) (* This phase collects everything. One can then filter out what it not wanted *) @@ -76,7 +61,10 @@ let interpret_glimpse strict x = | Or [x] -> loop x | And l -> Printf.sprintf "{%s}" (String.concat ";" (List.map loop l)) | Or l -> Printf.sprintf "{%s}" (String.concat "," (List.map loop l)) - | True -> "True" + | True -> + if strict + then failwith "True should not be in the final result" + else "True" | False -> if strict then failwith "False should not be in the final result. Perhaps your rule doesn't contain any +/-/* code" @@ -87,6 +75,26 @@ let interpret_glimpse strict x = failwith "False should not be in the final result. Perhaps your rule doesn't contain any +/-/* code" | _ -> Some [(loop x)] +(* grep only does or *) +let interpret_grep strict x = + let rec loop = function + Elem x -> [x] + | And l -> List.concat (List.map loop l) + | Or l -> List.concat (List.map loop l) + | True -> + if strict + then failwith "True should not be in the final result" + else ["True"] + | False -> + if strict + then failwith "False should not be in the final result. Perhaps your rule doesn't contain any +/-/* code" + else ["False"] in + match x with + True -> None + | False when strict -> + failwith "False should not be in the final result. Perhaps your rule doesn't contain any +/-/* code" + | _ -> Some (loop x) + let interpret_google strict x = (* convert to dnf *) let rec dnf = function @@ -114,14 +122,8 @@ let interpret_google strict x = failwith "False should not be in the final result. Perhaps your rule doesn't contain any +/-/* code" | _ -> Some (dnf x) -let interpret strict x = - match !Flag.scanner with - Flag.Glimpse -> interpret_glimpse strict x - | Flag.Google _ -> interpret_google strict x - | _ -> failwith "not possible" - let combine2c x = - match interpret false x with + match interpret_glimpse false x with None -> "None" | Some x -> String.concat " || " x @@ -422,16 +424,15 @@ let get_plus_constants = let donothing r k e = k e in let bind = Common.union_set in let option_default = [] in - let mcode r mc = - let mcodekind = Ast.get_mcodekind mc in - let recurse l = - List.fold_left - (List.fold_left - (function prev -> - function cur -> - bind ((get_all_constants false).V.combiner_anything cur) prev)) - [] l in - match mcodekind with + + let recurse l = + List.fold_left + (List.fold_left + (function prev -> + function cur -> + bind ((get_all_constants false).V.combiner_anything cur) prev)) + [] l in + let process_mcodekind = function Ast.MINUS(_,_,_,anythings) -> recurse anythings | Ast.CONTEXT(_,Ast.BEFORE(a,_)) -> recurse a | Ast.CONTEXT(_,Ast.AFTER(a,_)) -> recurse a @@ -439,11 +440,27 @@ let get_plus_constants = Common.union_set (recurse a1) (recurse a2) | _ -> [] in + let mcode r mc = process_mcodekind (Ast.get_mcodekind mc) in + let end_info (_,_,_,mc) = process_mcodekind mc in + + let rule_elem r k e = + match Ast.unwrap e with + Ast.FunHeader(bef,_,_,_,_,_,_) + | Ast.Decl(bef,_,_) -> bind (process_mcodekind bef) (k e) + | _ -> k e in + + let statement r k e = + match Ast.unwrap e with + Ast.IfThen(_,_,ei) | Ast.IfThenElse(_,_,_,_,ei) + | Ast.While(_,_,ei) | Ast.For(_,_,ei) + | Ast.Iterator(_,_,ei) -> bind (k e) (end_info ei) + | _ -> k e in + V.combiner bind option_default mcode mcode mcode mcode mcode mcode mcode mcode mcode mcode mcode mcode donothing donothing donothing donothing donothing donothing donothing donothing donothing donothing donothing - donothing donothing donothing donothing donothing + rule_elem statement donothing donothing donothing (* ------------------------------------------------------------------------ *) @@ -466,16 +483,38 @@ let all_context = let donothing recursor k e = k e in - let mcode r e = - match Ast.get_mcodekind e with + let process_mcodekind = function Ast.CONTEXT(_,Ast.NOTHING) -> true | _ -> false in + let mcode r e = process_mcodekind (Ast.get_mcodekind e) in + + let end_info (_,_,_,mc) = process_mcodekind mc in + + let initialiser r k e = + match Ast.unwrap e with + Ast.InitList(all_minus,_,_,_,_) -> + not all_minus && k e + | _ -> k e in + + let rule_elem r k e = + match Ast.unwrap e with + Ast.FunHeader(bef,_,_,_,_,_,_) + | Ast.Decl(bef,_,_) -> bind (process_mcodekind bef) (k e) + | _ -> k e in + + let statement r k e = + match Ast.unwrap e with + Ast.IfThen(_,_,ei) | Ast.IfThenElse(_,_,_,_,ei) + | Ast.While(_,_,ei) | Ast.For(_,_,ei) + | Ast.Iterator(_,_,ei) -> bind (k e) (end_info ei) + | _ -> k e in + V.combiner bind option_default mcode mcode mcode mcode mcode mcode mcode mcode mcode mcode mcode mcode donothing donothing donothing donothing - donothing donothing donothing donothing donothing donothing - donothing donothing donothing donothing donothing donothing + donothing donothing donothing donothing initialiser donothing + donothing rule_elem statement donothing donothing donothing (* ------------------------------------------------------------------------ *) @@ -513,46 +552,57 @@ let rule_fn tls in_plus env neg_pos = | x -> (build_or x rest_info, new_plusses)) (False,in_plus) (List.combine tls neg_pos) -let get_constants rules neg_pos_vars = - match !Flag.scanner with - Flag.NoScanner -> None - | Flag.Glimpse | Flag.Google _ -> - let (info,_,_,_) = - List.fold_left - (function (rest_info,in_plus,env,locals(*dom of env*)) -> - function - (Ast.ScriptRule (_,deps,mv,_),_) -> - let extra_deps = - List.fold_left - (function prev -> - function (_,(rule,_)) -> - if rule = "virtual" - then prev - else Ast.AndDep (Ast.Dep rule,prev)) - deps mv in - (match dependencies env extra_deps with - False -> (rest_info, in_plus, env, locals) - | dependencies -> - (build_or dependencies rest_info, in_plus, env, locals)) - | (Ast.InitialScriptRule (_,deps,_),_) - | (Ast.FinalScriptRule (_,deps,_),_) -> +let run rules neg_pos_vars = + let (info,_,_,_) = + List.fold_left + (function (rest_info,in_plus,env,locals(*dom of env*)) -> + function + (Ast.ScriptRule (_,deps,mv,_),_) -> + let extra_deps = + List.fold_left + (function prev -> + function (_,(rule,_)) -> + if rule = "virtual" + then prev + else Ast.AndDep (Ast.Dep rule,prev)) + deps mv in + (match dependencies env extra_deps with + False -> (rest_info, in_plus, env, locals) + | dependencies -> + (build_or dependencies rest_info, in_plus, env, locals)) + | (Ast.InitialScriptRule (_,deps,_),_) + | (Ast.FinalScriptRule (_,deps,_),_) -> (* initialize and finalize dependencies are irrelevant to get_constants *) - (rest_info, in_plus, env, locals) - | (Ast.CocciRule (nm,(dep,_,_),cur,_,_),neg_pos_vars) -> - let (cur_info,cur_plus) = - rule_fn cur in_plus ((nm,True)::env) - neg_pos_vars in - (match dependencies env dep with - False -> (rest_info,cur_plus,env,locals) - | dependencies -> - if List.for_all all_context.V.combiner_top_level cur - then (rest_info,cur_plus,(nm,cur_info)::env,nm::locals) - else + (rest_info, in_plus, env, locals) + | (Ast.CocciRule (nm,(dep,_,_),cur,_,_),neg_pos_vars) -> + let (cur_info,cur_plus) = + rule_fn cur in_plus ((nm,True)::env) + neg_pos_vars in + (match dependencies env dep with + False -> (rest_info,cur_plus,env,locals) + | dependencies -> + if List.for_all all_context.V.combiner_top_level cur + then (rest_info,cur_plus,(nm,cur_info)::env,nm::locals) + else (* no constants if dependent on another rule; then we need to find the constants of that rule *) - (build_or (build_and dependencies cur_info) rest_info, - cur_plus,env,locals))) - (False,[],[],[]) - (List.combine (rules : Ast.rule list) neg_pos_vars) in - interpret true info + (build_or (build_and dependencies cur_info) rest_info, + cur_plus,env,locals))) + (False,[],[],[]) + (List.combine (rules : Ast.rule list) neg_pos_vars) in + info + +let get_constants rules neg_pos_vars = + match !Flag.scanner with + Flag.NoScanner -> (None,None) + | Flag.Grep -> + let res = run rules neg_pos_vars in + (interpret_grep true res,None) + | Flag.Glimpse -> + let res = run rules neg_pos_vars in + (interpret_grep true res,interpret_glimpse true res) + | Flag.Google _ -> + let res = run rules neg_pos_vars in + (interpret_grep true res,interpret_google true res) + diff --git a/parsing_cocci/get_constants2.mli b/parsing_cocci/get_constants2.mli index e7cdc48..01f9f05 100644 --- a/parsing_cocci/get_constants2.mli +++ b/parsing_cocci/get_constants2.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -45,4 +25,5 @@ val get_constants : Ast_cocci.rule list -> (((Ast_cocci.meta_name list) list) list) (*negated pos vars*) -> - string list option + (string list option (* grep result *) * + string list option (* non-grep result, if any *)) diff --git a/parsing_cocci/index.ml b/parsing_cocci/index.ml index e6391da..7c39fff 100644 --- a/parsing_cocci/index.ml +++ b/parsing_cocci/index.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/index.mli b/parsing_cocci/index.mli index d9a1cf1..82ecb1e 100644 --- a/parsing_cocci/index.mli +++ b/parsing_cocci/index.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/insert_plus.ml b/parsing_cocci/insert_plus.ml index f09bb8b..2bf3cdf 100644 --- a/parsing_cocci/insert_plus.ml +++ b/parsing_cocci/insert_plus.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -719,7 +699,12 @@ let decl = function Decl -> true | Favored | Unfavored | Toplevel -> false let favored = function Favored -> true | Unfavored | Toplevel | Decl -> false let top_code = - List.for_all (List.for_all (function Ast.Code _ -> true | _ -> false)) + List.for_all + (List.for_all (function Ast.Code _ | Ast.Pragma _ -> true | _ -> false)) + +let storage_code = + List.for_all + (List.for_all (function Ast.StorageTag _ -> true | _ -> false)) (* The following is probably not correct. The idea is to detect what should be placed completely before the declaration. So type/storage @@ -869,16 +854,22 @@ let allminus = function let rec before_m1 ((f1,infom1,m1) as x1) ((f2,infom2,m2) as x2) rest = function [] -> () - | (((infop,_,_) as p) :: ps) as all -> + | (((infop,_,pcode) as p) :: ps) as all -> if less_than_start infop infom1 or (allminus m1 && less_than_end infop infom1) (* account for trees *) then - if good_start infom1 - then (attachbefore p m1; before_m1 x1 x2 rest ps) + if toplevel f1 + then + if storage_code pcode + then before_m2 x2 rest all (* skip fake token for storage *) + else (attachbefore p m1; before_m1 x1 x2 rest ps) else - failwith - (pr "%d: no available token to attach to" - infop.Ast0.pos_info.Ast0.line_start) + if good_start infom1 + then (attachbefore p m1; before_m1 x1 x2 rest ps) + else + failwith + (pr "%d: no available token to attach to" + infop.Ast0.pos_info.Ast0.line_start) else after_m1 x1 x2 rest all and after_m1 ((f1,infom1,m1) as x1) ((f2,infom2,m2) as x2) rest = function diff --git a/parsing_cocci/insert_plus.mli b/parsing_cocci/insert_plus.mli index 9f2b935..46acab1 100644 --- a/parsing_cocci/insert_plus.mli +++ b/parsing_cocci/insert_plus.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/iso_compile.ml b/parsing_cocci/iso_compile.ml index 5dd2065..072ccbe 100644 --- a/parsing_cocci/iso_compile.ml +++ b/parsing_cocci/iso_compile.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/iso_compile.mli b/parsing_cocci/iso_compile.mli index d3ecd82..7826ecb 100644 --- a/parsing_cocci/iso_compile.mli +++ b/parsing_cocci/iso_compile.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/iso_pattern.ml b/parsing_cocci/iso_pattern.ml index eb1223c..08e00ae 100644 --- a/parsing_cocci/iso_pattern.ml +++ b/parsing_cocci/iso_pattern.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -48,6 +28,8 @@ same offset. On the other hand, at the moment offset only seems to be used before this phase. Furthermore add_dot_binding relies on the offset to remain the same between matching an iso and instantiating it with bindings. *) +(* Consider whether ... in iso should match <... ...> in smpl? *) + (* --------------------------------------------------------------------- *) (* match a SmPL expression against a SmPL abstract syntax tree, either - or + *) diff --git a/parsing_cocci/iso_pattern.mli b/parsing_cocci/iso_pattern.mli index 9cea445..964662e 100644 --- a/parsing_cocci/iso_pattern.mli +++ b/parsing_cocci/iso_pattern.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/lexer_cocci.mll b/parsing_cocci/lexer_cocci.mll index d2a4ec8..3a1805c 100644 --- a/parsing_cocci/lexer_cocci.mll +++ b/parsing_cocci/lexer_cocci.mll @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/lexer_script.mll b/parsing_cocci/lexer_script.mll index 05a85fd..5426f9c 100644 --- a/parsing_cocci/lexer_script.mll +++ b/parsing_cocci/lexer_script.mll @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/main.ml b/parsing_cocci/main.ml index 42f2004..af5764b 100644 --- a/parsing_cocci/main.ml +++ b/parsing_cocci/main.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/merge.ml b/parsing_cocci/merge.ml index 8cd7da5..71c25f0 100644 --- a/parsing_cocci/merge.ml +++ b/parsing_cocci/merge.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/merge.mli b/parsing_cocci/merge.mli index ffe7a07..def844e 100644 --- a/parsing_cocci/merge.mli +++ b/parsing_cocci/merge.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/parse_aux.ml b/parsing_cocci/parse_aux.ml index 7813f63..7304304 100644 --- a/parsing_cocci/parse_aux.ml +++ b/parsing_cocci/parse_aux.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/parse_cocci.ml b/parsing_cocci/parse_cocci.ml index d4d78a4..5a7a538 100644 --- a/parsing_cocci/parse_cocci.ml +++ b/parsing_cocci/parse_cocci.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -1724,14 +1704,15 @@ let parse file = Some (dep) -> Data.in_generating := true; let res = - parse_cocci_rule Ast.Normal old_metas (s,dep,b,c,d,e) in + parse_cocci_rule Ast.Generated old_metas + (s,dep,b,c,d,e) in Data.in_generating := false; res | None -> D.ignore_patch_or_match := true; Data.in_generating := true; let res = - parse_cocci_rule Ast.Normal old_metas + parse_cocci_rule Ast.Generated old_metas (s, Ast.FailDep, b, c, d, e) in D.ignore_patch_or_match := false; Data.in_generating := false; @@ -1898,11 +1879,8 @@ let process file isofile verbose = if !Flag_parsing_cocci.show_SP then List.iter Pretty_print_cocci.unparse code; - let grep_tokens = - Common.profile_code "get_constants" (* for grep *) - (fun () -> Get_constants.get_constants code) in - let glimpse_tokens2 = + let (grep_tokens,glimpse_tokens) = Common.profile_code "get_glimpse_constants" (* for glimpse *) (fun () -> Get_constants2.get_constants code neg_pos) in - (metavars,code,fvs,neg_pos,ua,pos,grep_tokens,glimpse_tokens2) + (metavars,code,fvs,neg_pos,ua,pos,grep_tokens,glimpse_tokens) diff --git a/parsing_cocci/parse_cocci.mli b/parsing_cocci/parse_cocci.mli index 2be34ee..7ed2778 100644 --- a/parsing_cocci/parse_cocci.mli +++ b/parsing_cocci/parse_cocci.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -54,5 +34,5 @@ val process : (*fresh used after list seeds*) Ast_cocci.meta_name list list list) * Ast_cocci.meta_name list list list (*positions list*) * - string list list (* non metavars in - code, for grep *) * + string list option (* non metavars in - code, for grep *) * string list option (* non metavars in - code, for glimpse/google *) diff --git a/parsing_cocci/parser_cocci.mly b/parsing_cocci/parser_cocci.mly index ff484e3..134a91c 100644 --- a/parsing_cocci/parser_cocci.mly +++ b/parsing_cocci/parser_cocci.mly @@ -1,27 +1,7 @@ /* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - */ - - -/* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/parser_cocci_menhir.ml b/parsing_cocci/parser_cocci_menhir.ml index b7b84d2..652ac45 100644 --- a/parsing_cocci/parser_cocci_menhir.ml +++ b/parsing_cocci/parser_cocci_menhir.ml @@ -2,140 +2,140 @@ exception Error type token = | Tvolatile of ( -# 76 "parser_cocci_menhir.mly" +# 56 "parser_cocci_menhir.mly" (Data.clt) # 8 "parser_cocci_menhir.ml" ) | Tvoid of ( -# 72 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) # 13 "parser_cocci_menhir.ml" ) | Tunsigned of ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) # 18 "parser_cocci_menhir.ml" ) | Tunion of ( -# 72 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) # 23 "parser_cocci_menhir.ml" ) | Ttypedef of ( -# 75 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) # 28 "parser_cocci_menhir.ml" ) | Tstruct of ( -# 72 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) # 33 "parser_cocci_menhir.ml" ) | Tstatic of ( -# 75 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) # 38 "parser_cocci_menhir.ml" ) | Tsigned of ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) # 43 "parser_cocci_menhir.ml" ) | Tshort of ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 48 "parser_cocci_menhir.ml" ) | Tregister of ( -# 75 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) # 53 "parser_cocci_menhir.ml" ) | Tlong of ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 58 "parser_cocci_menhir.ml" ) | Tlist | Tint of ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 64 "parser_cocci_menhir.ml" ) | Tinline of ( -# 75 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) # 69 "parser_cocci_menhir.ml" ) | Tfloat of ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 74 "parser_cocci_menhir.ml" ) | Textern of ( -# 75 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) # 79 "parser_cocci_menhir.ml" ) | Tenum of ( -# 72 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) # 84 "parser_cocci_menhir.ml" ) | Tdouble of ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 89 "parser_cocci_menhir.ml" ) | Tconst of ( -# 76 "parser_cocci_menhir.mly" +# 56 "parser_cocci_menhir.mly" (Data.clt) # 94 "parser_cocci_menhir.ml" ) | Tchar of ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) # 99 "parser_cocci_menhir.ml" ) | Tauto of ( -# 75 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) # 104 "parser_cocci_menhir.ml" ) | Tattr of ( -# 77 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (string * Data.clt) # 109 "parser_cocci_menhir.ml" ) | TXor of ( -# 115 "parser_cocci_menhir.mly" +# 95 "parser_cocci_menhir.mly" (Data.clt) # 114 "parser_cocci_menhir.ml" ) | TWords | TWhy0 | TWhy of ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) # 121 "parser_cocci_menhir.ml" ) | TWhile of ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) # 126 "parser_cocci_menhir.ml" ) | TWhenTrue of ( -# 97 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 131 "parser_cocci_menhir.ml" ) | TWhenFalse of ( -# 97 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 136 "parser_cocci_menhir.ml" ) | TWhen of ( -# 97 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 141 "parser_cocci_menhir.ml" ) @@ -143,293 +143,293 @@ type token = | TUsing | TTypedef | TTypeId of ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) # 149 "parser_cocci_menhir.ml" ) | TType | TTildeExclEq of ( -# 117 "parser_cocci_menhir.mly" +# 97 "parser_cocci_menhir.mly" (Data.clt) # 155 "parser_cocci_menhir.ml" ) | TTildeEq of ( -# 117 "parser_cocci_menhir.mly" +# 97 "parser_cocci_menhir.mly" (Data.clt) # 160 "parser_cocci_menhir.ml" ) | TTilde of ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 165 "parser_cocci_menhir.ml" ) | TSwitch of ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) # 170 "parser_cocci_menhir.ml" ) | TSub of ( -# 117 "parser_cocci_menhir.mly" +# 97 "parser_cocci_menhir.mly" (Data.clt) # 175 "parser_cocci_menhir.ml" ) | TString of ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) # 180 "parser_cocci_menhir.ml" ) | TStrict of ( -# 97 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 185 "parser_cocci_menhir.ml" ) | TStatement | TSizeof of ( -# 80 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt) # 191 "parser_cocci_menhir.ml" ) | TShOp of ( -# 119 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 196 "parser_cocci_menhir.ml" ) | TScriptData of ( -# 94 "parser_cocci_menhir.mly" +# 74 "parser_cocci_menhir.mly" (string) # 201 "parser_cocci_menhir.ml" ) | TScript | TRuleName of ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) # 207 "parser_cocci_menhir.ml" ) | TRightIso | TReturn of ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) # 213 "parser_cocci_menhir.ml" ) | TPure | TPtrOp of ( -# 127 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) # 219 "parser_cocci_menhir.ml" ) | TPtVirg of ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) # 224 "parser_cocci_menhir.ml" ) | TPragma of ( -# 82 "parser_cocci_menhir.mly" +# 62 "parser_cocci_menhir.mly" (Ast_cocci.added_string * Data.clt) # 229 "parser_cocci_menhir.ml" ) | TPosition | TPosAny | TPlusFile of ( -# 106 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (string * Data.clt) # 236 "parser_cocci_menhir.ml" ) | TPlus0 | TPlus of ( -# 121 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 242 "parser_cocci_menhir.ml" ) | TPathIsoFile of ( -# 102 "parser_cocci_menhir.mly" +# 82 "parser_cocci_menhir.mly" (string) # 247 "parser_cocci_menhir.ml" ) | TParameter | TPOEllipsis of ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 253 "parser_cocci_menhir.ml" ) | TPCEllipsis of ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 258 "parser_cocci_menhir.ml" ) | TPArob | TOrLog of ( -# 112 "parser_cocci_menhir.mly" +# 92 "parser_cocci_menhir.mly" (Data.clt) # 264 "parser_cocci_menhir.ml" ) | TOr of ( -# 114 "parser_cocci_menhir.mly" +# 94 "parser_cocci_menhir.mly" (Data.clt) # 269 "parser_cocci_menhir.ml" ) | TOn | TOPar0 of ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) # 275 "parser_cocci_menhir.ml" ) | TOPar of ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) # 280 "parser_cocci_menhir.ml" ) | TOInit of ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) # 285 "parser_cocci_menhir.ml" ) | TOEllipsis of ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 290 "parser_cocci_menhir.ml" ) | TOCro of ( -# 125 "parser_cocci_menhir.mly" +# 105 "parser_cocci_menhir.mly" (Data.clt) # 295 "parser_cocci_menhir.ml" ) | TOBrace of ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) # 300 "parser_cocci_menhir.ml" ) | TNothing | TNotEq of ( -# 117 "parser_cocci_menhir.mly" +# 97 "parser_cocci_menhir.mly" (Data.clt) # 306 "parser_cocci_menhir.ml" ) | TNever | TName | TMul of ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 313 "parser_cocci_menhir.ml" ) | TMinusFile of ( -# 106 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (string * Data.clt) # 318 "parser_cocci_menhir.ml" ) | TMinus of ( -# 121 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 323 "parser_cocci_menhir.ml" ) | TMid0 of ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) # 328 "parser_cocci_menhir.ml" ) | TMetaType of ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) # 333 "parser_cocci_menhir.ml" ) | TMetaStmList of ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) # 338 "parser_cocci_menhir.ml" ) | TMetaStm of ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) # 343 "parser_cocci_menhir.ml" ) | TMetaPos of ( -# 91 "parser_cocci_menhir.mly" +# 71 "parser_cocci_menhir.mly" (Parse_aux.pos_info) # 348 "parser_cocci_menhir.ml" ) | TMetaParamList of ( -# 89 "parser_cocci_menhir.mly" +# 69 "parser_cocci_menhir.mly" (Parse_aux.list_info) # 353 "parser_cocci_menhir.ml" ) | TMetaParam of ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) # 358 "parser_cocci_menhir.ml" ) | TMetaLocalIdExp of ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 363 "parser_cocci_menhir.ml" ) | TMetaLocalFunc of ( -# 84 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.idinfo) # 368 "parser_cocci_menhir.ml" ) | TMetaIterator of ( -# 85 "parser_cocci_menhir.mly" +# 65 "parser_cocci_menhir.mly" (Parse_aux.idinfo) # 373 "parser_cocci_menhir.ml" ) | TMetaInit of ( -# 88 "parser_cocci_menhir.mly" +# 68 "parser_cocci_menhir.mly" (Parse_aux.info) # 378 "parser_cocci_menhir.ml" ) | TMetaIdExp of ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 383 "parser_cocci_menhir.ml" ) | TMetaId of ( -# 84 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.idinfo) # 388 "parser_cocci_menhir.ml" ) | TMetaFunc of ( -# 84 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.idinfo) # 393 "parser_cocci_menhir.ml" ) | TMetaExpList of ( -# 89 "parser_cocci_menhir.mly" +# 69 "parser_cocci_menhir.mly" (Parse_aux.list_info) # 398 "parser_cocci_menhir.ml" ) | TMetaExp of ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 403 "parser_cocci_menhir.ml" ) | TMetaErr of ( -# 86 "parser_cocci_menhir.mly" +# 66 "parser_cocci_menhir.mly" (Parse_aux.expinfo) # 408 "parser_cocci_menhir.ml" ) | TMetaDeclarer of ( -# 85 "parser_cocci_menhir.mly" +# 65 "parser_cocci_menhir.mly" (Parse_aux.idinfo) # 413 "parser_cocci_menhir.ml" ) | TMetaConst of ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) # 418 "parser_cocci_menhir.ml" ) | TMPtVirg | TLogOp of ( -# 118 "parser_cocci_menhir.mly" +# 98 "parser_cocci_menhir.mly" (Ast_cocci.logicalOp * Data.clt) # 424 "parser_cocci_menhir.ml" ) | TLocal | TLineEnd of ( -# 97 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 430 "parser_cocci_menhir.ml" ) | TIteratorId of ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) # 435 "parser_cocci_menhir.ml" ) @@ -445,60 +445,60 @@ type token = | TIso | TInvalid | TInt of ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) # 451 "parser_cocci_menhir.ml" ) | TInitialize | TInitialiser | TIncludeNL of ( -# 103 "parser_cocci_menhir.mly" +# 83 "parser_cocci_menhir.mly" (string * Data.clt) # 458 "parser_cocci_menhir.ml" ) | TIncludeL of ( -# 103 "parser_cocci_menhir.mly" +# 83 "parser_cocci_menhir.mly" (string * Data.clt) # 463 "parser_cocci_menhir.ml" ) | TInc of ( -# 108 "parser_cocci_menhir.mly" +# 88 "parser_cocci_menhir.mly" (Data.clt) # 468 "parser_cocci_menhir.ml" ) | TIf of ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) # 473 "parser_cocci_menhir.ml" ) | TIdentifier | TIdent of ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) # 479 "parser_cocci_menhir.ml" ) | TIdExpression | TGoto of ( -# 80 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt) # 485 "parser_cocci_menhir.ml" ) | TGenerated | TFunction | TFunDecl of ( -# 80 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt) # 492 "parser_cocci_menhir.ml" ) | TFresh | TForall | TFor of ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) # 499 "parser_cocci_menhir.ml" ) | TFloat of ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) # 504 "parser_cocci_menhir.ml" ) @@ -509,151 +509,151 @@ type token = | TEver | TError | TEqEq of ( -# 117 "parser_cocci_menhir.mly" +# 97 "parser_cocci_menhir.mly" (Data.clt) # 515 "parser_cocci_menhir.ml" ) | TEq of ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) # 520 "parser_cocci_menhir.ml" ) | TElse of ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) # 525 "parser_cocci_menhir.ml" ) | TEllipsis of ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 530 "parser_cocci_menhir.ml" ) | TDotDot of ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) # 535 "parser_cocci_menhir.ml" ) | TDot of ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) # 540 "parser_cocci_menhir.ml" ) | TDo of ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) # 545 "parser_cocci_menhir.ml" ) | TDmOp of ( -# 120 "parser_cocci_menhir.mly" +# 100 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 550 "parser_cocci_menhir.ml" ) | TDisable | TDepends | TDefineParam of ( -# 105 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt * token * int * int) # 557 "parser_cocci_menhir.ml" ) | TDefine of ( -# 104 "parser_cocci_menhir.mly" +# 84 "parser_cocci_menhir.mly" (Data.clt * token) # 562 "parser_cocci_menhir.ml" ) | TDefault of ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) # 567 "parser_cocci_menhir.ml" ) | TDeclarerId of ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) # 572 "parser_cocci_menhir.ml" ) | TDeclarer | TDec of ( -# 108 "parser_cocci_menhir.mly" +# 88 "parser_cocci_menhir.mly" (Data.clt) # 578 "parser_cocci_menhir.ml" ) | TCppConcatOp | TContinue of ( -# 80 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt) # 584 "parser_cocci_menhir.ml" ) | TContext | TConstant | TComma of ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) # 591 "parser_cocci_menhir.ml" ) | TChar of ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) # 596 "parser_cocci_menhir.ml" ) | TCase of ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) # 601 "parser_cocci_menhir.ml" ) | TCPar0 of ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) # 606 "parser_cocci_menhir.ml" ) | TCPar of ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) # 611 "parser_cocci_menhir.ml" ) | TCEllipsis of ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 616 "parser_cocci_menhir.ml" ) | TCCro of ( -# 125 "parser_cocci_menhir.mly" +# 105 "parser_cocci_menhir.mly" (Data.clt) # 621 "parser_cocci_menhir.ml" ) | TCBrace of ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) # 626 "parser_cocci_menhir.ml" ) | TBreak of ( -# 80 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt) # 631 "parser_cocci_menhir.ml" ) | TBang0 | TBang of ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) # 637 "parser_cocci_menhir.ml" ) | TAssign of ( -# 131 "parser_cocci_menhir.mly" +# 111 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) # 642 "parser_cocci_menhir.ml" ) | TArobArob | TArob | TAny of ( -# 97 "parser_cocci_menhir.mly" +# 77 "parser_cocci_menhir.mly" (Data.clt) # 649 "parser_cocci_menhir.ml" ) | TAndLog of ( -# 113 "parser_cocci_menhir.mly" +# 93 "parser_cocci_menhir.mly" (Data.clt) # 654 "parser_cocci_menhir.ml" ) | TAnd of ( -# 116 "parser_cocci_menhir.mly" +# 96 "parser_cocci_menhir.mly" (Data.clt) # 659 "parser_cocci_menhir.ml" ) @@ -662,7 +662,7 @@ type token = and _menhir_jeton = token -# 45 "parser_cocci_menhir.mly" +# 25 "parser_cocci_menhir.mly" (* Not clear how to allow function declarations to specify a return type @@ -1407,19 +1407,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct Obj.repr _v let default_reduction = - (16, "\000\000\000\000\002\158\000z\000\000\000\000\002\231\001J\000\000\001H\001I\001G\000\000\001L\001K\000\001\000\000\001\137\000\000\000\000\000\138\000\000\000\000\001y\000\163\000\000\000\000\000\150\000\000\000\000\000\155\000\154\000\000\000\151\000\000\000\149\000\000\000\000\000\000\000\153\000\000\000\152\003\030\003\029\000\000\000\000\000\143\000\000\000\000\000\148\000\147\000\000\000\144\000\000\000\142\000\000\000\000\000\000\000\146\000\000\000\145\000\000\000\157\000\000\000\000\000\162\000\161\000\000\000\158\000\000\000\165\000\000\001D\001C\000\000\000\166\000\000\000\164\000\137\000\000\000\156\000\000\000\171\000\000\000\000\000\000\000\160\000\000\000\000\000\000\003\020\000\000\000\000\000\000\000\000\000\000\003\025\000\000\000\000\000\168\000\000\003\027\000\000\000\000\000\000\003\152\002h\000\000\003\150\000\000\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\149\003\151\002n\001?\002m\001=\001>\002l\002k\002j\002f\000\000\000\000\002g\001\012\000\000\002i\000\000\003\148\000\000\000c\001<\002I\000\000\000\000\002L\000\000\000\015\000\000\000\000\000\000\000\000\001\013\002e\002q\000[\000\021\000]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\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\000\000\000\132\002$\000R\001\022\000^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\\\000T\000\000\000S\001\023\000\000\002O\001\024\000\014\000\016\000\000\000\000\000\193\000\000\000\000\000\180\000\000\000\000\000\185\000\184\000\000\000\181\000\000\000\179\000\000\000\000\000\000\000\183\000\000\000\182\000\000\000\000\000\173\000\000\000\000\000\178\000\177\000\000\000\174\000\000\000\172\000\000\000\000\000\000\000\176\000\000\000\175\000\000\000\187\000\000\000\000\000\192\000\191\000\000\000\188\000\000\000\195\000\000\000\000\000\196\000\000\000\194\000\000\000\186\000\000\000\201\000\000\000\000\000\000\000\190\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\140\000\000\000\000\000\000\000\000\000\000\000\000\002\011\000\209\000\000\000\000\000n\000o\002\n\001\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\000\215\000\000\001\236\000\000\000\000\000\000\000\000\000\208\000\206\000\221\000\000\001\129\000\000\000\000\003\022\000\000\003\021\000\000\000\000\000\000\000\000\000\000\000\198\000\000\000\000\000\000\000\000\000\199\000\197\000\000\000\000\003\024\003\028\000\189\000\000\000\000\001\027\000\000\000\000\002J\002M\000\000\002K\002N\003{\003|\003z\000\000\002o\003y\000\000\002\137\000\000\000\000\002\136\002\135\002\134\002\133\002\132\002\128\000\000\000\000\002\129\000\000\002\131\000\000\000\000\000g\002W\000\000\000\000\002Z\000\000\000\000\002]\000\000\000\000\002X\002[\000\000\002Y\002\\\002\139\002\127\003\137\003\138\003\136\003\135\000h\000\000\000\000\000W\000\000\000V\001 \000\000\001\245\000\000\000\000\000\000\000\000\000\000\001\017\001\251\000\000\000\000\001\161\000U\0001\001\n\000_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\000\000\0003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002p\000\000\000\204\000\000\000\000\001\230\000\000\001\151\001\211\000\000\000\000\001\229\000\000\001\149\001\210\000\000\000\000\000d\000\000\002\138\000\000\000\000\003\140\003\139\000\000\001\246\000\000\000\000\003~\003}\000\000\000Q\000\205\000\000\001{\000\000\003\023\000\000\000\000\000\000\000\000\000\169\000\167\000\000\001\021\000\000\000\000\000\170\000\159\000\000\000\000\001c\000\000\001b\000\000\001q\000\000\001\139\000\000\000\000\000\000\003N\000\000\000\000\003A\000\000\000\000\003F\003E\000\000\003B\000\000\003@\000\000\000\000\000\000\003D\000\000\003C\000\000\000\000\003:\000\000\000\000\003?\003>\000\000\003;\000\000\0039\000\000\000\000\000\000\003=\000\000\003<\000\000\003H\000\000\000\000\003M\003L\000\000\003I\000\000\003P\000\000\000\000\003Q\000\000\003O\000\000\003G\000\000\003V\000\000\000\000\000\000\003K\000\000\000\000\003u\000\000\000\000\000\000\000\000\003U\003J\000\000\003w\000\000\000\000\002\247\003v\000\130\000\000\000\249\000\000\000\000\000\000\000\000\003S\000\000\000\000\000\000\000\000\003T\003R\000\000\000\000\003l\000\000\000\000\003_\000\000\000\000\003d\003c\000\000\003`\000\000\003^\000\000\000\000\000\000\003b\000\000\003a\000\000\000\000\003X\000\000\000\000\003]\003\\\000\000\003Y\000\000\003W\000\000\000\000\000\000\003[\000\000\003Z\000\000\003f\000\000\000\000\003k\003j\000\000\003g\000\000\003n\000\000\000\000\003o\000\000\003m\000\000\003e\000\000\003t\000\000\000\000\000\000\003i\000\000\000\000\000\000\000\000\003s\003h\000\000\000\000\000\000\000\000\003q\000\000\000\000\000\000\000\000\003r\003p\003\016\003\018\003\019\003\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\211\000\210\000\000\000\000\000w\000\000\000\000\000\000\002u\000\000\000\000\000\000\002}\000\000\000\000\002|\000\000\003\133\002{\002z\002y\002x\002w\001_\002s\000\000\000\000\002t\000\000\002v\000\000\000\000\000\000\000\000\000\000\000e\002P\000\000\000\000\002S\000\000\000\000\002V\000\000\000\000\002Q\002T\000\000\002R\002U\002~\002r\000f\003\130\003\131\003\129\003\128\003\132\000\000\000\000\000\000\000\000\001\t\001\008\000\000\000\000\000\000\000\000\000\000\001U\000\000\001\019\001R\000\000\001\007\001X\000\000\000\000\000\000\001Y\000\000\000\000\001Z\000\000\001\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\001[\000\000\001W\000\000\000\000\001]\000\000\000\000\000\000\000\000\000\000\000\000\000t\000q\000r\001^\001T\000\000\001S\000\000\000\242\000\000\002\225\000\000\000\000\000\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\245\000\000\000\000\000\248\000\000\000\000\000\000\000\000\000\000\000\000\001B\000\000\000\000\000\000\000\235\000\000\000\232\000\000\000\000\000\000\000\000\000\000\000\243\000\000\000\239\000\000\000\000\000\000\000\000\000\240\000\000\000\236\000\000\000\000\000\000\002\143\000\000\000\000\000\000\000\000\002\150\000\000\000\000\002\149\002\148\002\147\002\146\002\145\002\141\000\000\000\000\002\142\000\000\002\144\000\000\000\000\000i\002^\000\000\000\000\002a\000\000\000\000\002d\000\000\000\000\002_\002b\000\000\002`\002c\002\152\002\140\003\144\003\145\003\143\003\142\000j\000\000\000\000\000Z\000\000\000Y\000\000\002\151\000\000\001\212\000X\000?\001\031\000`\000\000\000\000\000\000\000\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\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\000\003\147\003\146\000\000\003\007\000\000\003\006\000\000\000\000\000\000\000\000\003\159\000\000\000\000\000\000\003\160\000\000\000\018\000\000\000\000\000\000\003\155\000\000\001\163\000\000\000\000\000\000\000\222\002\253\001w\001v\001N\001M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\011\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\001\015\000\255\000\000\001\135\000\000\000\000\000\254\000\250\000\000\001\001\000\251\001\000\000\000\003\t\000\000\003\008\002\250\000\000\000\000\000\000\000\000\000\000\003\003\000\000\000\000\000\000\000\000\003\004\002\252\000\000\003\n\000\000\002\254\000\000\000\226\001O\000\000\003\013\000\000\001Q\000\000\000\000\003$\000\000\003+\000\228\000\000\000\233\000\000\003%\000\227\000\000\003&\000\000\003-\000\000\000\000\000\000\000\000\000\246\000\000\000\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\000\000\247\000\000\000\000\000\000\000\000\001A\000\000\000\000\000\000\000\234\000\000\000\231\000\000\000\000\000\000\000\000\000\000\000\241\000\000\000\237\000\224\000\223\000\000\003.\003/\000\000\0030\000\000\0031\000\000\001P\003\001\000\000\000\000\001\234\000\000\001\159\001\216\000\000\002\251\000\000\000\000\000\000\003\000\000\000\000\000\000\000\0015\000\000\001/\000\000\0010\000\000\001:\001.\0019\000\000\003\012\001;\000\000\000\229\000\000\000\000\000\000\000\000\0017\0012\001\231\000\000\0013\000\000\0014\000\000\001\153\001\213\000\000\000\000\000\000\001\241\000\000\001\239\000\000\000\000\001\243\001\237\000\000\001\244\001\238\000\000\003\014\001\247\000\000\000\225\000\000\000\000\001\232\000\000\001\155\001\214\000\000\003\156\000\000\003\153\000\000\003\154\000\019\000\020\000\000\000\000\002\203\000\000\002\202\000\000\000\000\002\205\000\000\002\204\000\000\000\000\000\000\002\020\000\000\000\000\002\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\027\000\000\000\000\002\030\000\000\002\014\000\000\000\000\002\017\000\000\000\000\000\000\002\021\000\000\000\000\002\025\000\000\000\000\001\233\000\000\000\000\002\018\000\000\000\000\002\022\002\200\002\015\000\000\002\201\000\000\000\000\000\000\000\000\002\028\000\000\002\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\026\000\000\000\000\002\029\000\000\002\013\000\000\000\000\002\016\000\000\000\000\000\000\002\019\000\000\000\000\002\023\000\000\001\157\001\215\000\000\002\206\000\000\000\000\000\000\003\157\000\017\000u\000\000\003\158\000\000\000\000\002\221\000\000\000\000\003\015\000a\000\000\000\000\000\000\000b\000\000\003\005\000\000\001}\000\000\001\131\003\002\000\000\000\000\001i\000\000\001h\000\000\001r\000\000\001\145\000\000\000\000\000\000\001g\000\000\001f\000\000\001o\000\000\001\143\000\000\000\000\000\000\001n\000\000\000\000\000\000\001k\000\000\001j\000\000\001p\000\000\001\147\000\000\000\000\000\000\001l\000\000\000\000\000\000\001e\000\000\001d\000\000\001s\000\000\001\141\000\000\000\000\000\000\001m\000\002\000\000\000N\000O\000\000\000\000\002\168\002\172\002\176\002\164\002\161\000\000\000\000\002\173\002\180\002\165\002\179\002\163\002\178\002\167\002\159\002\166\002\175\002\162\002\169\002\160\002\171\002\177\002\174\002\170\001\179\001\178\000\128\000\000\000\000\002\243\000\000\000\000\002\215\000\000\000\000\002\217\002\216\002\190\000\000\000\000\002\249\002\182\002\181\002\183\000\000\001\191\000M\001t\000\003\000\000\000\000\002\155\000\000\002\"\000\000\000\129\000\000\000\000\002\245\000\000\000\000\000\000\000y\000\000\000\000\002\229\000\000\002\007\002\006\001\173\002\191\000\000\001\207\000\000\002\156\000\000\000\000\000{\000\000\000\000\002\233\000\000\001\188\000\000\000\000\001\184\000\000\000\000\000\000\001\187\000\000\001\186\000\000\000\000\000\000\000\000\000\000\000\000\001\208\000\000\001\182\000\000\001\181\000\000\000v\000\000\000\000\002\223\000\000\000\000\001\177\000\000\000\000\000~\000\000\000\000\002\239\000\000\000\000\002\198\000\000\002\197\000\000\000\000\000\000\002\005\002\004\002\195\002*\002\186\002\196\000\000\001\194\000\000\000\000\000\000\001\190\000\000\001\196\000\000\000\000\001\185\000\000\000\000\000\000\002\188\000\127\000\000\000\000\002\241\000\000\002\187\000\000\001\192\000\000\000\000\001\193\000\000\000\000\000\000\000\000\000\000\000\000\001\209\000\000\001\183\000\000\001\253\000|\000\000\000\000\002\235\000\000\000\000\000\000\000\000\003 \003\031\000\000\000\000\001F\000x\001E\000\000\000\000\002\227\000\000\001\255\001\254\002\001\002\184\002&\002\000\000\000\000}\000\000\000\000\002\237\000\000\000\000\000\000\000\000\002\003\002\002\002\194\002\192\002(\002\185\002\193\000\000\001\201\000\000\001\205\000\000\000\000\001\197\000\000\000\000\000\000\001\189\000\000\001\195\000\000\000\000\000\000\000\000\001\176\000\000\000\000\001\204\000\000\001\203\000\000\000\000\000\000\000\000\001\200\000\000\000\000\001\199\000\000\001\198\000\000\000\000\000\000\000\000\001\202\000\000\001\206\000\000\000\000\001u\000\004\000\000\001\180\000\005\000\000\000\000\001#\000\006\000\000\001\220\001\221\001\219\000\000\001\218\003!\001\169\000\000\000\007\000\000\001\223\001\224\001\222\000\000\000\000\000\000\000\000\001%\000\000\000\000\000\000\000\000\001*\001,\001+\001&\001(\001'\000\000\000\000\000\000\000\000\000\000\003'\0034\000\000\003(\000\000\003)\000\000\000\000\003\"\000\000\000\000\000\000\000\000\0033\000\000\000\000\0032\001\228\001\227\000\000\000\000\001\171\001\217\001\225\000\000\000\000\000\000\000\000\002\t\000\000\000\000\000l\000m\002\008\000\000\000\000\000\000\000\218\000\000\001\127\000\000\000\000\000\217\000\213\000\000\000\000\000\000\000\000\001@\000\000\0037\000\000\0038\000\000\000\000\001\250\001\248\000\000\001\249\000\008\000\000\000\t\000\000\0029\002:\0028\000\000\0027\000\000\000\n\000\000\002<\002=\002;\000\000\002?\000\000\000\000\000\000\0021\000\000\000\000\0023\000\000\002-\000\000\002/\000\000\0024\000\000\0025\000\000\002.\002,\002@\001\175\0026\000\000\002B\000\000\002A\000\000\002C\000\000\002\199\000\011\000\000\000\000\000\000\000\000\000\000\000\000\002D\000\000\000\000\002G\000\000\002F\000\000\002E\001\002\000\000\000\000\000\000\000\000\001\003\002H\000\000\000\000\002\210\000\000\000\000\000\000\000\000\002\211\000\000\000\000\001\"\000\000\000\000\000\000\000\000\000\000\002\219\000k\000\000\000\000\001\011\000\000\001\029\001\028\000\000\001a\000\000\002\209\001\167\001\165\000\000\000\000\000\000\000\000\002\212\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\208\000\000\000\000\000\000\000\000\000\000\000\000\002\207\000\000\000\013\000\000\000\000\000\000\000\000\000\000\002\214\000\000\000\000\000\000\002\213") + (16, "\000\000\000\000\002\161\000|\000\000\000\000\002\234\001L\000\000\001J\001K\001I\000\000\001N\001M\000\001\000\000\001\140\000\000\000\000\000\140\000\000\000\000\001|\000\165\000\000\000\000\000\152\000\000\000\000\000\157\000\156\000\000\000\153\000\000\000\151\000\000\000\000\000\000\000\155\000\000\000\154\003!\003 \000\000\000\000\000\145\000\000\000\000\000\150\000\149\000\000\000\146\000\000\000\144\000\000\000\000\000\000\000\148\000\000\000\147\000\000\000\159\000\000\000\000\000\164\000\163\000\000\000\160\000\000\000\167\000\000\001F\001E\000\000\000\168\000\000\000\166\000\139\000\000\000\158\000\000\000\173\000\000\000\000\000\000\000\162\000\000\000\000\000\000\003\023\000\000\000\000\000\000\000\000\000\000\003\028\000\000\000\000\000\170\000\000\003\030\000\000\000\000\000\000\003\155\002k\000\000\003\153\000\000\002\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\152\003\154\002q\001A\002p\001?\001@\002o\002n\002m\002i\000\000\000\000\002j\001\014\000\000\002l\000\000\003\151\000\000\000c\001>\002L\000\000\000\000\002O\000\000\000\015\000\000\000\000\000\000\000\000\001\015\002h\002t\000[\000\021\000]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\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\000\000\000\134\002'\000R\001\024\000^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\\\000T\000\000\000S\001\025\000\000\002R\001\026\000\014\000\016\000\000\000\000\000\195\000\000\000\000\000\182\000\000\000\000\000\187\000\186\000\000\000\183\000\000\000\181\000\000\000\000\000\000\000\185\000\000\000\184\000\000\000\000\000\175\000\000\000\000\000\180\000\179\000\000\000\176\000\000\000\174\000\000\000\000\000\000\000\178\000\000\000\177\000\000\000\189\000\000\000\000\000\194\000\193\000\000\000\190\000\000\000\197\000\000\000\000\000\198\000\000\000\196\000\000\000\188\000\000\000\203\000\000\000\000\000\000\000\192\000\000\000\000\000\000\000\000\000\202\000\000\000\000\000\142\000\000\000\000\000\000\000\000\000\000\000\000\002\014\000\211\000\000\000\000\000n\000o\002\013\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\222\000\217\000\000\001\239\000\000\000\000\000\000\000\000\000\210\000\208\000\223\000\000\001\132\000\000\000\000\003\025\000\000\003\024\000\000\000\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\201\000\199\000\000\000\000\003\027\003\031\000\191\000\000\000\000\001\029\000\000\000\000\002M\002P\000\000\002N\002Q\003~\003\127\003}\000\000\002r\003|\000\000\002\140\000\000\000\000\002\139\002\138\002\137\002\136\002\135\002\131\000\000\000\000\002\132\000\000\002\134\000\000\000\000\000g\002Z\000\000\000\000\002]\000\000\000\000\002`\000\000\000\000\002[\002^\000\000\002\\\002_\002\142\002\130\003\140\003\141\003\139\003\138\000h\000\000\000\000\000W\000\000\000V\001\"\000\000\001\248\000\000\000\000\000\000\000\000\000\000\001\019\001\254\000\000\000\000\001\164\000U\0001\001\012\000_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\000\000\0003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002s\000\000\000\206\000\000\000\000\001\233\000\000\001\154\001\214\000\000\000\000\001\232\000\000\001\152\001\213\000\000\000\000\000d\000\000\002\141\000\000\000\000\003\143\003\142\000\000\001\249\000\000\000\000\003\129\003\128\000\000\000Q\000\207\000\000\001~\000\000\003\026\000\000\000\000\000\000\000\000\000\171\000\169\000\000\001\023\000\000\000\000\000\172\000\161\000\000\000\000\001f\000\000\001e\000\000\001t\000\000\001\142\000\000\000\000\000\000\003Q\000\000\000\000\003D\000\000\000\000\003I\003H\000\000\003E\000\000\003C\000\000\000\000\000\000\003G\000\000\003F\000\000\000\000\003=\000\000\000\000\003B\003A\000\000\003>\000\000\003<\000\000\000\000\000\000\003@\000\000\003?\000\000\003K\000\000\000\000\003P\003O\000\000\003L\000\000\003S\000\000\000\000\003T\000\000\003R\000\000\003J\000\000\003Y\000\000\000\000\000\000\003N\000\000\000\000\003x\000\000\000\000\000\000\000\000\003X\003M\000\000\003z\000\000\000\000\002\250\003y\000\132\000\000\000\251\000\000\000\000\000\000\000\000\003V\000\000\000\000\000\000\000\000\003W\003U\000\000\000\000\003o\000\000\000\000\003b\000\000\000\000\003g\003f\000\000\003c\000\000\003a\000\000\000\000\000\000\003e\000\000\003d\000\000\000\000\003[\000\000\000\000\003`\003_\000\000\003\\\000\000\003Z\000\000\000\000\000\000\003^\000\000\003]\000\000\003i\000\000\000\000\003n\003m\000\000\003j\000\000\003q\000\000\000\000\003r\000\000\003p\000\000\003h\000\000\003w\000\000\000\000\000\000\003l\000\000\000\000\000\000\000\000\003v\003k\000\000\000\000\000\000\000\000\003t\000\000\000\000\000\000\000\000\003u\003s\003\019\003\021\003\022\003\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\212\000\000\000\000\000y\000\000\000\000\000\000\002x\000\000\000\000\000\000\002\128\000\000\000\000\002\127\000\000\003\136\002~\002}\002|\002{\002z\001b\002v\000\000\000\000\002w\000\000\002y\000\000\000\000\000\000\000\000\000\000\000e\002S\000\000\000\000\002V\000\000\000\000\002Y\000\000\000\000\002T\002W\000\000\002U\002X\002\129\002u\000f\003\133\003\134\003\132\003\131\003\135\000\000\000\000\000\000\000\000\001\011\001\n\000\000\000\000\000\000\000\000\000\000\000\000\001W\000\000\001\021\001T\000\000\001\t\000\000\000\000\000\000\001[\000\000\000\000\001\\\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\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\001_\000\000\000\000\000\000\000\000\000\000\000\000\000u\000\000\000\000\000v\000q\000s\000r\001a\001Z\001]\000\000\001Y\001V\000\000\001U\000\000\000\244\000\000\002\228\000\000\000\000\000\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\247\000\000\000\000\000\250\000\000\000\000\000\000\000\000\000\000\000\000\001D\000\000\000\000\000\000\000\237\000\000\000\234\000\000\000\000\000\000\000\000\000\000\000\245\000\000\000\241\000\000\000\000\000\000\000\000\000\242\000\000\000\238\000\000\000\000\000\000\002\146\000\000\000\000\000\000\000\000\002\153\000\000\000\000\002\152\002\151\002\150\002\149\002\148\002\144\000\000\000\000\002\145\000\000\002\147\000\000\000\000\000i\002a\000\000\000\000\002d\000\000\000\000\002g\000\000\000\000\002b\002e\000\000\002c\002f\002\155\002\143\003\147\003\148\003\146\003\145\000j\000\000\000\000\000Z\000\000\000Y\000\000\002\154\000\000\001\215\000X\000?\001!\000`\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\150\003\149\000\000\003\n\000\000\003\t\000\000\000\000\000\000\000\000\003\162\000\000\000\000\000\000\003\163\000\000\000\018\000\000\000\000\000\000\003\158\000\000\001\166\000\000\000\000\000\000\000\224\003\000\001z\001y\001P\001O\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\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\001\016\001\017\001\001\000\000\001\138\000\000\000\000\001\000\000\252\000\000\001\003\000\253\001\002\000\000\003\012\000\000\003\011\002\253\000\000\000\000\000\000\000\000\000\000\003\006\000\000\000\000\000\000\000\000\003\007\002\255\000\000\003\013\000\000\003\001\000\000\000\228\001Q\000\000\003\016\000\000\001S\000\000\000\000\003'\000\000\003.\000\230\000\000\000\235\000\000\003(\000\229\000\000\003)\000\000\0030\000\000\000\000\000\000\000\000\000\248\000\000\000\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\249\000\000\000\000\000\000\000\000\001C\000\000\000\000\000\000\000\236\000\000\000\233\000\000\000\000\000\000\000\000\000\000\000\243\000\000\000\239\000\226\000\225\000\000\0031\0032\000\000\0033\000\000\0034\000\000\001R\003\004\000\000\000\000\001\237\000\000\001\162\001\219\000\000\002\254\000\000\000\000\000\000\003\003\000\000\000\000\000\000\0017\000\000\0011\000\000\0012\000\000\001<\0010\001;\000\000\003\015\001=\000\000\000\231\000\000\000\000\000\000\000\000\0019\0014\001\234\000\000\0015\000\000\0016\000\000\001\156\001\216\000\000\000\000\000\000\001\244\000\000\001\242\000\000\000\000\001\246\001\240\000\000\001\247\001\241\000\000\003\017\001\250\000\000\000\227\000\000\000\000\001\235\000\000\001\158\001\217\000\000\003\159\000\000\003\156\000\000\003\157\000\019\000\020\000\000\000\000\002\206\000\000\002\205\000\000\000\000\002\208\000\000\002\207\000\000\000\000\000\000\002\023\000\000\000\000\002\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\030\000\000\000\000\002!\000\000\002\017\000\000\000\000\002\020\000\000\000\000\000\000\002\024\000\000\000\000\002\028\000\000\000\000\001\236\000\000\000\000\002\021\000\000\000\000\002\025\002\203\002\018\000\000\002\204\000\000\000\000\000\000\000\000\002\031\000\000\002\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\029\000\000\000\000\002 \000\000\002\016\000\000\000\000\002\019\000\000\000\000\000\000\002\022\000\000\000\000\002\026\000\000\001\160\001\218\000\000\002\209\000\000\000\000\000\000\003\160\000\017\000w\000\000\003\161\000\000\000\000\002\224\000\000\000\000\003\018\000a\000\000\000\000\000\000\000b\000\000\003\008\000\000\001\128\000\000\001\134\003\005\000\000\000\000\001l\000\000\001k\000\000\001u\000\000\001\148\000\000\000\000\000\000\001j\000\000\001i\000\000\001r\000\000\001\146\000\000\000\000\000\000\001q\000\000\000\000\000\000\001n\000\000\001m\000\000\001s\000\000\001\150\000\000\000\000\000\000\001o\000\000\000\000\000\000\001h\000\000\001g\000\000\001v\000\000\001\144\000\000\000\000\000\000\001p\000\002\000\000\000N\000O\000\000\000\000\002\171\002\175\002\179\002\167\002\164\000\000\000\000\002\176\002\183\002\168\002\182\002\166\002\181\002\170\002\162\002\169\002\178\002\165\002\172\002\163\002\174\002\180\002\177\002\173\001\182\001\181\000\130\000\000\000\000\002\246\000\000\000\000\002\218\000\000\000\000\002\220\002\219\002\193\000\000\000\000\002\252\002\185\002\184\002\186\000\000\001\194\000M\001w\000\003\000\000\000\000\002\158\000\000\002%\000\000\000\131\000\000\000\000\002\248\000\000\000\000\000\000\000{\000\000\000\000\002\232\000\000\002\n\002\t\001\176\002\194\000\000\001\210\000\000\002\159\000\000\000\000\000}\000\000\000\000\002\236\000\000\001\191\000\000\000\000\001\187\000\000\000\000\000\000\001\190\000\000\001\189\000\000\000\000\000\000\000\000\000\000\000\000\001\211\000\000\001\185\000\000\001\184\000\000\000x\000\000\000\000\002\226\000\000\000\000\001\180\000\000\000\000\000\128\000\000\000\000\002\242\000\000\000\000\002\201\000\000\002\200\000\000\000\000\000\000\002\008\002\007\002\198\002-\002\189\002\199\000\000\001\197\000\000\000\000\000\000\001\193\000\000\001\199\000\000\000\000\001\188\000\000\000\000\000\000\002\191\000\129\000\000\000\000\002\244\000\000\002\190\000\000\001\195\000\000\000\000\001\196\000\000\000\000\000\000\000\000\000\000\000\000\001\212\000\000\001\186\000\000\002\000\000~\000\000\000\000\002\238\000\000\000\000\000\000\000\000\003#\003\"\000\000\000\000\001H\000z\001G\000\000\000\000\002\230\000\000\002\002\002\001\002\004\002\187\002)\002\003\000\000\000\127\000\000\000\000\002\240\000\000\000\000\000\000\000\000\002\006\002\005\002\197\002\195\002+\002\188\002\196\000\000\001\204\000\000\001\208\000\000\000\000\001\200\000\000\000\000\000\000\001\192\000\000\001\198\000\000\000\000\000\000\000\000\001\179\000\000\000\000\001\207\000\000\001\206\000\000\000\000\000\000\000\000\001\203\000\000\000\000\001\202\000\000\001\201\000\000\000\000\000\000\000\000\001\205\000\000\001\209\000\000\000\000\001x\000\004\000\000\001\183\000\005\000\000\000\000\001%\000\006\000\000\001\223\001\224\001\222\000\000\001\221\003$\001\172\000\000\000\007\000\000\001\226\001\227\001\225\000\000\000\000\000\000\000\000\001'\000\000\000\000\000\000\000\000\001,\001.\001-\001(\001*\001)\000\000\000\000\000\000\000\000\000\000\003*\0037\000\000\003+\000\000\003,\000\000\000\000\003%\000\000\000\000\000\000\000\000\0036\000\000\000\000\0035\001\231\001\230\000\000\000\000\001\174\001\220\001\228\000\000\000\000\000\000\000\000\002\012\000\000\000\000\000l\000m\002\011\000\000\000\000\000\000\000\220\000\000\001\130\000\000\000\000\000\219\000\215\000\000\000\000\000\000\000\000\001B\000\000\003:\000\000\003;\000\000\000\000\001\253\001\251\000\000\001\252\000\008\000\000\000\t\000\000\002<\002=\002;\000\000\002:\000\000\000\n\000\000\002?\002@\002>\000\000\002B\000\000\000\000\000\000\0024\000\000\000\000\0026\000\000\0020\000\000\0022\000\000\0027\000\000\0028\000\000\0021\002/\002C\001\178\0029\000\000\002E\000\000\002D\000\000\002F\000\000\002\202\000\011\000\000\000\000\000\000\000\000\000\000\000\000\002G\000\000\000\000\002J\000\000\002I\000\000\002H\001\004\000\000\000\000\000\000\000\000\001\005\002K\000\000\000\000\002\213\000\000\000\000\000\000\000\000\002\214\000\000\000\000\001$\000\000\000\000\000\000\000\000\000\000\002\222\000k\000\000\000\000\001\013\000\000\001\031\001\030\000\000\001d\000\000\002\212\001\170\001\168\000\000\000\000\000\000\000\000\002\215\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\211\000\000\000\000\000\000\000\000\000\000\000\000\002\210\000\000\000\013\000\000\000\000\000\000\000\000\000\000\002\217\000\000\000\000\000\000\002\216") let error = - (178, "\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\012\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\001\128\000\000\000\000\000\000\000\000\000\000\128\016\192\000\000\129\012\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\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\128\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\003\252\000\000\000\000\000\000\000\001\235U\224\000\128\002\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\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\018\168h\005\001\013P@Hf\004`4\002!\222\t\000\0029\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\163\128\000\0001\000\001\000\024\017\128@\008\002\016\000\000\000&C\016\018(`\000\000\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0012\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\012@H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\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\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\012@\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\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\018(`\000\000\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\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\001v\142\000\000\000\196\000\004\000`F\001\000 \008@\000\000\000\153\012@H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\202\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\001\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\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\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\202\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\001\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\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\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\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\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\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\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235U\224\000\128\002\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000D\000\004B@F\001\000 \008@\000\000\000\153\012^\181^\000\008\000 \000\002\008\008\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\001\235U\224\008\128\002\000\000 \128\128\000\000\000\000 \000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\008\000 \000\002\008\008\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000@\000\000\000\128\000\000\000\000\000\001\235U\224\000\128\002\000\000 \128\128\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\018(`\000\000\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000 \000\128\000\008 \000\000\000\000\008\000\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\000\000\000\000\000\000\000@\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\000\000\000\000\000\000\016\000\002 \000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\000\016B \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\t \000H4\n\003;@\000! \016\004\000A\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\146\000\004\131@\1603\180\000\002\018\001\000\000\004\016\008 \000\000\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 \000H4\n\003;@\000! \016\000\000A\000\130\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\000\016@ \128\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008'\173W\128\002$\136\001 \208*\012\237\000\000\132\128@\016\001\004\002\t\235U\224\000\137\"\000H4\n\131;@\000! \016\004\000A\000\130\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\000\016@ \158\181^\000\008\146 \004\131@\1683\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\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 \000H4\n\003;@\000! \016\004\000A\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\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\019\004\217d\176\000\001@\008\016\000\003t\004'\135p\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\000z\213x\000\"H\128\018\013\002\160\207\208\000\008H\004\001\000\016H \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\018\000\000DA\006\001,\000\000P\002\000\000\000\217\000\t\161\220\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\000\130\000\000\001 \000\004D\019a\018\192\000\005\000 \000\000\013\144\000\158\029\192\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004D\019a\018\192\000\005\000 \000\000\t\144\000\158\013\192\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\018\000\000DA6\017,\000\000P\002\000\000\000\153\000\t\224\220\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\000\130\000\000\001 \000\004D\019a\018\192\000\005\000 \000\000\t\144\000\158\013\192\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\018\000\000DA6\017,\000\000P\002\000\000\000\153\000\t\224\220\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\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\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\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 \000H4\n\003;@\000! \016\004\000A\000\130\000\000\001 \000\004D\019a\018\192\000\005\000 \000\000\t\144\000\158\013\192\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\018\000\000DA6\017,\000\000P\002\000\000\000\153\000\t\224\220\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\000\130\000\000\001 \000\004D\019a\018\192\000\005\000 \000\000\t\144\000\158\013\192\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\018\000\000DA6\017,\000\000P\002\000\000\000\153\000\t\224\220\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\000\130\000\000\001 \000\004D\019a\018\192\000\005\000 \000\000\t\144\000\158\013\192\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000`\004\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\018\000\000DA6\017,\000\000P\002\000\000\000\153\000\t\224\220\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\000\130\000\000\001 \000\004D\019a\018\192\000\005\000 \000\000\t\144\000\158\013\192\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\018\000\000DA6\017,\000\000P\002\000\000\000\153\000\t\224\220\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\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\001 \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\003\173V\128\002\000\008\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\002\000\000\000 \000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\018(`\000\000\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0012\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\012@H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\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\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\012@\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\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\018(`\000\000\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005@\128\000\000\008\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000L\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\018(`\000\000\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\000\000\000\000\000\000\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000L\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\018(`\000\000\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\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\002\000\000\000\000\000\000\000\018(`\000\000\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\012@\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\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\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\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\001\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\012@\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\004@\000D$\004`\016\002\000\132\000\000\000\t\144\197\235U\224\000\128\002\000\000 \128\128\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\001\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235U\224\000\128\002\000\000 \128\128\000\000\000\000 \000\000\000\000\004\000z\213x\000 \000\128\000\008 \000\000\000\000\008\000\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\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\008\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\008\000\000\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\001\235U\224\000\128\002\000\000 \000\140\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\008\128\001\235U\224\000\128\002\000\000 \000\140\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\004\000\000\004\000\000\000\008\000\000\000\000\136\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\128\000\000\000\000\128\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000 \000\128\000\008\000#\000\000\000\000\000\000\001\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000\007\173W\128\002\000\008\000\000\128\0020\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\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\008\000 \000\002\000\008\192\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\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\008\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\008\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\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\014\181Z\000\008\000 \000\000\000\008\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000@\000\000\000\128\000\000\000\000\000\001\235U\224\000\128\002\000\000 \128\128\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\001\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\001\016\000\017\t\001\024\004\000\128!\000\000\000\002d1z\213x\000 \000\128\000\008 \000\000\000\000\008\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\018(`\000\000\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\008\128\001\235U\224\000\137\"\000H4\n\131?@\000! \016\004\000A\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\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\000\000\000\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\008\000\000\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000\000\004\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\000\016@ \128\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\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 \000H4\n\003;@\000! \016\000\000A\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\146\000\004\131@\1603\180\000\002\018\001\000\000\004\016\008 \000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\000\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\002\004Y$\160\000\001\000\000\016\000\003T\004\001\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\"H\128\018\013\002\160\207\208\000\008H\004\001\000\016H \128\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\t \000H4\n\003;@\000! \016\004\000A\000\130\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\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\000H\000\001\000\004X\004\160\000\001\000\000\000\000\003D\000\001\004`\000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\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\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\000\000\000 $\128\001 \208(\012\237\000\000\132\128@\000\001\004\002\008\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\000\016@ \128\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\016\000E\128J\000\000\016\000\000\000\000$@\000\016\006\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\000\016@ \128\000\000H\000\001\000\004X\004\160\000\001\000\000\000\000\002D\000\001\000`\000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\000\001\004\002\008\000\000\004\128\000\016\000E\128J\000\000\016\000\000\000\000$@\000\016\006\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\000\016@ \128\000\000H\000\001\000\004X\004\160\000\001\000\000\000\000\002D\000\001\000`\000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\000\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\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$\128\001 \208(\012\237\000\000\132\128@\000\001\004\002\008\000\000\004\128\000\016\000E\128J\000\000\016\000\000\000\000$@\000\016\006\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\000\016@ \128\000\000H\000\001\000\004X\004\160\000\001\000\000\000\000\002D\000\001\000`\000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\000\001\004\002\008\000\000\004\128\000\016\000E\128J\000\000\016\000\000\000\000$@\000\016\006\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\000\016@ \128\000\000H\000\001\000\004X\004\160\000\001\000\000\000\000\002D\000\001\000`\000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\000\001\004\002\008\000\000\004\128\000\016\000E\128J\000\000\016\000\000\000\000$@\000\016\006\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\128\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$\128\001 \208(\012\237\000\000\132\128@\000\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\000\016@ \128\000\000H\000\001\000\004X\004\160\000\001\000\000\000\000\002D\000\001\000`\000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\000\001\004\002\008\000\000\004\128\000\016\000E\128J\000\000\016\000\000\000\000$@\000\016\006\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\000\016@ \128\000\000H\000\001\000\004X\004\160\000\001\000\000\000\000\002D\000\001\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\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\004\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\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\016\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\000\000@\000\000\000\000\000\000\000\000\000\016\000\030\181^\000\008\000 \000\002\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\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\t \000H4\n\003;@\000! \016\004\000A\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\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\235U\224\000\137\"\000H4\n\131;@\000! \016\004\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\030\181^\000\008\146 \004\131@\1683\180\000\002\018\001\000@\004\016\008 \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\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\004\000\000\128\000\000\000\000\000\000\000\004\000\000\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\001\"\134\000\000\000D\000\004B@F\001\000 \008@\000\000\000\153\012^\181^\000\008\000 \000\002\008\008\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\016\000\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\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^\181^\000\008\000 \000\002\000\008\000\000\000\000\000\000\000\000\000\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\235U\224\000\128\002\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\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\001\000\000\000\000\000\000\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\031\253\127\004\008\210(\004\003\024\174;\188 \006z\131\000\008\213\016('\173W\128\002\000\008\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\021\002\000\000\000 \000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\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\128P\016\145\004\000\134 \000\002@\002\029\160\144\000#\000\000\000\002\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\005@\128\000\000\008\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\006\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\192\000\000\000\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\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\128\000\000\000\000\000\000\000 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\002\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\006\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\192\000\000\000\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000\000\000\000\000\000\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\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\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\007\173W\128\002\000\008\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\000\000\000\000\000\000\000\000\000\000\000\000\002\000 \020\004$A\0001\136\000\000\144\000\135h$\000\008\192\000\007\173W\128\002\000\008\000\000\130\002\000\000\000\000\000\128\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\004\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\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\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\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\008\000\000\000\000\000\000\030\181^\000\008\000 \000\002\008\008\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\016\000\000 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\002\000 \020\004$A\0001\136\000\000\144\000\135h$\000\008\192\000\007\173W\128\002\000\008\000\000\130\002\000\000\000\000\000\128\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\004\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\235U\160\000\128\002\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\005@\128\000\000\008\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\006\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\192\000\000\000\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\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\128\000\000\000\000\000\000\000 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\002\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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\001P \000\000\002\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\001\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\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\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\001\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\000\000\000@\000\000\000\128\000\000\000\000\000\000\000 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\002\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\002\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\002\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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 \002\001@BD\016\003\024\128\000\t\000\008v\130@\000\140\000\000z\213x\000 \000\128\000\008 \000\000\000\000\008\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\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002\000\000\000\000\000\000\007\173W\128\002\000\008\000\000\130\002\000\000\000\000\000\128\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\004\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\128\008\005\001\t\016@\012b\000\000$\000!\218\t\000\0020\000\001\235U\224\000\128\002\000\000 \128\128\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\001\000\000\002\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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\000\000\000\000\000\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\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \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@\013 \128@1\n#\187B\000g\1680\000\140Q\002\130\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\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \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\127\245\252\000 \000\128\000\008\000 \000 \000\000\008\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\001\235U\224\000\128\002\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\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000@\000\008\000\000\000\000\000\000\t \000H5\n\003{@\000! \016\004\000A\000\130\000\000\000\000\002H\000\016\012\194\128\206\208\000\024H\004\005@\016A \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$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\000\130\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\007\173W\128\002$\136\001 \208*\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\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\146\000\004\003\000\1603\180\000\006\018\001\000\000\004\016\008 \000\000\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@0\n\003;@\000a \016\000\000A\000\130\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \158\181^\000\008\146 \004\131@\1683\180\000\002\018\001\000@\004\016\008 \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\t \000@0\n\003;@\000a \016\000\000A\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\016\000\000@\129\006I(\000\000@\000\004\000\000\133\001\008\000\024\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\030\181^\000\008\146 \004\131@\1683\244\000\002\018\001\000@\004\018\008 \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\002H\000\018\013\002\128\206\208\000\008H\004\001\000\016@ \128\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\004\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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 \000H4\n\003;@\000! \016\004\000A\000\130\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\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\146\000\004\0030\1603\180\000\006\018\001\001P\004\016H \000\000\018\000\000D\1936Y,\000\000P\002\004\000\000\221\001\tA\220\000\000\000\008\t \000@3\n\003;@\000a \016\021\000A\004\130\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\146\000\004\131P\1607\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\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\000H\000\001\003\004\025$\176\000\001\000\000\016\000\0034\004$\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\t \000@3\n\003;@\000a \016\017\000A\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$\128\001\000\204(\012\237\000\001\132\128@D\001\004\002\008\000\000\000\000\000\000\000\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\004\000\000\016\000A\128J\000\000\016\000\000\000\000 @\002\000\006\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000@\000\001\000\004\024\004\160\000\001\000\000\000\000\002\004\000 \000`\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\000\000\016\000A\128J\000\000\016\000\000\000\000 @\002\000\006\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000@\000\001\000\004\024\004\160\000\001\000\000\000\000\002\004\000 \000`\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\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$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\000\000\016\000A\128J\000\000\016\000\000\000\000 @\002\000\006\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000@\000\001\000\004\024\004\160\000\001\000\000\000\000\002\004\000 \000`\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\000\000\016\000A\128J\000\000\016\000\000\000\000 @\002\000\006\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000@\000\001\000\004\024\004\160\000\001\000\000\000\000\002\004\000 \000`\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\000\000\016\000A\128J\000\000\016\000\000\000\000 @\002\000\006\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000@\000\001\000\004\024\004\160\000\001\000\000\000\000\002\004\000 \000`\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\000\000\016\000A\128J\000\000\016\000\000\000\000 @\002\000\006\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000@\000\001\000\004\024\004\160\000\001\000\000\000\000\002\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\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$\128\001\000\204(\012\237\000\001\132\128@T\001\004\018\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\016\012\194\128\206\208\000\024H\004\005@\016A \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$\128\001\000\204(\012\237\000\001\132\128@T\001\004\018\008\000\000\000\000\t \000@3\n\003;@\000a \016\017\000A\004\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\146\000\004\0030\1603\180\000\006\018\001\001P\004\016H \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\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\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\004\000\000F\000\000\000\008\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\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\008\000 \000\002\000\008\192\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\128\000\000\000\000\000\000\000\016\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\146\000\004\131P\1607\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\000\000\000\000\000\000\000\004\000\000\128\000\000\000\000\000\000\000\001\000\001 \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\001\235U\224\000\128\002\000\000 \000\140\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\008\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\016\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\000\000\000\000\002H\000\018\013B\128\222\208\000\008H\004\001\000\016@ \128\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\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\014\181Z\000\008\000 \000\000\000\008\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\128\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\000\000\000\000\002H\000\018\013B\128\222\208\000\008H\004\001\000\016@ \128\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\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\001\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\008\000\000\000\000\000\000\t \000H5\n\003{@\000! \016\004\000A\000\130\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\128!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\007\255_\193\0024\138\001 \212+\142\239\008\001\158\160\192\018=F\026\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000\000\000\146\000\004\003\000\1603\180\000\006\018\001\000\000\004\016\008'\173W\128\002$\136\001 \208*\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\146\000\004\003\000\1603\180\000\006\018\001\000\000\004\016\008 \000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\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$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\000\000\t \000@0\n\003;@\000a \016\000\000A\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\018\000\000D\1936Y,\000\000P\002\004\000\000\213\001\001A\220\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\030\181^\000\008\146 \004\131@\1683\244\000\002\018\001\000@\004\018\008 \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\002H\000\018\013\002\128\206\208\000\008H\004\001\000\016@ \128\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\004\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000DA6\017,\000\000P\002\000\000\000\209\000\001A\220\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\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\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\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\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\004\128\000\017\016M\132K\000\000\020\000\128\000\000$@\000P7\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000H\000\001\017\004\216D\176\000\001@\008\000\000\002D\000\005\003p\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\128\000\017\016M\132K\000\000\020\000\128\000\000$@\000P7\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000H\000\001\017\004\216D\176\000\001@\008\000\000\002D\000\005\003p\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\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$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\128\000\017\016M\132K\000\000\020\000\128\000\000$@\000P7\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000H\000\001\017\004\216D\176\000\001@\008\000\000\002D\000\005\003p\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\128\000\017\016M\132K\000\000\020\000\128\000\000$@\000P7\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000H\000\001\017\004\216D\176\000\001@\008\000\000\002D\000\005\003p\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\128\000\017\016M\132K\000\000\020\000\128\000\000$@\000P7\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\128\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$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000H\000\001\017\004\216D\176\000\001@\008\000\000\002D\000\005\003p\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\128\000\017\016M\132K\000\000\020\000\128\000\000$@\000P7\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000H\000\001\017\004\216D\176\000\001@\008\000\000\002D\000\005\003w\173W\128\002$\136\001 \208*\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\128A \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\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\007\255_\193\2264\138\001\000\198+\142\239\008\001\158\160\192\0025D\n\008\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\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\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\000A\016\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\127\004\008\210(\004\003\016\174;\188 \006z\131\000\008\213\016('\255_\193\0024\138\001 \212/\142\239\008\001\158\160\192\0185E\n\t\255\215\240x\141\"\128@1\138\227\187\194\000g\1680\000\141Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\255\135\136\210(\004\003\024\190;\188`\006z\147\000\008\245\028k0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\215\240@\141\"\128@1\138\227\187\194\000g\1680\000\141Q\002\130\127\245\252\016#H\160\018\013B\248\238\240\128\025\234\012\001#TP\160\159\253\127\004\008\210(\004\131P\174;\188 \006z\131\000H\213\016h \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \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@\013 \128@1\n#\187B\000g\1680\000\140Q\002\130\000\000\000\016\003H \016\012B\136\238\208\128\025\234\012\000#\020@\160\128\000\000\000\000\000\000\000\000\000\000\001\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\146\001\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\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 \016H4\n\003;@\000! \016\004\000A\000\130\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\146\000\004\131@\1603\180\000\002\018\001\000@\004\018\008 \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@\013 \128@1\n#\187B\000g\1680\000\140Q\002\130\000\000\000\016\003H \016\012B\136\238\208\128\025\234\012\000#\020@\160\128\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\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\008\128\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\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\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\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\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\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\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\000\016@ \128\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\008\146 \004\131@\1683\244\000\002\018\001\000@\004\018\008 \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@\013 \128@1\n#\187B\000g\1680\000\140Q\002\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\008\000\000\000\000\000\000\000\000\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\007\255_\193\0024\138\001 \212+\142\239\024\001\158\160\192\0185D\n\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\255\135\136\210(\004\003\024\190;\188`\006z\147\000\008\245\028k0\000\000\000\000\000\000\000\000\000\000\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\031\253\127\004\008\210(\004\003\024\174;\188`\006z\131\000\008\213\016( \000\000\000\000\000\000\000 \016\000\000\000\016\000\000\000\000\016\000\000\000\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016#H\160\016\012b\184\238\241\128\025\234\012\000#T@\172\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\004\128\000\0170M\150K\000\016\020\000\129 \0007@@Pw\000\000\000\000\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\128@\000\000\000@\000\000\000\000@\000\000\003\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\127\245\252\016#H\160\018\013B\184\238\241\128\025\234\012\001#T@\172\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255_\193\0024\138\001\000\198+\142\239\024\001\158\160\192\0025D\n\204\000\000\000\000\000\000\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\030\181^\000\008\146 \004\131@\1683\244\000\002\018\001\000@\004\018\008 \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\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\001\000\001\000\000\017\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\008\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\008\000\000\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\001\235U\224\000\128\002\000\000 \000\140\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\008\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t \000H5\n\003{@\000! \016\004\000A\000\130\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\001\235U\224\000\128\002\000\000 \000\140\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\008\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\016\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\000\000\000\000\002H\000\018\013B\128\222\208\000\008H\004\001\000\016@ \128\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\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\014\181Z\000\008\000 \000\000\000\008\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\128\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\000\000\000\000\002H\000\018\013B\128\222\208\000\008H\004\001\000\016@ \128\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\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\001\255\215\240@\141\"\128H5\n\227\187\198\000g\1680\004\141Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\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\127\245\252\016#H\160\018\013B\184\238\241\128\025\234\012\001#T@\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\004`\016\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\016\000\000\000\000\000\000\000\000\000\004\000\000\000\000\001\0004\130\001\000\196(\142\237\008\001\158\160\192\0021D\n\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\000\016\000\000\000\000\000\000\000\000\000\004\000\007\255\127\225\0024\142\0010\212/\142\239\024\003\158\164\1922=GZ\204\000\000\000@\013 \128@1\n#\187B\000g\1680\000\140Q\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\127\004\008\210(\004\003\024\190;\188 \006z\131\000\008\245\028h \000\000\000\000\000\000\000 \016\000\000\000\000\000\000\000\000\016\000\000\000\001\255\215\240@\141\"\128@1\139\227\187\194\000g\1680\000\143Q\198\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\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\000\000\000\000\000\000\000\000\001\255\215\240@\141\"\128H5\011\227\187\194\000g\1680\004\143Q\198\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\127\004\008\210(\004\131P\190;\188 \006z\131\000H\245\028h \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000\000\000\000\000\000\000\000\000\001\000\001\255\215\240@\141\"\128@1\139\227\187\194\000g\1680\000\141QB\130\000\000\000\000\000\000\000\002\001\000@\000\000\000\000\000\000\001\000\000\016\000\031\253\127\004\008\210(\004\003\024\190;\188 \006z\131\000\008\213\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128@\016\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\001\255\215\240@\141\"\128H5\011\227\187\194\000g\1680\004\141QB\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\016\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\004\000\004\000@F\000\000\000\008\000\000\000\000\016\000\000\000\000\000\000\000\016\000\192@\000\000\000\000\008\000\000\000@\000\001\000\023\255_\193\0024\138\001\000\198+\142\239\008\001\158\160\192\0025D\n\008\000\000\000\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\003\001\000\000\000\000\000 \000\000\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\007\255_\193\0024\142\0010\212+\142\239\008\003\158\160\192\0185DJ\013\255\215\240@\141\"\128@1\138\227\187\194\000g\1680\000\141Q\002\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\007\255_\193\0024\142\0010\212+\142\239\008\003\158\160\192\0185DJ\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\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\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\004\000\000\000\000\000\000\000\000\000\001\000\001\255\215\240@\141\"\128H5\011\227\187\194\000g\1680\004\141QB\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\016\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\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@ \016\000\000\000\016\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\127\245\252\016#H\160\018\013B\184\238\241\128\025\234\012\001#T@\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000{\245\252\000\"H\160\016\012\002\160\206\240\000\024H\004\000\000T@\160\128\000\000\000\000\146\001\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\000\000\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\030\253\127\000\008\146(\004\003\000\1683\188\000\006\018\001\000\000\021\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\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\007\173W\128\002\000\008\000\000\128\002\000\000\000\000\000\128\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\004\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$\128\001 \212(\013\237\000\000\132\128@\016\001\004\002\008\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\001\000\000\017\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\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\008\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\007\173W\128\002\000\008\000\000\128\0020\000\000\000\000\000\000\016\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\004\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$\128\001 \212(\013\237\000\000\132\128@\016\001\004\002\008\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\001\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\t \000H5\n\003{@\000! \016\004\000A\000\130\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\003\173V\128\002\000\008\000\000\000\002\000\000\000\000\000\128\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\004\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$\128\001 \212(\013\237\000\000\132\128@\016\001\004\002\008\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\016\000\000\000\000\000\000\000\000\000\004\000\007\191_\192\002$\138\001\000\192*\012\239\000\001\132\128@\000\005D\n\008\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\004\012\016d\146\192\004\004\000\000H\000\012P\016\016\017\128\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t \000H5\n\003{@\000! \016\004\000A\000\130\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\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\001\235U\224\000\137\"\000H4\n\131?@\000! \016\004\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\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\016\000\016\000\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\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\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\008\000 \000\002\000\008\192\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\128\000\000\000\000\000\000\000\016\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\146\000\004\131P\1607\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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$\128\001 \212(\013\237\000\000\132\128@\016\001\004\002\008\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\014\181Z\000\008\000 \000\000\000\008\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\128\000\000\000\000\000\000\000\000\000\000\000\000\016\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\146\000\004\131P\1607\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\000\016\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000@\000@\004\004`\000\000\000\128\000\000\000\001\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\000\000\000\000\000\000\000\000\000\000\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\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\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\127\245\252\016#H\160\016\012b\184\238\240\128\025\234\012\000#T@\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\000\016@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\007\255_\193\0024\138\001 \212+\142\239\008\001\158\160\192\018=F\026\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\008\002\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\000 \000\128\000\008\000 \000 \000\000\008\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\001\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\127\245\252\016#H\160\016\012b\184\238\240\128\025\234\012\000#T@\160\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255_\193\0024\138\001\000\198+\142\239\008\001\158\160\192\0025D\n\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\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\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\000\002H\000\018\013\002\128\206\208\000\008H\004\001\000\016@ \128\000\000\000\000\000\016\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\016\000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\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\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\000\000\000\000@\000\000\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 \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\001\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\001\0004\130\001\000\196(\142\237\008\001\158\160\192\0021D\n\008\000\000\000\000\000\001\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\000\000\000\016\003H \016\012B\136\238\208\128\025\234\012\000#\020@\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\001\0004\130\001\000\196(\142\237\008\001\158\160\192\0021D\n\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\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\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\000\002H\000\018\013\002\128\206\208\000\008H\004\001\000\016@ \128\000\000\000\000\000\016\000\000\000\000\000\000\000\008\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\000 \000\128\000\008\000 \000 \000\000\008\000\000\000@\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\023\255_\192\002\000\008\000\000\128\002\000\002\000\000\000\128\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\127\245\252\000 \000\128\000\008\000 \000 \000\000\008\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000@\000\000\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 \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\001\000\000\000\000\000\000\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\000\000\000\000\000\000\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\235U\225\001\192BD\144!\000\128\000\t\000\008R\130@\000\140\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\001\000\000\000\000\000\000\000\000 \002\001@BD\016\000\016\000\000\t\000\008v\130@\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\008\005\001\001\016@\000@\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\008\000\128P\016\145\004\000\004\000\000\002@\002\029\160\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\000\000\000\000\128\000\000\000\000@\000\008\000\000\000\000\000\000\001\002\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\016\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\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\136\000\000\000\000\000\000\001\002\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\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\028\004$A\002\016\008\000\000\144\000\133 $\000\008\192\000\007\173W\128\007\001\008\000@\132\002\000\000$\000!H\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\128P\016\145\132\000\004\000\000\002@\002\029\160\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\128\008\005\001\t\016@\000@\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\128\000\000\002\000 \020\004$A\000\001\000\000\000\144\000\135h$\000\008\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\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\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\000\000\000\000\000\000\000\000\000\000\000\000\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\030\181^\000\028\004$\001\002\016\008\000\000\144\000\133 $\000\008@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235U\224\001\192B\000\016!\000\128\000\t\000\008R\002@\000\132\000\000\000\008\000\128P\016\145\004\000\004\000\000\002@\002\029\160\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\000\000\000\000\128\000\000\000\000\000\000\008\016\000\000 \002\001@BD\016\000\016\000\000\t\000\008v\130@\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\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 \002\001@BD\016\000\016\000\000\t\000\008v\130@\000\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\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\008\005\001\t\016@\000@\000\000$\000!\218\t\000\0020\000\000\000 \002\001@BD\016\000\016\000\000)\000\008v\130@\000\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\008\000\128P\016\145\004\000\004\000\000\002@\002\029\160\144\000#\000\000\000\002\000 \020\004$A\000!\000\000\002\144\000\135h$\000\008\224\000\000\000\128\008\005\001\t\016@\000@\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\008\000\128P\016\145\004\000\004\000\000\002@\002\029\160\144\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\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\001\235U\224\000\128\002\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 @\007\173W\128\002\000\008\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\000\000\000\000\000\000\000\000\000\000\001\000\000\002\000 \020\004$A\000!\128\000\000\144\000\135h$\000\008\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\018\000\000\000\000\000\000\000\008\000\128P\016\145\004\000\004\000\000\002@\002\029\160\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\000\000\000\000\128\000\000\000\000\000\000\008\000\000\000 \002\001@BD\016\000\016\000\000\t\000\008v\130@\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\000\000\000\003\000\000\000\000\004\000\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\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\008\005\001\t\016@\004@\000\000$\000!\218\t\000\0020\000\000\000 \002\001@BD\016\000\016\000\000\t\000\008v\130@\000\140\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\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 \020\004$A\000\001\000\000\000\144\000\135h$\000\008\192\000\000\000\128\008\005\193\t\016@\001@\000\000\164\000!\218\t\000\0028\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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 \002\001@BD\016\000\016\000\000\t\000\008v\130@\000\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\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\008\021\001\t\016@\000@\000\000$\000!\218\t\000\0020\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\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\008\000\129P\016\145\004\000\004\000\000\002@\002\029\160\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\192\000\000\000\001\000\000\000\128\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\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\008\005\001\t\016@\000@\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\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 \020\004$A\000\001\128\000\000\144\000\135h$\000\008\192\000\000\000\128\008\005\t\t\016@\t@\000\000\164\000!\218\t\000\0028\000\000\000 \002\001@BD\016\000\016\000\000\t\000\008v\130@\000\140\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 \020\004$A\000\001\000\000\000\144\000\135h$\000\008\192\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\008\000\000\000\000\000\000\000\000\000\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\008\005\001\t\016@\000`\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\008\005\001\t\016@\000@\000\000$\000!\218\t\000\0020\000\000\000\000\000\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\016\000\000\008\000\000\000\000\000\000\000\128\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\008\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\128\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\002\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002\000 \020\004$A\000\001\000\000\000\144\000\135h$\000\008\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\002\000\000\000\008\000\128P\016\145\004\000\004\000\000\002@\002\029\160\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\200\000\000\000\001\000\000\000\128\000\000\000\000\000\000\008\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\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002\000 \020\004$A\000\001\000\000\000\144\000\135h$\000\008\192\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\008\000\128P\016\145\004\000\004\000\000\002@\002\029\160\144\000#\000\000\000\002\000 \023\004$A\000\005\000\000\002\144\000\135h$\000\008\224\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\008\000\000\000\000\000\000\000\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\173\215\136\007\001\t\016@\132B\000\000$\000!\218\t\000\0020\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\008\000\128P\016\017\004\000\004\000\000\002@\002\029\160\144\000#\000\000\000\002\000 \023$$A\000\005\128\000\002\144\000\135h$\000\008\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 \002\001@BD\016\000\016\000\000\t\000\008v\130@\000\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000\000\000\000\000\000\030\183^ \028\004$A\002\017\136\000\000\144\000\135h$\000\008\192\000\000\000\128\008\005\001\t\016@\000@\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\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 \020\004$A\000\001\000\000\000\144\000\135h$\000\008\192\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\008\000\000\000\000\000\000\000\000\000\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\008\005\001\t\016@\008@\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\008\000\128P\016\145\004\000\004\000\000\002@\002\029\160\144\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\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\030\181^\016\028\004$I\002\016\008\000\000\144\000\133($\000\008\192\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\002H\000\018\013\003\128\206\208\000\008H\004\001\000\016@ \128\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\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\002H\000\018\013\002\128\206\208\000\008H\004\001\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016#H\160\018\015C\184\238\240\128\025\234L\001#T@\172\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\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\255\127\225\0024\138\001 \244+\142\239\008\001\158\164\192\0185D\n\205\239\223\248\000\128\002\000\000 \000\128\000\000\000\000\001\000\000\000\000\000\000{\247\254\000 \000\128\000\008\000 \000\000\000\000\000@\000\000\000\000\000\030\253\255\128\008\000 \000\002\000\008\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\004\138\024\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\001\"\134\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000H\161\128\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\018(`\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\127\007\136\210(\004\003\024\174;\188 \006z\131\000\008\213\016('\255_\193\0024\138\001\000\198+\142\239\008\001\158\160\192\0025D\n\008\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016#H\160\016\012b\184\238\240\128\025\234\012\000#T@\172\192\000\000\000\000\000\000\000\128@\000\000\000\000\000\000\000\000@\000\000\003\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\004\002\001\000\000\000\000\000\000\000\000\001\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\007\255_\193\0024\138\001 \212+\142\239\008\001\158\160\192\0185D\n\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\016\012\194\128\206\208\000\024H\004\005@\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\215\240x\141\"\128@1\138\227\187\194\000g\1680\000\141Q\002\130\127\245\252\016#H\160\016\012b\184\238\240\128\025\234\012\000#T@\160\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\007\255_\193\0024\138\001\000\198+\142\239\008\001\158\160\192\0025D\n\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\030#H\160\016\012b\184\238\240\128\025\234\012\000#T@\160\159\253\127\004\008\210(\004\003\024\174;\188 \006z\131\000\008\213\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\030\253\255\128\008\000 \000\002\000\008\000\000\000\000\002\016\000\000\000\000\000\000\018(`\000\000\000\000\000@\000\004`\000\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\024\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\030\181^\000\008\000 \000\002\000\008\192\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\002 \000z\213x\000 \000\128\000\008\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\004\000\000\004\000\000\000\008\000\000\000\000\136\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\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\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\008\128\001\235U\224\000\128\002\000\000 \000\140\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\128\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016#H\160\018\013B\184\238\240\128\025\234\012\001#TA\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\008\004\000\000\000\000\000\000\000\000\004\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\127\004\008\210(\004\131P\174;\188 \006z\131\000H\213\016+0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\000\016\000\016\000\001\024\000\000\000!\000\000\000\000\0001\000\000\000\000\000\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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$\128\001 \2088\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\000\016@ \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255\127\225\0024\138\001 \244;\142\239\008\001\158\164\192\0185D\n\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016#H\160\018\015B\184\238\240\128\025\234L\001#T@\172\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255\127\225\0024\138\001\000\198+\142\239\008\001\158\164\192\0025D\n\204\000\000\000\000\000\000\000\008\004\000\000\000\000\000\000\000\000\004\000\000\0001\127\247\254\016#H\160\016\012b\184\238\240\128\025\234L\000#T@\172\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255\127\225\0024\138\001 \212+\142\239\008\001\158\164\192\0185D\n\205\255\223\248@\141\"\128@1\138\227\187\194\000g\1690\000\141Q\002\179\000\000\000\000\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\128@\000\000\000\000\000\000\000\000@\000\000\003\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\223\248@\141\"\128H5\n\227\187\194\000g\1690\004\141Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\255\132\008\210(\004\131P\174;\188 \006z\147\000H\213\016+0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\223\248@\141\"\128H5\n\227\187\194\000g\1690\004\141Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\161\128\000\000\001\000\001\000\000\017\128\000\000\002\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\001\255\223\248@\141\"\128H5\n\227\187\194\000g\1690\004\141Q\002\179\000\000\000\000\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\128@\000\000\000\000\000\000\000\000@\000\000\003\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\223\248@\141\"\128H5\n\227\187\194\000g\1690\004\141Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\161\128\000\000\001\000\001\000\000\017\128\000\000\002\016\000\000\000\000\003\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\128\001\000\000\000\000\000\000\000\000\004\t\019\192\012\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\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\016\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\001\002\000\000\000\000\000\000\000\008\000\000\000\008\000\000\000\000\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\128\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000 \004\000\000\000\000\000\000\128\000\004\008\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\0040\002\000\002\001@\000\000\000\000\000\008\000\000@\128\000\000\000\000\000\000\002\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\016\000\000\000\000\000\000\000\0040\002\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\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\000\000\000\000\000\000\000\000\000\000\000\000\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\004p\003\000\000\001\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\192\012\000\000\004\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\0040\002\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\000C\000 \002\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\000C\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\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\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\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\004p\003\000\000\001\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\001\012\000\192\000\000@\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000C\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\192\008\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0040\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\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\0040\003\000\000\001\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\001\012\000\128\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000C\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\192\000\000\000\004\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\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\002\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\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\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") + (178, "\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\012\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\001\128\000\000\000\000\000\000\000\000\000\000\128\016\192\000\000\129\012\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\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\128\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\003\252\000\000\000\000\000\000\000\001\235U\224\000\128\002\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\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\018\168h\005\001\013P@Hf\004`4\002!\222\t\000\0029\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\163\128\000\0001\000\001\000\024\017\128@\008\002\016\000\000\000&C\016\018(`\000\000\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0012\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\012@H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\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\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\012@\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\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\018(`\000\000\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\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\001v\142\000\000\000\196\000\004\000`F\001\000 \008@\000\000\000\153\012@H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\202\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\001\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\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\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\202\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\001\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\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\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\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\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\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\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235U\224\000\128\002\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000D\000\004B@F\001\000 \008@\000\000\000\153\012^\181^\000\008\000 \000\002\008\008\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\001\235U\224\008\128\002\000\000 \128\128\000\000\000\000 \000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\008\000 \000\002\008\008\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000@\000\000\000\128\000\000\000\000\000\001\235U\224\000\128\002\000\000 \128\128\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\018(`\000\000\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000 \000\128\000\008 \000\000\000\000\008\000\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\000\000\000\000\000\000\000@\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\000\000\000\000\000\000\016\000\002 \000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\000\016B \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\t \000H4\n\003;@\000! \016\004\000A\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\146\000\004\131@\1603\180\000\002\018\001\000\000\004\016\008 \000\000\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 \000H4\n\003;@\000! \016\000\000A\000\130\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\000\016@ \128\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008'\173W\128\002$\136\001 \208*\012\237\000\000\132\128@\016\001\004\002\t\235U\224\000\137\"\000H4\n\131;@\000! \016\004\000A\000\130\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\000\016@ \158\181^\000\008\146 \004\131@\1683\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\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 \000H4\n\003;@\000! \016\004\000A\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\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\019\004\217d\176\000\001@\008\016\000\003t\004'\135p\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\000z\213x\000\"H\128\018\013\002\160\207\208\000\008H\004\001\000\016H \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\018\000\000DA\006\001,\000\000P\002\000\000\000\217\000\t\161\220\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\000\130\000\000\001 \000\004D\019a\018\192\000\005\000 \000\000\013\144\000\158\029\192\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004D\019a\018\192\000\005\000 \000\000\t\144\000\158\013\192\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\018\000\000DA6\017,\000\000P\002\000\000\000\153\000\t\224\220\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\000\130\000\000\001 \000\004D\019a\018\192\000\005\000 \000\000\t\144\000\158\013\192\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\018\000\000DA6\017,\000\000P\002\000\000\000\153\000\t\224\220\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\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\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\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 \000H4\n\003;@\000! \016\004\000A\000\130\000\000\001 \000\004D\019a\018\192\000\005\000 \000\000\t\144\000\158\013\192\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\018\000\000DA6\017,\000\000P\002\000\000\000\153\000\t\224\220\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\000\130\000\000\001 \000\004D\019a\018\192\000\005\000 \000\000\t\144\000\158\013\192\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\018\000\000DA6\017,\000\000P\002\000\000\000\153\000\t\224\220\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\000\130\000\000\001 \000\004D\019a\018\192\000\005\000 \000\000\t\144\000\158\013\192\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000`\004\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\018\000\000DA6\017,\000\000P\002\000\000\000\153\000\t\224\220\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\000\130\000\000\001 \000\004D\019a\018\192\000\005\000 \000\000\t\144\000\158\013\192\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\018\000\000DA6\017,\000\000P\002\000\000\000\153\000\t\224\220\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\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\001 \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\003\173V\128\002\000\008\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\002\000\000\000 \000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\018(`\000\000\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0012\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\012@H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\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\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\012@\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\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\018(`\000\000\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\012@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005@\128\000\000\008\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000L\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\018(`\000\000\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\000\000\000\000\000\000\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000L\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\018(`\000\000\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\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\002\000\000\000\000\000\000\000\018(`\000\000\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\012@\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\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\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\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\001\"\134\000\000\000D\000\004\002@F\001\000 \008@\000\000\000\153\012@\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\004@\000D$\004`\016\002\000\132\000\000\000\t\144\197\235U\224\000\128\002\000\000 \128\128\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\001\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235U\224\000\128\002\000\000 \128\128\000\000\000\000 \000\000\000\000\004\000z\213x\000 \000\128\000\008 \000\000\000\000\008\000\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\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\008\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\008\000\000\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\001\235U\224\000\128\002\000\000 \000\140\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\008\128\001\235U\224\000\128\002\000\000 \000\140\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\004\000\000\004\000\000\000\008\000\000\000\000\136\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\128\000\000\000\000\128\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000 \000\128\000\008\000#\000\000\000\000\000\000\001\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000\007\173W\128\002\000\008\000\000\128\0020\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\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\008\000 \000\002\000\008\192\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\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\008\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\008\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\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\014\181Z\000\008\000 \000\000\000\008\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000@\000\000\000\128\000\000\000\000\000\001\235U\224\000\128\002\000\000 \128\128\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\001\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\001\016\000\017\t\001\024\004\000\128!\000\000\000\002d1z\213x\000 \000\128\000\008 \000\000\000\000\008\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\018(`\000\000\004@\000@$\004`\016\002\000\132\000\000\000\t\144\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\008\128\001\235U\224\000\137\"\000H4\n\131?@\000! \016\004\000A\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\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\000\000\000\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\008\000\000\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000\000\004\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\000\016@ \128\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\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 \000H4\n\003;@\000! \016\000\000A\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\146\000\004\131@\1603\180\000\002\018\001\000\000\004\016\008 \000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\000\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\002\004Y$\160\000\001\000\000\016\000\003T\004\001\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000\"H\128\018\013\002\160\207\208\000\008H\004\001\000\016H \128\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\t \000H4\n\003;@\000! \016\004\000A\000\130\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\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\000H\000\001\000\004X\004\160\000\001\000\000\000\000\003D\000\001\004`\000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\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\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\000\000\000 $\128\001 \208(\012\237\000\000\132\128@\000\001\004\002\008\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\000\016@ \128\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\016\000E\128J\000\000\016\000\000\000\000$@\000\016\006\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\000\016@ \128\000\000H\000\001\000\004X\004\160\000\001\000\000\000\000\002D\000\001\000`\000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\000\001\004\002\008\000\000\004\128\000\016\000E\128J\000\000\016\000\000\000\000$@\000\016\006\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\000\016@ \128\000\000H\000\001\000\004X\004\160\000\001\000\000\000\000\002D\000\001\000`\000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\000\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\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$\128\001 \208(\012\237\000\000\132\128@\000\001\004\002\008\000\000\004\128\000\016\000E\128J\000\000\016\000\000\000\000$@\000\016\006\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\000\016@ \128\000\000H\000\001\000\004X\004\160\000\001\000\000\000\000\002D\000\001\000`\000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\000\001\004\002\008\000\000\004\128\000\016\000E\128J\000\000\016\000\000\000\000$@\000\016\006\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\000\016@ \128\000\000H\000\001\000\004X\004\160\000\001\000\000\000\000\002D\000\001\000`\000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\000\001\004\002\008\000\000\004\128\000\016\000E\128J\000\000\016\000\000\000\000$@\000\016\006\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\128\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$\128\001 \208(\012\237\000\000\132\128@\000\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\000\016@ \128\000\000H\000\001\000\004X\004\160\000\001\000\000\000\000\002D\000\001\000`\000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\000\001\004\002\008\000\000\004\128\000\016\000E\128J\000\000\016\000\000\000\000$@\000\016\006\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\000\000\016@ \128\000\000H\000\001\000\004X\004\160\000\001\000\000\000\000\002D\000\001\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\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\004\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\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\016\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\000\000@\000\000\000\000\000\000\000\000\000\016\000\030\181^\000\008\000 \000\002\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\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\t \000H4\n\003;@\000! \016\004\000A\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\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\235U\224\000\137\"\000H4\n\131;@\000! \016\004\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\030\181^\000\008\146 \004\131@\1683\180\000\002\018\001\000@\004\016\008 \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\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\004\000\000\128\000\000\000\000\000\000\000\004\000\000\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\001\"\134\000\000\000D\000\004B@F\001\000 \008@\000\000\000\153\012^\181^\000\008\000 \000\002\008\008\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\016\000\004\138\024\000\000\001\016\000\016\t\001\024\004\000\128!\000\000\000\002d1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000H\161\128\000\000\017\000\001\000\144\017\128@\008\002\016\000\000\000&C\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^\181^\000\008\000 \000\002\000\008\000\000\000\000\000\000\000\000\000\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\235U\224\000\128\002\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\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\001\000\000\000\000\000\000\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\031\253\127\004\008\210(\004\003\024\174;\188 \006z\131\000\008\213\016('\173W\128\002\000\008\000\000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\021\002\000\000\000 \000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\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\128P\016\145\004\000\134 \000\002@\002\029\160\144\000#\000\000\000\002\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\005@\128\000\000\008\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\006\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\192\000\000\000\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\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\128\000\000\000\000\000\000\000 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\002\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\006\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\192\000\000\000\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000\000\000\000\000\000\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\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\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\007\173W\128\002\000\008\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\000\000\000\000\000\000\000\000\000\000\000\000\002\000 \020\004$A\0001\136\000\000\144\000\135h$\000\008\192\000\007\173W\128\002\000\008\000\000\130\002\000\000\000\000\000\128\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\004\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\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\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\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\008\000\000\000\000\000\000\030\181^\000\008\000 \000\002\008\008\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\016\000\000 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\002\000 \020\004$A\0001\136\000\000\144\000\135h$\000\008\192\000\007\173W\128\002\000\008\000\000\130\002\000\000\000\000\000\128\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\004\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\235U\160\000\128\002\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\005@\128\000\000\008\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\006\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\192\000\000\000\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\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\128\000\000\000\000\000\000\000 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\002\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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\001P \000\000\002\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\001\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\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\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\001\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\000\000\000@\000\000\000\128\000\000\000\000\000\000\000 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\002\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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 \002\001@BD\016\002\024\128\000\t\000\008v\130@\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\002\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\002\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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 \002\001@BD\016\003\024\128\000\t\000\008v\130@\000\140\000\000z\213x\000 \000\128\000\008 \000\000\000\000\008\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\128\008\005\001\t\016@\008b\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002\000\000\000\000\000\000\007\173W\128\002\000\008\000\000\130\002\000\000\000\000\000\128\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\004\000\000\008\000\128P\016\145\004\000\134 \000\002@\002\029\160\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\128\008\005\001\t\016@\012b\000\000$\000!\218\t\000\0020\000\001\235U\224\000\128\002\000\000 \128\128\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\001\000\000\002\000 \020\004$A\000!\136\000\000\144\000\135h$\000\008\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\000\000\000\000\000\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\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \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@\013 \128@1\n#\187B\000g\1680\000\140Q\002\130\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\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \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\127\245\252\000 \000\128\000\008\000 \000 \000\000\008\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\001\235U\224\000\128\002\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\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000@\000\008\000\000\000\000\000\000\t \000H5\n\003{@\000! \016\004\000A\000\130\000\000\000\000\002H\000\016\012\226\128\206\208\000\024H\004\005@\016A \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$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\000\130\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\007\173W\128\002$\136\001 \208*\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\000\000\t \000H4\n\003;@\000! \016\004\000A\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\146\000\004\003\000\1603\180\000\006\018\001\000\000\004\016\008 \000\000\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@0\n\003;@\000a \016\000\000A\000\130\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \158\181^\000\008\146 \004\131@\1683\180\000\002\018\001\000@\004\016\008 \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\t \000@0\n\003;@\000a \016\000\000A\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\016\000\000@\129\006I(\000\000@\000\004\000\000\133\001\008\000\024\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\030\181^\000\008\146 \004\131@\1683\244\000\002\018\001\000@\004\018\008 \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\002H\000\018\013\002\128\206\208\000\008H\004\001\000\016@ \128\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\004\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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 \000H4\n\003;@\000! \016\004\000A\000\130\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\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\146\000\004\0038\1603\180\000\006\018\001\001P\004\016H \000\000\000\000$\128\001\000\206(\012\237\000\001\132\128@T\001\004\002\008\000\000\004\128\000\0170M\150K\000\000\020\000\129\000\0007@BPw\000\000\000\002\002H\000\016\012\226\128\206\208\000\024H\004\005@\016A \128\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$\128\001 \212(\013\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\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\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\000H\000\001\003\004\025$\176\000\001\000\000\016\000\0034\004$\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\t \000@3\n\003;@\000a \016\017\000A\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$\128\001\000\204(\012\237\000\001\132\128@D\001\004\002\008\000\000\000\000\000\000\000\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\004\000\000\016\000A\128J\000\000\016\000\000\000\000 @\002\000\006\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000@\000\001\000\004\024\004\160\000\001\000\000\000\000\002\004\000 \000`\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\000\000\016\000A\128J\000\000\016\000\000\000\000 @\002\000\006\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000@\000\001\000\004\024\004\160\000\001\000\000\000\000\002\004\000 \000`\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\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$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\000\000\016\000A\128J\000\000\016\000\000\000\000 @\002\000\006\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000@\000\001\000\004\024\004\160\000\001\000\000\000\000\002\004\000 \000`\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\000\000\016\000A\128J\000\000\016\000\000\000\000 @\002\000\006\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000@\000\001\000\004\024\004\160\000\001\000\000\000\000\002\004\000 \000`\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\000\000\016\000A\128J\000\000\016\000\000\000\000 @\002\000\006\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000@\000\001\000\004\024\004\160\000\001\000\000\000\000\002\004\000 \000`\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\000\000\016\000A\128J\000\000\016\000\000\000\000 @\002\000\006\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000@\000\001\000\004\024\004\160\000\001\000\000\000\000\002\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\000\000\002H\000\016\012\226\128\206\208\000\024H\004\005@\016A \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$\128\001\000\206(\012\237\000\001\132\128@T\001\004\018\008\000\000\000\000\t \000@3\138\003;@\000a \016\021\000A\004\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\146\000\004\0038\1603\180\000\006\018\001\001P\004\016H \000\000\000\000$\128\001\000\206(\012\237\000\001\132\128@D\001\004\018\008\000\000\000\000\t \000@3\138\003;@\000a \016\021\000A\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\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000$\128\001\000\206(\012\237\000\001\132\128@T\001\004\018\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\001\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\016\000\000\000\000\000\000\000\000\000\000\000\000\002\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\004`\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\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\008\000\000\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\001\235U\224\000\128\002\000\000 \000\140\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\008\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t \000H5\n\003{@\000! \016\004\000A\000\130\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@\000H\000\000\000\000\000\000\000\000@\000\008\000\000\000\000\000\000\000\000\016\000\018\000\000\000\000\000\000\000\000\016\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\030\181^\000\008\000 \000\002\000\008\192\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\128\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\001\000\000\000\000\000\000\000\000\000\000\001\000\000 \000\000\000\000\000\000$\128\001 \212(\013\237\000\000\132\128@\016\001\004\002\008\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\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\235U\160\000\128\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\004\000\000\000\008\000\000\000\000\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$\128\001 \212(\013\237\000\000\132\128@\016\001\004\002\008\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\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\016\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\004\000\000\128\000\000\000\000\000\000\146\000\004\131P\1607\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\002\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\127\245\252\016#H\160\018\013B\184\238\240\128\025\234\012\001#\212a\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$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\000\000\t \000@0\n\003;@\000a \016\000\000A\000\130z\213x\000\"H\128\018\013\002\160\206\208\000\008H\004\001\000\016@ \128\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\002H\000\016\012\002\128\206\208\000\024H\004\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@0\n\003;@\000a \016\000\000A\000\130\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\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$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000\000\000\146\000\004\003\000\1603\180\000\006\018\001\000\000\004\016\008 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004L\019e\146\192\000\005\000 @\000\013P\016\020\029\192\000\000\000\000\000\000\000\000\000\000\001\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\235U\224\000\137\"\000H4\n\131?@\000! \016\004\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\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 \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004D\019a\018\192\000\005\000 \000\000\013\016\000\020\029\192\000\000\000\000\146\000\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\000\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 \000H4\n\003;@\000! \016\004\000A\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\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\001\017\004\216D\176\000\001@\008\000\000\002D\000\005\003p\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\128\000\017\016M\132K\000\000\020\000\128\000\000$@\000P7\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000H\000\001\017\004\216D\176\000\001@\008\000\000\002D\000\005\003p\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\128\000\017\016M\132K\000\000\020\000\128\000\000$@\000P7\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\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$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000H\000\001\017\004\216D\176\000\001@\008\000\000\002D\000\005\003p\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\128\000\017\016M\132K\000\000\020\000\128\000\000$@\000P7\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000H\000\001\017\004\216D\176\000\001@\008\000\000\002D\000\005\003p\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\128\000\017\016M\132K\000\000\020\000\128\000\000$@\000P7\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000H\000\001\017\004\216D\176\000\001@\008\000\000\002D\000\005\003p\000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\024\001\004\002\008\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\002H\000\016\012\002\128\206\208\000\024H\004\000\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$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\128\000\017\016M\132K\000\000\020\000\128\000\000$@\000P7\000\000\000\000\002H\000\016\012\002\128\206\208\000\024H\004\000\000\016@ \128\000\000H\000\001\017\004\216D\176\000\001@\008\000\000\002D\000\005\003p\000\000\000\000$\128\001\000\192(\012\237\000\001\132\128@\000\001\004\002\008\000\000\004\128\000\017\016M\132K\000\000\020\000\128\000\000$@\000P7z\213x\000\"H\128\018\013\002\160\206\208\000\008H\004\001\000\016@ \128\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\002H\004\018\013\002\128\206\208\000\008H\004\001\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\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\030#H\160\016\012b\184\238\240\128\025\234\012\000#T@\160\128\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$\128\001 \208(\012\237\000\000\132\128@\016\001\004\002\008\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\016\001\004\002\008\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\008\000\000\000\004\000\000\000\000\000\000\004\017\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\001\255\215\240@\141\"\128@1\n\227\187\194\000g\1680\000\141Q\002\130\127\245\252\016#H\160\018\013B\248\238\240\128\025\234\012\001#TP\160\159\253\127\007\136\210(\004\003\024\174;\188 \006z\131\000\008\213\016( \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\223\248x\141\"\128@1\139\227\187\198\000g\1690\000\143Q\198\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\127\004\008\210(\004\003\024\174;\188 \006z\131\000\008\213\016('\255_\193\0024\138\001 \212/\142\239\008\001\158\160\192\0185E\n\t\255\215\240@\141\"\128H5\n\227\187\194\000g\1680\004\141Q\006\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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 \000H4\n\003;@\000! \016\004\000A\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\004\000\210\008\004\003\016\162;\180 \006z\131\000\008\197\016( \000\000\001\0004\130\001\000\196(\142\237\008\001\158\160\192\0021D\n\008\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\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\t \016H4\n\003;@\000! \016\004\000A\000\130\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\146\001\004\131@\1603\180\000\002\018\001\000@\004\016\008 \000\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 \000H4\n\003;@\000! \016\004\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\004\000\210\008\004\003\016\162;\180 \006z\131\000\008\197\016( \000\000\001\0004\130\001\000\196(\142\237\008\001\158\160\192\0021D\n\008\000\000\000\000\000\000\000\000\000\000\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\136\000\000\000\000\000\000\000\000\000\000\000\000\001\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\002 \000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\008\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\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\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\001\235U\224\000\137\"\000H4\n\131?@\000! \016\004\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\004\000\210\008\004\003\016\162;\180 \006z\131\000\008\197\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\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\127\245\252\016#H\160\018\013B\184\238\241\128\025\234\012\001#T@\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\000\000\000\000\000\000\000\000\000\001\255\223\248x\141\"\128@1\139\227\187\198\000g\1690\000\143Q\198\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\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\255\215\240@\141\"\128@1\138\227\187\198\000g\1680\000\141Q\002\130\000\000\000\000\000\000\000\002\001\000\000\000\001\000\000\000\000\001\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\007\255_\193\0024\138\001\000\198+\142\239\024\001\158\160\192\0025D\n\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\019\004\217d\176\001\001@\008\018\000\003t\004\005\007p\000\000\000\000\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\008\004\000\000\000\004\000\000\000\000\004\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\255_\193\0024\138\001 \212+\142\239\024\001\158\160\192\0185D\n\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016#H\160\016\012b\184\238\241\128\025\234\012\000#T@\172\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\001\235U\224\000\137\"\000H4\n\131?@\000! \016\004\000A \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\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\016\000\016\000\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\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\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\030\181^\000\008\000 \000\002\000\008\192\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\128\000\000\000\000\000\000\000\016\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\146\000\004\131P\1607\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\030\181^\000\008\000 \000\002\000\008\192\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\128\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\001\000\000\000\000\000\000\000\000\000\000\001\000\000 \000\000\000\000\000\000$\128\001 \212(\013\237\000\000\132\128@\016\001\004\002\008\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\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\235U\160\000\128\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\004\000\000\000\008\000\000\000\000\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$\128\001 \212(\013\237\000\000\132\128@\016\001\004\002\008\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\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\031\253\127\004\008\210(\004\131P\174;\188`\006z\131\000H\213\016+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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\002\001\000\000\000\001\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\007\255_\193\0024\138\001 \212+\142\239\024\001\158\160\192\0185D\n\008\000\000\000\000\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\000\000F\001\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\003H \016\012B\136\238\208\128\025\234\012\000#\020@\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\004\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\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\016\000\000\001\000\000\000\000\000\000\000\000\000\000@\000\127\247\254\016#H\224\019\013B\248\238\241\1289\234L\003#\212u\172\192\000\000\004\000\210\008\004\003\016\162;\180 \006z\131\000\008\197\016( \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\215\240@\141\"\128@1\139\227\187\194\000g\1680\000\143Q\198\130\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\001\000\000\000\000\031\253\127\004\008\210(\004\003\024\190;\188 \006z\131\000\008\245\028h \000\000\000\000\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\008\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\000\000\031\253\127\004\008\210(\004\131P\190;\188 \006z\131\000H\245\028h \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\215\240@\141\"\128H5\011\227\187\194\000g\1680\004\143Q\198\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\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\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\000\031\253\127\004\008\210(\004\003\024\190;\188 \006z\131\000\008\213\020( \000\000\000\000\000\000\000 \016\004\000\000\000\000\000\000\000\016\000\001\000\001\255\215\240@\141\"\128@1\139\227\187\194\000g\1680\000\141QB\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\016\008\004\001\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\031\253\127\004\008\210(\004\131P\190;\188 \006z\131\000H\213\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\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@\004\004`\000\000\000\128\000\000\000\001\000\000\000\000\000\000\000\001\000\012\004\000\000\000\000\000\128\000\000\004\000\000\016\001\127\245\252\016#H\160\016\012b\184\238\240\128\025\234\012\000#T@\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\004@0\016\000\000\000\000\002\000\000\000\016\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\127\245\252\016#H\224\019\013B\184\238\240\1289\234\012\001#TD\160\223\253\127\004\008\210(\004\003\024\174;\188 \006z\131\000\008\213\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\127\245\252\016#H\224\019\013B\184\238\240\1289\234\012\001#TD\160\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\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\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\000\031\253\127\004\008\210(\004\131P\190;\188 \006z\131\000H\213\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\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\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\004\002\001\000\000\000\001\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\007\255_\193\0024\138\001 \212+\142\239\024\001\158\160\192\0185D\n\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\191_\192\002$\138\001\000\192*\012\239\000\001\132\128@\000\005D\n\008\000\000\000\000\t \016H4\n\003;@\000! \016\004\000A\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\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\001\239\215\240\000\137\"\128@0\n\131;\192\000a \016\000\001Q\002\130\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\000z\213x\000 \000\128\000\008\000 \000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\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\002H\000\018\013B\128\222\208\000\008H\004\001\000\016@ \128\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\016\000\001\024\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\001\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\128\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000z\213x\000 \000\128\000\008\000#\000\000\000\000\000\000\001\000\000\008\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\002H\000\018\013B\128\222\208\000\008H\004\001\000\016@ \128\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\016\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\146\000\004\131P\1607\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\213h\000 \000\128\000\000\000 \000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\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\002H\000\018\013B\128\222\208\000\008H\004\001\000\016@ \128\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\001\000\000\000\000\000\000\000\000\000\000@\000{\245\252\000\"H\160\016\012\002\160\206\240\000\024H\004\000\000T@\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\018\000\000@\193\006I,\000@@\000\004\128\000\197\001\001\001\024\000\000\000\000\000\000\016\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\146\000\004\131P\1607\180\000\002\018\001\000@\004\016\008 \000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\030\181^\000\008\146 \004\131@\1683\244\000\002\018\001\000@\004\018\008 \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\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\001\000\001\000\000\017\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\008\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\008\000\000\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\001\235U\224\000\128\002\000\000 \000\140\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\008\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t \000H5\n\003{@\000! \016\004\000A\000\130\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\002H\000\018\013B\128\222\208\000\008H\004\001\000\016@ \128\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\235U\160\000\128\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\004\000\000\000\008\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t \000H5\n\003{@\000! \016\004\000A\000\130\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\004\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\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\016\000\000\001\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\004\000\004\000@F\000\000\000\008\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\004\000\000\000\000\000\000\002\000\000\000\000\000\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\007\255_\193\0024\138\001\000\198+\142\239\008\001\158\160\192\0025D\n\008\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$\128\001 \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\127\245\252\016#H\160\018\013B\184\238\240\128\025\234\012\001#\212a\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\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\128!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255_\192\002\000\008\000\000\128\002\000\002\000\000\000\128\000\000\012\002\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\016\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\023\255_\193\0024\138\001\000\198+\142\239\008\001\158\160\192\0025D\n\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016#H\160\016\012b\184\238\240\128\025\234\012\000#T@\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\001\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\000\000\000\000\002H\000\018\013\002\128\206\208\000\008H\004\001\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$\128\001 \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\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\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\000\002H\000\018\013\002\128\206\208\000\008H\004\001\000\016@ \128\000\000\000\000\000\016\000\000\000\000\000\000\000\008\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\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\003H \016\012B\136\238\208\128\025\234\012\000#\020@\160\128\000\000\000\000\000\016\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\016\000\000\001\0004\130\001\000\196(\142\237\008\001\158\160\192\0021D\n\008\000\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\003H \016\012B\136\238\208\128\025\234\012\000#\020@\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\128\001 \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\001\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\007\255_\192\002\000\008\000\000\128\002\000\002\000\000\000\128\000\000\004\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\127\245\252\000 \000\128\000\008\000 \000 \000\000\008\000\000\000@\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\255_\192\002\000\008\000\000\128\002\000\002\000\000\000\128\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\004\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\000\002H\000\018\013\002\128\206\208\000\008H\004\001\000\016@ \128\000\000\000\000\000\016\000\000\000\000\000\000\000\008\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\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\030\181^\016\028\004$I\002\016\008\000\000\144\000\133($\000\008\192\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\016\000\000\000\000\000\000\000\002\000 \020\004$A\000\001\000\000\000\144\000\135h$\000\008\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\008\000\128P\016\017\004\000\004\000\000\002@\002\029\160\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\008\005\001\t\016@\000@\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\004\000\000\128\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\008\128\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\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\235U\224\001\192BD\016!\000\128\000\t\000\008R\002@\000\140\000\000z\213x\000p\016\128\004\008@ \000\002@\002\020\128\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\128\008\005\001\t\024@\000@\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\128P\016\145\004\000\004\000\000\002@\002\029\160\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\000\000\000\000\128\000\000\000\000\000\000\008\000\000\000 \002\001@BD\016\000\016\000\000\t\000\008v\130@\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\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\008\000\000\004\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\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\235U\224\001\192B@\016!\000\128\000\t\000\008R\002@\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\030\181^\000\028\004 \001\002\016\008\000\000\144\000\133 $\000\008@\000\000\000\128\008\005\001\t\016@\000@\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\129\000\000\002\000 \020\004$A\000\001\000\000\000\144\000\135h$\000\008\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\002\000 \020\004$A\000\001\000\000\000\144\000\135h$\000\008\192\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\008\000\128P\016\145\004\000\004\000\000\002@\002\029\160\144\000#\000\000\000\002\000 \020\004$A\000\001\000\000\002\144\000\135h$\000\008\224\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\008\000\000\000\000\000\000\000\000\000\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\008\005\001\t\016@\000@\000\000$\000!\218\t\000\0020\000\000\000 \002\001@BD\016\002\016\000\000)\000\008v\130@\000\142\000\000\000\008\000\128P\016\145\004\000\004\000\000\002@\002\029\160\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\128\000\000\128\008\005\001\t\016@\000@\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\030\181^\000\008\000 \000\002\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000z\213x\000 \000\128\000\008\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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 \002\001@BD\016\002\024\000\000\t\000\008v\130@\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\000\000\000\000\000\000\128\008\005\001\t\016@\000@\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\128\000\000\002\000 \020\004$A\000\001\000\000\000\144\000\135h$\000\008\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\0000\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\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\008\000\128P\016\145\004\000D\000\000\002@\002\029\160\144\000#\000\000\000\002\000 \020\004$A\000\001\000\000\000\144\000\135h$\000\008\192\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\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\001@BD\016\000\016\000\000\t\000\008v\130@\000\140\000\000\000\008\000\128\\\016\145\004\000\020\000\000\n@\002\029\160\144\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\000\000\000\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 \020\004$A\000\001\000\000\000\144\000\135h$\000\008\192\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\008\000\129P\016\145\004\000\004\000\000\002@\002\029\160\144\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\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\002\000\000\000\000\000\000\000 \000\000\000\128\008\021\001\t\016@\000@\000\000$\000!\218\t\000\0020\000\000\000\000\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\000\000\000\016\000\000\008\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\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\008\000\128P\016\145\004\000\004\000\000\002@\002\029\160\144\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 \002\001@BD\016\000\024\000\000\t\000\008v\130@\000\140\000\000\000\008\000\128P\144\145\004\000\148\000\000\n@\002\029\160\144\000#\128\000\000\002\000 \020\004$A\000\001\000\000\000\144\000\135h$\000\008\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 \002\001@BD\016\000\016\000\000\t\000\008v\130@\000\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\008\000\128P\016\145\004\000\006\000\000\002@\002\029\160\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\000\000\000\000\000\000\000\000\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\008\000\128P\016\145\004\000\004\000\000\002@\002\029\160\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\008\000\000\000\001\000\000\000\128\000\000\000\000\000\000\008\000\000\000\000\000\000\000\002\000\000\001\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\008\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\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\128\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001@BD\016\000\016\000\000\t\000\008v\130@\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\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000 \000\000\000\128\008\005\001\t\016@\000@\000\000$\000!\218\t\000\0020\000\000\000\000\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\000\000\000\016\000\000\008\000\000\000\000\000\000\000\128\000\000\000\000\000\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\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\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\000\000\000\000\000\000\000\000\000\000\000\000\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 \002\001@BD\016\000\016\000\000\t\000\008v\130@\000\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\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\008\005\001\t\016@\000@\000\000$\000!\218\t\000\0020\000\000\000 \002\001pBD\016\000P\000\000)\000\008v\130@\000\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000z\221x\128p\016\145\004\008D \000\002@\002\029\160\144\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\128\008\005\001\001\016@\000@\000\000$\000!\218\t\000\0020\000\000\000 \002\001rBD\016\000X\000\000)\000\008v\130@\000\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\002\000 \020\004$A\000\001\000\000\000\144\000\135h$\000\008\192\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\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\235u\226\001\192BD\016!\024\128\000\t\000\008v\130@\000\140\000\000\000\008\000\128P\016\145\004\000\004\000\000\002@\002\029\160\144\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 \002\001@BD\016\000\016\000\000\t\000\008v\130@\000\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\008\000\128P\016\145\004\000\132\000\000\002@\002\029\160\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\128\000\000\128\008\005\001\t\016@\000@\000\000$\000!\218\t\000\0020\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\001\235U\225\001\192BD\144!\000\128\000\t\000\008R\130@\000\140\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$\128\001 \2088\012\237\000\000\132\128@\016\001\004\002\008\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\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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 \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\255\127\225\0024\138\001 \244;\142\239\008\001\158\164\192\0185D\n\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016#H\160\018\015B\184\238\240\128\025\234L\001#T@\172\222\253\255\128\008\000 \000\002\000\008\000\000\000\000\000\016\000\000\000\000\000\007\191\127\224\002\000\008\000\000\128\002\000\000\000\000\000\004\000\000\000\000\000\001\239\223\248\000\128\002\000\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\000\000\000\000\000\000\000\000\000\000H\161\128\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\018(`\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\004\138\024\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\001\"\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\255\215\240x\141\"\128@1\138\227\187\194\000g\1680\000\141Q\002\130\127\245\252\016#H\160\016\012b\184\238\240\128\025\234\012\000#T@\160\128\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255_\193\0024\138\001\000\198+\142\239\008\001\158\160\192\0025D\n\204\000\000\000\000\000\000\000\008\004\000\000\000\000\000\000\000\000\004\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\000\000\000\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\245\252\016#H\160\018\013B\184\238\240\128\025\234\012\001#T@\172\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$\128\001\000\206(\012\237\000\001\132\128@T\001\004\002\008\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\031\253\127\007\136\210(\004\003\024\174;\188 \006z\131\000\008\213\016('\255_\193\0024\138\001\000\198+\142\239\008\001\158\160\192\0025D\n\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\127\245\252\016#H\160\016\012b\184\238\240\128\025\234\012\000#T@\172\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255_\193\2264\138\001\000\198+\142\239\008\001\158\160\192\0025D\n\t\255\215\240@\141\"\128@1\138\227\187\194\000g\1680\000\141Q\002\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\001\239\223\248\000\128\002\000\000 \000\128\000\000\000\000!\000\000\000\000\000\000\001\"\134\000\000\000\000\000\004\000\000F\000\000\000\008@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\001\235U\224\000\128\002\000\000 \000\140\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\007\173W\128\002\000\008\000\000\128\0020\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\128\000\000\000\008\128\000\000\000\000\000\000\000\000\000\000\008\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\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\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\136\000\030\181^\000\008\000 \000\002\000\008\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\008\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\007\255_\193\0024\138\001 \212+\142\239\008\001\158\160\192\0185D\026\008\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\001\000\128@\000\000\000\000\000\000\000\000@\000\000\003\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\215\240@\141\"\128H5\n\227\187\194\000g\1680\004\141Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\161\128\000\000\001\000\001\000\000\017\128\000\000\002\016\000\000\000\000\003\016\000\000\000\000\000 \008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\002H\000\018\013\003\128\206\208\000\008H\004\001\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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 \208(\012\237\000\000\132\128@\016\001\004\002\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016#H\160\018\015C\184\238\240\128\025\234L\001#T@\172\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\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\255\127\225\0024\138\001 \244+\142\239\008\001\158\164\192\0185D\n\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016#H\160\016\012b\184\238\240\128\025\234L\000#T@\172\192\000\000\000\000\000\000\000\128@\000\000\000\000\000\000\000\000@\000\000\003\023\255\127\225\0024\138\001\000\198+\142\239\008\001\158\164\192\0025D\n\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\247\254\016#H\160\018\013B\184\238\240\128\025\234L\001#T@\172\223\253\255\132\008\210(\004\003\024\174;\188 \006z\147\000\008\213\016+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\016\008\004\000\000\000\000\000\000\000\000\004\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\255\132\008\210(\004\131P\174;\188 \006z\147\000H\213\016+0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\223\248@\141\"\128H5\n\227\187\194\000g\1690\004\141Q\002\179\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\255\132\008\210(\004\131P\174;\188 \006z\147\000H\213\016+0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\000\016\000\016\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\255\132\008\210(\004\131P\174;\188 \006z\147\000H\213\016+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\016\008\004\000\000\000\000\000\000\000\000\004\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\253\255\132\008\210(\004\131P\174;\188 \006z\147\000H\213\016+0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\138\024\000\000\000\016\000\016\000\001\024\000\000\000!\000\000\000\000\0001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\008\000\016\000\000\000\000\000\000\000\000@\145<\000\192\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\008\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\000\000\001\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\128\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\001\002\000\000\000\000\000\000\000\008\000\000\000\008\000\000\000\000\000\000\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002\000@\000\000\000\000\000\008\000\000@\128\000\000\000\000\000\000\002\000\000\000\002\000\000\000\000\002\000\000\000\001\000\000\000\000\000\000\000\000C\000 \000 \020\000\000\000\000\000\000\128\000\004\008\000\000\000\000\000\000\000 \000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\000\000\000\000\000\000C\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\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\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \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\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\002\000\000\000\000\000\000\000\000\000\000\000\000G\0000\000\000\016\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\008\000\000\000\000\000\000\000\000\000\000\000\001\012\000\192\000\000@\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000C\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\0040\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0040\002\000\000\001\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\016\192\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\002\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\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\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\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\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\002\000\000\000\000\000\000\000\000\000\000\000\000G\0000\000\000\016\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\016\192\012\000\000\004\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\0040\002\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\128\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000C\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\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\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\002\000\000\000\000\000\000\000\000\000\000\000\000C\0000\000\000\016\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\016\192\008\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0040\002\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\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\016\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000 \000\000\000\000\000\000\000\000\000\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\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") let action = - ((16, "\000\136\000\193\000\000\000\000\t\156\000\193\000\000\000\000\000\021\000\000\000\000\000\000\000\199\000\000\000\000\000\000\000\136\000\000\001^,4\000\000\018\212\018\212\000\000\000\000*L\018\212\000\000<\208\018\212\000\000\000\000\018\212\000\000\018\212\000\000\000%\000B\018\212\000\000\018\212\000\000\000\000\000\000*\180\018\212\000\000<\220\018\212\000\000\000\000\018\212\000\000\018\212\000\000\000|\000\244\018\212\000\000\018\212\000\000\018\212\000\000=\012\018\212\000\000\000\000\018\212\000\000\018\212\000\000\000w\000\000\000\000\018\212\000\000\018\212\000\000\000\000\018\212\000\000\018\212\000\000\000\252\001\180\018\212\000\000,4<\208I,\000\000\021@\002&-\176\000EI,\000\000\001\188\018\212\000\000I,\000\000\000w\003z/\226\000\000\000\0009\138\000\000=\212\000\000>`-\228-\228\0206\0206=\212\0206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\022-\228\000\000\000\000:\022\000\000:\022\000\000-\228\000\000\000\000\000\000\023\186\000w\000\000\0206\000\000+F-\228\027\232-\228\000\000\000\000\000\000\000\000\000\000\000\000\030\198-\228\031\192-\228 \030-\228!\024-\228\000\000-\228\000\000-\228!v-\228\"p-\228\"\206-\228#\200-\228$&/\226\002\"-\228\000\000\000\000\000\000\000\000\000\000-\228% -\228%~-\228&x-\228\000\000\000\000-\228\000\000\000\000\002x\000\000\000\000\000\000\000\000\001\182\018\212\000\000\000\252\018\212\000\000>\226\018\212\000\000\000\000\018\212\000\000\018\212\000\000\002\180\003\002\018\212\000\000\018\212\000\000\007\230\018\212\000\000?\022\018\212\000\000\000\000\018\212\000\000\018\212\000\000\0030\003\226\018\212\000\000\018\212\000\000\018\212\000\000?\"\018\212\000\000\000\000\018\212\000\000\018\212\000\000\000w\018\212\000\000\018\212\000\000\018\212\000\000\018\212\000\000\003\218\004\006\018\212\000\000= I,\003\238\018\212\000\000I\160IX\000\000\000\031\004\178\000w\004\028\004\230-\176\000\000\000\000\000)JZ\000\000\000\000\000\000\000\000\005\218\005X\000E\005\146-\176\001B-\176\000\000\000\000\004\234\000\000\005\006\005\210-\176\005\022\000\000\000\000\000\000\000)\000\000\0054\006.\000\000\0062\000\000\005\220\000\150I,\005p\018\212\000\000>\226I,\005t\018\212\000\000\000\000\000w\006Z\000\000\000\000\000\000\001v\0206\000\000-\228\005\130\000\000\000\000\000w\000\000\000\000\000\000\000\000\000\000\005\136\000\000\000\000\005\144\000\000\005\148=\212\000\000\000\000\000\000\000\000\000\000\000\000@\020-\228\000\000@\020\000\000@\020=\212\000\000\000\000@\176\000w\000\000\0206\005\156\000\000-\228\005\208\000\000\000\000\000w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000J\166-\228\000\000-\228\000\000\000\000\005\214\000\000\000\000:\192\006\142-\228\006\\\000\000\000\000=\212\000\000\000\000\000\000\000\000\000\000\000\000J\234=\212Kv=\212K\166=\212K\234=\212\000\000=\212\000\000=\212LD=\212L\156=\212L\246=\212M:=\212Mj/\226\0062=\212\000\000=\212M\174=\212N\008=\212N`\006\016\000\000\006\"\000\000\000\132-\228\000\000\000\132\000\000\000\000\002\016,4\000\000\002\016\000\000\000\000\006\"-\228\000\000\006&\000\000\0206\0064\000\000\000\000\007\000\000\000\0206\0068\000\000\000\000\006:\000\000\000\000\003z\000\000\007(\000\000?\022I,\006H\018\212\000\000\000\000\006\226\000\000\006f\018\212\000\000\000\000\000\t,4\000\000,4\000\000\006X\000\000\000\t\000\000\016\150\030\198\018\170\000\000\008d\018\170\000\000\018\170\018\170\000\000\000\000\018\170\000\000\018\170\000\000\006\156\006\200\018\170\000\000\018\170\000\000\t\002\018\170\000\000\018\212\018\170\000\000\000\000\018\170\000\000\018\170\000\000\006\160\006\210\018\170\000\000\018\170\000\000\018\170\000\000\018\226\018\170\000\000\000\000\018\170\000\000\018\170\000\000\000w\018\170\000\000\018\170\000\000\018\170\000\000\018\170\000\000\006\170\006\218\018\170\000\000,4\006\142\000\000\018\196I,\006\144\018\170\000\000\000\000\000=\000\000\002\028\000=\000\000\000\000\000\000\007|\000\000\001\020I,\006\154\018\170\000\000\018\212I,\006\158\018\170\000\000\000\000\007>\018\170\000\000\n\002\018\170\000\0000\174\018\170\000\000\000\000\018\170\000\000\018\170\000\000\006\212\007\002\018\170\000\000\018\170\000\000\n0\018\170\000\0000\198\018\170\000\000\000\000\018\170\000\000\018\170\000\000\006\220\007\012\018\170\000\000\018\170\000\000\018\170\000\0000\202\018\170\000\000\000\000\018\170\000\000\018\170\000\000\000w\018\170\000\000\018\170\000\000\018\170\000\000\018\170\000\000\006\230\007\018\018\170\000\000\018\226I,\006\194\018\170\000\000\000\000\002bI,\006\196\018\170\000\0000\198I,\006\206\018\170\000\000\000\000\000\000\000\000\000\000\000\000\007\150-\228\006\220\021\246\007\156-\228\006\224\007\158-\176\000\000\000\000-\176\000w\000\000\001\192-\228'\152\000\000@\246-\228\006\236\000\000\0206\006\236\000\000\006\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\160-\228\000\000A\160\000\000A\160B,\0206\006\246B,\000\000\000\000J\\\000w\000\000\0206\006\252\000\000-\228\007\022\000\000\000\000\000w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000-\228\001,-\228\007\026\000\000\000\000(B\026(&\196\007\230-\228\000\000\007\184\000\000\000\000\000w\000\000\000\000;\\\007n'\152\000\000\007p'\152\000\000\001L\000\000\000\000\023FB,\0312B,*\190B,90B,\000\000B,\000\000B,N\160B,N\194B,O\006B,OFB,O\192B,P\000B,P@B,P\146\000\000\007D\000\000\007T(\236\000\000)\150\007^)\150,\"\007`)\150\000\000\000\000\000\000\000\000\000\000\007V\000\000\008<\000\000\000w\000\000\001\192\008>\000\000\004F\008\020\000w\007j\008,-\176\007p\002*\000\000-\228\008R\000\000\005\252\006\174\0084-\176\007z\008`\000\000\002.-\228\008d\000\000\008l\000\000\005\220\000w\002\190-\228\008p\000\000\008t\000\000\000w\003t-\228\008v\000\000\008x\000\000\001\018\007\196\006\232\000\000B\184CD\0206\007\160\000\000\007\172CD\000\000\000\000\000\000\000\000\000\000\000\000C\208-\228\000\000C\208\000\000C\208CD\000\000\000\000\026\134\000w\000\000\0206\007\174\000\000-\228\007\172\000\000\000\000\000w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000,\204-\228\000\000-\228\000\000\007\186\000\000\000\132\000\000\000\000\000\000\000\000\000\0001\176CD1\224CD2\234CD3\026CD\000\000CD\000\000CD4$CD4TCD5^CD5\142CD6\152/\226\007\242CD\000\000CD6\200CD7\210CD8\002\0206\007\206\000\000\000\000-\228\000\000\008\180\000\000\001`\008\138-\228\008T\000\000\008\142-\228\008X\000\000\000\031\000\000\006\232\006\232\001`\000\000\001`\000\000\016\150\006\232\006\232\000\000\000\000\000\000\000\000\000\000\000\000\008\158-\228\007\228\021\246\022\198\000w\008\202\000\000\008\172/\226\008\214/\226\008\218-\228\008\002\021\246\021\246\000w\002^\001T\000\000\000\000\000\000\002^\000\000\003,\000w\000\000\000\000\008\004\000\000\000\000\000\000\008\238\000\000\008\242\000\000\000\000\t(\008\214-\228\008\"\t\002\000\000\008\232\0206\008,\021\246\000\000\000\000\008Z\000\000\000\015\000\000\005\134\000\000\000\000\001`\000\000\008\176\000\000\012p\004\020\000\000\012p\000\000\000\000\025\028\000\000\004\020\000\000\000\000\t\172\000\000\012p\000\000\008\248\0206\008>\t \000\000\000%\000\000\008\242\000w\008J\t\012-\176\008T\002\146\000\000-\228\t>\000\000\t>-\176\008\144\tv\000\000\004\028-\228\tz\000\000\t|\000\000\005\220\000w\004\156-\228\t~\000\000\t\128\000\000\000\000\000\000\t\172\000\000\000\000\004\020\000\000\006\232\000\000\000%\000\000\000\000\003^\022\198\000\000\003^\000\000\000\000\008\168\000\000\003:\000\003\021\246\000\000\004$\000O\004$\000\000\000\015\000\000\006\232\000\000\006\232\000\000\000\000\000\000\008\164\000\000\000\000\008\182\000\000\004\216\005\134\001V\004$\000\000\000\000\000\000\008J\000\000\006\232\000\000\004\216\000\000\000\000\003\022\000\015\016\150\000\000\000\015\000\000\008J\016\150\000\000\000\000\008J\000\000\000\000\008\182\000\000\000\000\008\188\000\000\004\222\006\232\000\000\004\222\000\000\000\000\t8\000\000\004\020\000\000\006\232\000\000\000\000\000\000\017\2368\254\000\000\t\160\000\000\017\236\t\164\000\000\t\168\000\000-\176\000w\003\140\000\000-\228\t\172\000\000\005\166\t~\000w\008\214\t\150-\176\008\220\003\180\000\000-\228\t\188\000\000\003\244\000\000-\228\t\196\000\000\005\220\000w\004,\000\000-\228\t\198\000\000\005*\017\236\000\000\025\028\004\192\000\000-\228\t\214\000\000\000\000\000\000\003\250\000\000\t\186\0206\t\006\t\236\000\000\007\n\000\000\t\190\000w\t\"\t\234-\176\t0\005\156\000\000-\228\n\020\000\000\005\160\000\000-\228\n\022\000\000\005\220\000w\005\172\000\000-\228\n\024\000\000\005*\000\000\000\000\t>\000\000\003\250\008\230\t\184\000\000\000\000\000\000\t\186\000\000\0020\000\031\000\000\016\150\n\012\000\000\000\000-\228\tn\006\232\000\000\tH\000\000\001\018\000\000-\176\000\000\000\000\002\190\016\150\000\000\016\150\000\000\t6\000\000\002\190\000\000-\228\003\138-\228\000\000-\228\000\000\tN\000\000\003\138\000\000-\228\003\138\tP\000\000\021\246\004 \021\246\000\000\021\246\000\000\tV\000\000\004 \000\000-\228\003\138\tX\000\000-\176\004\226-\176\000\000-\176\000\000\t^\000\000\004\226\000\000-\228\003\138\t`\000\000\000\000\025\028\000\000\000\000\t\206.\194\000\000\000\000\000\000\000\000\000\000\t\170\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\202.\194\000\000\004\132\000x\000\000\t\172\000\193\000\000\000\000\000\000\004\130\000x\000\000\000\000\000\000\000\000\n\n\000\000\000\000\000\000\000\000\027\232\029J\000\000D\142\000\000.\194\000\000\0016.\194\000\000\000?\000K\000K\000\000\002L\000K\000\000\t\136\000\000\000\000\000\000\000\000\n\024\000\000\029\196\000\000\030\198.\194\000\000\000W.\194\000\000\n\028\000\000.\194\n \000\000F\022/P\n$\000\000\n(\000\000F\194;\216.\194\t\166.\194\n0\000\000\n2\000\000\n6\000\000,4\000\000\002\134,4\000\000\t\180\018\170\000\000\000\207.\194\000\000\005l.\194\000\000\003L\n\182\000\000\n\184\000\000.\194.\194\t\216\000\000\000\000\000\000\000\000\000\000\000\000\nt\000\000G\028.\194\nv\000\000\nx\000\000.\194\nz\000\000.\194\n$\000\193\000\000\000\000\005\230.\194\000\000\003L\000\000\n\128\000\000.\194\n\130\000\000D\252/P.\194\n\000.\194\n\134\000\000\n\136\000\000E\168\000\000\000\000\006\026.\194\000\000\002\194\000L\000K\n\008\000\000\000\000\000N\000N\000\000\000\000\000\000\003\186\000N\000\000\n\n\000\000\000\000\000\000\000\000\000\000\000\000.\194\000\000\006f.\194\000\000\001`\004@\000\193\n\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\156\000\000\n\162\000\000.\194\n\164\000\000G\148.\194\n\172\000\000\n\182\000\000\021\140\n^G\238\018\196\000\000.\194\n\190\000\000\n\192\000\000\n\144\021\140.\194\n\200\000\000.\194\n\210\000\000\n\212\000\000.\194\nR.\194\n\224\000\000\n\228\000\000\000\193\nV\000\000\000\000\025\028\000\000\000\000\002z\011F\000\000\000\000\002\174\000\000\000\000\000\000-\228\000\000\000\000\000\000\002\194\000\000\004\248\000\000\000\000\000\000\004$-\176-\176-\176\000\000\002P\002P\002P\002P\000\000\000\000\000\000\000\000\000\000\000\000\001`\016\150\011<\013\210\000O\000\000\000\000\001&\000\000\t\172\000\000'\152\nn\000\000\001`\016\150\n\130\0154\000\000\001`\013\210\000\000\000\000\000\000-\176\006v\000\000\000\000\000\000\n\214\0014\011PI\160\000\000\004\136J\138\000\000\000\000\000\000\t~\011@\000w\000\000\004\136\000\000\004\176I\160\000\000\000\000\n\152\011P\006\232\n\150\000\000\001&\000\000\t\172\000\000;\002\004<\000\000\000\000\011<\000\000\000\000\002z\000\000\005\016\000\000\000\000\000\000-\228\000\000\002\194\000\000\005N\000\000\000\000\000\000\005\134\000\000\011\014\002\144\011\014\000\000\006\232\011\014\000\000\002\144\000\000\006\232\000\000\006\232\000\000\006\232\000\000\t:\000\000\000\000\000\000\000\000\000\000\006\232\000\000\002\144\000\000\006\232\000\000C\170\000\000\000\000\nj\n\200\000\193\005p\011d\003\004\000\000\003\004\011\140\000\000\011\142\000\000\011\144\000\000\000\000\004p\003\004\007r\003\004\000\000\000\000\004\174\n\152\000\000\n\216\000\193\005p\n\160\000\000\nj\011\164\000\000\n|\003P\011\182\000\215\011\182\000\000\000\000\002\030\000\193\000\000\001\152\000\000\000\000\002\178\000\000\n\178\000\000\000\000\000\000\n\238\000\193\005p\n\184\000\000\000\000\nj\n|\003P\002\030\001\152\002\178\n\186\000\000\n|\003P\002\030\001\152\002\178\n\192\000\000\000\193\000\000\011\194\001V\n\252\000\193\011X\000\000\011\000\000\193\011\\\000\000"), (16, "\011\249\011\249\011\249\011\249\011\249\011\249\011\249\011\249\011\249\011\249\011\249\021&\011\249\011\249\011\249\011\249\011\249\011\249\011\249\011\249\011\249\011\249\008}\014\218\011e\022\210\011\249\015\002\000\n\011e\011e\000&\015\014\011\249\001\"\016\138\022\006\011\249\011\249\001~\011\249\011e\007\189\011\249\022\002\007\150\016\022\011\249\011\249\011\249\000*\016\142\008\210\027\226\004>\014\218\007\189\011\157\011\249\001\"\015\006\011\249\011\249\006}\015\014\000\n\011e\011\249\011\249\006\173\011\249\001\230\011\249\0007\000;\012\226\001\242\011\249\001\"\011\249\011\249\011\249\011\249\011\249\015\138\017.\021&\011\249\011\249\011\249\000\n\011\249\011\249\011\249\000\n\011\249\011\249\011\249\011\249\000\006\000\"\021\146\011\249\011\249\016&\003\237\000\n\007\189\021\150\000\n\007\158\023\202\023\222\011\249\011\249\011\249\018Z\022N\011\249\011\249\011\249\011\249\018^\011\249\011\157\011\249\018b\000\150\011\249\006\173\004~\011\249\011\249\012\165\012\165\003:\016&\003B\012\165\003R\004^\017^\011\249\006\026\005\253\011\249\003Z\006\222\004\222\011\249\011\249\011\249\011\249\021\162\011\249\023\226\011\249\000\154\007\189\019\214\011\249\011\249\011\249\000\n\011\249\006}\011\249\011\249\001\"\011\249\007\189\011\249\011\249\006%\003b\011\249\011\249\006\133\006\133\006\133\006\133\006\133\006\133\006\133\006\133\006\133\006\133\006\133\000.\006\133\006\133\006\133\006\133\006\133\006\133\006\133\006\133\006\133\006\133\000\n\016\022\011\197\028\130\006\133\014\222\014\238\014\254\000\226\003r\014\218\006\133\008\246\022\234\022\242\006\133\006\133\023\198\006\133\015\014\028\146\006\133\003.\0036\000\170\006\133\000\174\006\133\003z\003\190\006U\003\198\001\"\003\214\014\218\003\222\006\133\003\230\003\242\011n\003\250\006\029\006\029\015\014\001\230\006\133\006\133\000\230\001\238\001\242\006\133\006\133\024.\004\213\004\002\006\133\011\205\006\133\006\133\006\133\006\133\006\133\021\130\000\n\001\"\006\133\006\133\006\133\004\n\006\133\006\133\006\133\001R\006\133\006\133\006\133\006\133\008\153\011}\000\n\006\133\006\133\000N\007\182\020R\020z\020\138\020\178\020\194\020\234\013V\016&\006\133\006\133\011v\000\n\006\133\006\133\006\133\006\133\020\002\006\133\004\026\006\133\nR\005\237\006\133\nV\006\013\006\133\006\133\025r\011\170\nZ\015\146\016&\021\246\011\130\n^\025v\012\165\012\165\004\138\006\133\011\213\012\165\003i\006\133\006\133\006\133\006\133\012\210\006\133\011}\006\133\004\213\027\254\008\153\006\133\006\133\006\133\004u\028\002\001V\006\133\006\133\006\246\006\133\005\030\006\133\006\133\001v\004e\006\133\006\133\006\157\006\157\006\157\006\157\006\157\006\157\006\157\006\157\006\157\006\157\006\157\n\158\006\157\006\157\006\157\006\157\006\157\006\157\006\157\006\157\006\157\006\157\006\157\004u\n*\006\157\006\157\016\022\016\170\011m\012\158\006\157\006\157\006\157\006\157\001\138\014\218\006\157\006\157\023\198\006\157\006\157\025\022\006\157\001\"\015\014\0202\006\157\006\149\006\157\011}\006\157\006\157\006\149\006\149\006\157\006\157\006\157\006\157\006\157\006\157\006\157\006\157\002\206\012\214\027\242\013\002\006\157\006\157\006\157\006\157\004\161\006\157\006M\023\218\000\n\008\218\006\157\025\022\006\157\027j\006\157\006\157\006\157\006\157\012\158\019\234\006\157\006\157\006\157\006\149\006\157\006\157\006\157\016\138\006\157\006\157\006\157\006\157\008\145\022\018\027n\027\218\006\157\022\234\022\242\006\157\011\141\027r\015\142\016\142\020:\016\022\006\021\006\157\006\157\016\174\016&\006\157\006\157\006\157\006\157\006\246\006\157\006\157\006\157\003\026\028\n\006\157\022\186\001\230\006\157\006\157\006\157\012\226\001\242\011u\003f\013\"\006\157\006\222\011}\006\157\022\250\005\229\006\157\008\189\008\189\020Z\006\157\006\157\008\189\006\157\018\150\006\157\003j\006\157\012\158\017:\008\145\006\157\025'\025+\001\162\005}\000\n\025/\006\157\008\161\006\157\027z\006\157\006\157\018\198\006=\006\157\006\157\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\021\018\001\014\025^\001\022\nZ\001\030\0012\001:\001>\n^\025b\003\170\021\022\006\141\027\130\nb\006M\018\218\006\141\006\141\0196\021\026\001F\021\030\015\170\020b\001\166\nr\003\241\013^\006\141\021\"\013b\016\022\006U\020\146\001N\011}\014\202\021.\008\161\013>\014\218\0212\005\229\018\246\026\135\001\178\006\222\0216\025\150\015\014\006u\018\154\026\139\006\141\015\"\013j\025\194\025\206\012\158\015&\017j\005\229\026\142\021:\001\218\005\229\001\222\004\177\001b\016\030\015.\018\202\012\182\0242\013~\001\230\0152\003\174\013\130\011\138\001\242\012\165\013\134\013\138\n\134\013\142\0065\004\021\021>\027\146\0156\021B\001\230\023\242\004\014\004\018\012\226\001\242\020\154\011}\011\133\n\226\013\146\018\222\021F\015:\015>\013\150\015B\021J\000\n\021N\015V\021R\021V\004\141\021Z\019\026\015b\013\158\027\146\016&\021^\016\210\000\n\021b\004&\000\n\006U\025\226\020\202\018\250\015\130\011\221\n\241\004B\015\134\015\194\004\177\n\138\021f\013\162\012\158\015\198\021j\021n\004J\013\166\004\177\004\177\012\165\012\165\004N\004\177\015\206\012\165\013\170\017\174\006\165\006\165\018.\006E\002\"\006\165\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\021\142\001\014\025^\001\022\nZ\001\030\0012\001:\001>\n^\025b\004\021\016\242\027\162\021\174\nb\004\021\004\021\011\221\n\241\020\210\026\"\001F\019\n\027\154\005\245\001\166\nr\004\021\013^\019\030\012\158\013b\003.\0036\000\170\001N\000\174\014\202\003z\003\190\026N\003\198\004z\003\214\003]\003\222\001\178\003\230\003\242\014\218\003\250\019r\004\021\019\134\027\154\015\"\013j\025\194\015\014\019\162\015&\017\178\004\130\006]\004\002\001\218\006e\001\222\004\193\001b\016\030\015.\018\170\004\154\011\181\013~\001\230\0152\004\n\013\130\011\138\001\242\006-\013\134\013\138\n\134\013\142\004\162\025O\025S\016\"\0156\001\230\025W\004\166\004\174\012\226\001\242\004v\005\013\026\167\026\171\n\226\013\146\006m\026\175\015:\015>\013\150\015B\004\198\000\n\004\026\015V\nR\004\241\004\141\nV\005\013\015b\013\158\025r\001\"\nZ\004\202\027b\004\210\000\n\n^\025v\016&\026\199\026\203\015\130\022\222\011\189\026\207\015\134\015\194\019v\n\138\019\138\013\162\004\230\015\198\004\250\005\014\019\166\013\166\004\017\004\193\005.\005R\000\n\000\n\015\206\005^\013\170\005f\006\181\006\181\011\165\005\186\002\"\006\181\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\012\182\001\014\025^\001\022\nZ\001\030\0012\001:\001>\n^\025b\005\013\005\t\0039\005\198\nb\006\018\0039\006\"\023b\001\230\006*\001F\011\173\012\226\001\242\001\166\nr\004\237\013^\005\013\005\t\013b\t\"\t*\000\170\001N\000\174\014\202\tn\t\178\006\170\t\186\006\206\t\202\023\186\t\210\001\178\t\218\t\230\014\218\t\238\006\214\007\014\007\026\000\n\015\n\013j\019R\015\014\004\161\015&\007&\0072\007>\t\246\001\218\007J\001\222\004\221\001b\015*\015.\007^\019V\007n\013~\001\230\0152\t\254\013\130\011\138\001\242\024\"\013\134\013\138\n\134\013\142\007~\004\013\007\134\012\173\0156\007\171\001\230\007\246\007\250\008:\012\226\001\242\005\t\008>\008\158\n\226\013\146\008\162\008\178\015:\015>\013\150\015B\008\194\000\n\n\014\015V\008\238\008\254\004\141\t\018\005\t\015b\013\158\004\013\tZ\003~\t^\003\134\t\158\003\150\000\n\t\162\016&\n\002\n\006\015\130\003\158\n\026\n2\015\134\015\194\004\221\n\138\nF\013\162\nf\015\198\nn\nv\n~\013\166\004\221\004\221\n\130\n\182\n\194\004\221\015\206\n\202\013\170\011\014\008\197\008\197\011.\003\166\002\"\008\197\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\011:\001\014\011~\001\022\nZ\001\030\0012\001:\001>\n^\007\202\004\013\007\210\011\150\007\226\nb\004\013\004\013\011\162\011\190\003\182\007\234\001F\011\202\012R\012Z\001\166\nr\004\013\013^\012j\012v\013b\012\146\012\154\012\174\001N\007\197\014\202\012\186\012\194\016\022\012\198\012\206\004\013\012\222\012\238\001\178\012\246\007\242\014\218\007\197\012\250\004\013\013\n\027\154\015\n\013j\013\018\015\014\013*\015&\0132\013F\013N\013Z\001\218\013r\001\222\004\213\001b\015*\015.\013z\013\206\013\218\013~\001\230\0152\014\"\013\130\011\138\001\242\008\002\013\134\013\138\n\134\013\142\014\154\008\014\014\194\008\022\0156\008&\014\214\014\226\014\234\014\242\014\250\015F\008.\015N\007\197\n\226\013\146\015^\015f\015:\015>\013\150\015B\015n\000\n\015v\015V\nR\015~\015\186\nV\019R\015b\013\158\025r\015\202\nZ\015\210\015\222\015\226\0086\n^\025v\016&\015\234\015\238\015\130\019V\015\246\015\254\015\134\015\194\016\014\n\138\0162\013\162\016v\015\198\016~\006\246\016\130\013\166\016\146\004\213\016\154\007\197\016\158\001\230\015\206\016\166\013\170\012\226\001\242\016\138\008F\016\182\002\"\007\197\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\016\142\001\014\016\190\001\022\nZ\001\030\0012\001:\001>\n^\016\198\011\149\011\149\000\n\016\202\nb\016\218\016\226\016\250\017\002\001\230\017R\001F\017\154\012\226\001\242\001\166\nr\017\166\013^\018\026\018&\013b\018F\0266\018r\001N\018~\014\202\018\134\t.\018\162\t6\018\174\tF\018\182\018\186\001\178\018\194\018\210\014\218\tN\006M\018\230\019\002\000\n\015\n\013j\001\"\015\014\004\161\015&\019&\tr\019>\tz\001\218\t\138\001\222\019F\001b\015*\015.\019J\t\146\019Z\013~\001\230\0152\tV\013\130\011\138\001\242\019b\013\134\013\138\n\134\013\142\019f\000\n\019n\012\173\0156\019~\019\146\019\174\019\194\019\210\019\226\019\250\011\149\020\n\t\154\n\226\013\146\020\022\020G\015:\015>\013\150\015B\011\149\000\n\tf\015V\004\129\011\149\011\149\020o\020\135\015b\013\158\020\167\020\191\004\017\0039\020\223\020\247\021\014\0039\027V\016&\021*\021\154\015\130\021\199\t\170\022\030\015\134\015\194\000\022\n\138\0223\013\162\022[\015\198\022g\011\149\022w\013\166\022\127\022\146\011\149\011\149\022\155\022\163\015\206\022\171\013\170\022\198\012\173\012\173\022\238\022\246\002\"\012\173\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\023\006\001\014\025^\001\022\nZ\001\030\0012\001:\001>\n^\025b\023#\0233\023;\023G\nb\023R\023w\023\131\023\150\023\159\023\167\001F\027\178\023\210\023\254\001\166\nr\024:\013^\000\n\024[\013b\027\198\024c\024o\001N\004\129\014\202\024\127\028\030\027\202\004\129\004\129\024\135\024\146\004\017\001\178\024\167\024\175\024\182\004\017\004\017\024\195\004\129\004\129\015\"\013j\024\207\024\215\024\226\015&\026\222\004\017\027b\024\235\001\218\024\243\001\222\024\255\001b\016\030\015.\025\026\025\162\025\202\013~\001\230\0152\004\129\013\130\011\138\001\242\025\218\013\134\013\138\n\134\013\142\004\017\026\014\026\022\026:\0156\026^\026b\026j\026\147\027Z\027f\027v\027~\027\134\027\175\n\226\013\146\027\182\027\195\015:\015>\013\150\015B\027\206\000\n\027\222\015V\028\019\028\"\004\141\028/\028S\015b\013\158\028o\028~\028\134\028\143\028\150\028\159\000\000\000\000\000\000\000\000\000\000\000\000\015\130\000\000\000\000\000\000\015\134\015\194\000\000\n\138\000\000\013\162\000\000\015\198\000\000\000\000\000\000\013\166\000\000\000\000\000\000\000\000\000\000\000\000\015\206\000\000\013\170\000\000\008\169\008\169\000\000\000\000\002\"\008\169\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\000\000\001\014\000\000\001\022\nZ\001\030\0012\001:\001>\n^\000\000\000\000\000\000\000\000\000\000\nb\000\000\000\000\000\000\000\000\000\000\000\000\001F\000\000\000\000\000\000\001\166\nr\000\000\013^\000\000\000\000\013b\000\000\000\000\000\000\001N\000\000\014\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\"\013j\000\000\000\000\000\000\015&\016:\000\000\000\000\000\000\001\218\000\000\001\222\000\000\001b\016\030\015.\000\000\000\000\000\000\013~\001\230\0152\000\000\013\130\011\138\001\242\000\000\013\134\013\138\n\134\013\142\000\000\000\000\000\000\012\137\0156\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\226\013\146\000\000\000\000\015:\015>\013\150\015B\000\000\000\n\000\000\015V\000\000\000\000\000\000\000\000\000\000\015b\013\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\000\000\000\000\000\000\015\134\015\194\000\000\n\138\000\000\013\162\000\000\015\198\000\000\000\000\000\000\013\166\000\000\000\000\000\000\000\000\000\000\000\000\015\206\000\000\013\170\000\000\012\137\012\137\000\000\000\000\002\"\012\137\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\000\000\001\014\000\000\001\022\nZ\001\030\0012\001:\001>\n^\000\000\000\000\000\000\000\000\000\000\nb\000\000\000\000\000\000\000\000\000\000\000\000\001F\000\000\000\000\000\000\001\166\nr\000\000\013^\000\000\000\000\013b\000\000\000\000\000\000\001N\000\000\014\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\"\013j\000\000\000\000\000\000\015&\025\166\000\000\000\000\000\000\001\218\000\000\001\222\000\000\001b\016\030\015.\000\000\000\000\000\000\013~\001\230\0152\000\000\013\130\011\138\001\242\000\000\013\134\013\138\n\134\013\142\000\000\000\000\000\000\000\000\0156\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\226\013\146\000\000\000\000\015:\015>\013\150\015B\000\000\000\n\000\000\015V\000\000\000\000\000\000\000\000\000\000\015b\013\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\000\000\000\000\000\000\015\134\015\194\000\000\n\138\000\000\013\162\000\000\015\198\000\000\000\000\000\000\013\166\000\000\000\000\000\000\000\000\000\000\000\000\015\206\000\000\013\170\000\000\012\213\012\213\000\000\000\000\002\"\012\213\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\000\000\001\014\000\000\001\022\nZ\001\030\0012\001:\001>\n^\000\000\000\000\000\000\000\000\000\000\nb\000\000\000\000\000\000\000\000\000\000\000\000\001F\000\000\000\000\000\000\001\166\nr\000\000\013^\000\000\000\000\013b\000\000\000\000\000\000\001N\000\000\014\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\"\013j\000\000\000\000\000\000\015&\025\166\000\000\000\000\000\000\001\218\000\000\001\222\000\000\001b\016\030\015.\000\000\000\000\000\000\013~\001\230\0152\000\000\013\130\011\138\001\242\000\000\013\134\013\138\n\134\013\142\000\000\000\000\000\000\000\000\0156\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\226\013\146\000\000\000\000\015:\015>\013\150\015B\000\000\000\n\000\000\015V\000\000\000\000\000\000\000\000\000\000\015b\013\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\000\000\000\000\000\000\015\134\015\194\000\000\n\138\000\000\013\162\000\000\015\198\000\000\000\000\000\000\013\166\000\000\000\000\000\000\000\000\000\000\000\000\015\206\000\000\013\170\000\000\012\209\012\209\000\000\000\000\002\"\012\209\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\000\000\001\014\000\000\001\022\nZ\001\030\0012\001:\001>\n^\000\000\000\000\000\000\000\000\000\000\nb\000\000\000\000\000\000\000\000\000\000\000\000\001F\000\000\000\000\000\000\001\166\nr\000\000\013^\000\000\000\000\013b\000\000\000\000\000\000\001N\000\000\014\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\"\013j\000\000\000\000\000\000\015&\017\230\000\000\000\000\000\000\001\218\000\000\001\222\000\000\001b\016\030\015.\000\000\000\000\000\000\013~\001\230\0152\000\000\013\130\011\138\001\242\000\000\013\134\013\138\n\134\013\142\000\000\000\000\000\000\000\000\0156\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\226\013\146\000\000\000\000\015:\015>\013\150\015B\000\000\000\n\000\000\015V\000\000\000\000\000\000\000\000\000\000\015b\013\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\000\000\000\000\000\000\015\134\015\194\000\000\n\138\000\000\013\162\000\000\015\198\000\000\000\000\000\000\013\166\000\000\000\000\000\000\000\000\000\000\000\000\015\206\000\000\013\170\000\000\000R\000V\000f\000\170\002\"\000\174\nR\000\178\000\246\nV\000\254\000\000\001\014\000\000\001\022\nZ\001\030\0012\001:\001>\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\001F\000\000\000\000\000\000\001\166\000\000\000\000\013^\000\000\000\000\013b\000\000\000\000\000\000\001N\000\000\018f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018v\013j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\001b\000\000\000\000\000\000\000\000\000\000\013~\001\230\000\000\000\000\013\130\001\238\001\242\000\000\013\134\013\138\n\134\013\142\000\000\000\000\000\000\000\000\000\000\000\000\007\214\005\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\226\013\146\000\000\000\000\005\221\005\221\013\150\000\000\005\221\000\n\000\000\005\221\008\026\005\221\000\000\005\221\000\000\005\221\013\158\008Z\005\221\000\000\005\221\005\221\000\000\005\221\005\221\000\000\005\221\nu\nu\005\221\005\221\nu\005\221\005\221\005\221\000\000\n\138\000\000\013\162\005\221\018z\005\221\005\221\000\000\013\166\000\000\005\221\005\221\005\221\005\221\005\221\018\130\005\221\013\170\005\221\005\221\000Z\005\221\000\000\002\"\005\221\005\221\000\000\005\221\008\186\000\000\nu\005\221\005\221\000Z\000\000\005\221\t\n\005\221\000\000\000\000\005\221\000Z\005\221\n\018\005\221\005\221\000\000\005\221\000Z\000\000\000\000\000\000\005\221\000\000\000\000\nu\005\221\005\221\000\000\000\000\005\221\000\000\000\000\000\000\000\000\005\221\005\221\005\221\005\221\005\221\005\221\000\000\005\221\005\221\000\000\005\221\000\000\005\221\005\221\005\221\005\221\005\221\005\221\005\221\000\000\005\221\005\221\005\221\005\221\000\000\005\221\005\221\005\221\005\221\005\221\005\221\005\221\005\221\005\221\005\221\005\221\005\221\005\221\000\000\000\000\000\000\005\221\000\000\000\000\005\221\000\000\000\000\000\000\005\221\005\221\nu\000\000\005\221\000\000\000\000\000\000\005\221\005\221\005\221\005\221\000\000\005\221\005\221\005\221\005\221\005\221\000\000\000\000\000\000\000\000\005\221\005\221\000\000\000\000\000\000\005\221\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\000\000\001\030\0012\001:\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\001F\000\000\000\000\000\000\001\166\000\000\000\000\001\170\000\000\000\000\001\174\000\000\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\001\178\000\000\000\000\001\182\000\000\000\000\000\000\000\000\000\000\001\206\001\202\000\000\001\210\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\001b\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\001\234\001\238\001\242\002F\001\246\001\250\000\000\001\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\002\002\000\000\000\000\000\000\000\000\002\006\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\014\004M\004M\004M\004M\000\000\004M\000\000\004M\004M\002\018\004M\000\000\004M\000\000\004M\000\000\004M\004M\004M\004M\000\000\002\022\000\000\000\000\000\000\000\000\000\000\002\026\000\000\001r\004a\000\000\000\000\004M\000\000\000\000\002\030\000\000\000R\007\190\007\198\000\170\002\"\000\174\000\000\008\n\008N\004M\008V\021\018\008f\000\000\008n\000\000\008v\008\130\001:\008\138\000\000\000\000\000\000\021\022\000\000\000\000\000\000\000\000\000\000\004M\000\000\000\000\021\026\008\146\021\030\004M\000\000\000\000\000\000\000\000\000\000\000\000\021\"\004M\000\000\000\000\000\000\024\142\000\000\000\000\021.\000\000\000\000\000\000\0212\000\000\000\000\000\000\000\000\000\000\0216\000\000\000\000\000\000\000\000\000\000\000\000\008\170\000\000\000\000\000\000\000\000\022\174\000\000\000\000\000\000\021:\023\170\000\000\nb\000\000\008\182\000\000\000\000\000\000\004M\000\000\000\000\000\000\000\000\001\166\nr\000\000\013^\000\000\000\000\013b\000\000\000\000\000\000\000\000\021>\014\202\000\000\021B\000\000\000\000\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\000\000\000\000\021F\000\000\000\000\015R\013j\021J\000\n\021N\015&\021R\021V\004M\021Z\001\218\000\000\001\222\000\000\000\000\021^\015.\000\000\021b\000\000\013~\001\230\0152\000\000\013\130\011\138\001\242\000\000\013\134\013\138\000\000\013\142\000\000\021f\000\000\000\000\0156\021j\021n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\226\013\146\000\000\000\000\015:\015>\013\150\015B\000\000\000\n\000\000\015V\000\000\000\000\000\000\000\000\nb\015b\013\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\166\nr\000\000\013^\015\130\000\000\013b\000\000\015\134\015\194\000\000\000\000\014\202\013\162\000\000\015\198\000\000\000\000\000\000\013\166\000\000\001\178\000\000\000\000\000\000\000\000\015\206\000\000\013\170\000\000\013f\013j\000\000\000\000\002\"\015&\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\015.\000\000\000\000\011\226\013~\001\230\0152\000\000\013\130\011\138\001\242\000\000\013\134\013\138\000\000\013\142\000\000\000\000\000\000\000\000\0156\000\000\000\000\000\000\000\000\011\234\000\000\000\000\000\000\000\000\000\000\n\226\013\146\000\000\000\000\015:\015>\013\150\015B\011\242\000\n\000\000\015V\000\000\000\000\0122\012:\000\000\015b\013\158\000\000\000\000\000\000\000\000\000\000\012\018\000\000\000\000\011\250\000\000\012\n\013\221\015\130\000\000\013\221\000\000\015\134\015\194\000\000\000\000\000\000\013\162\000\000\015\198\000\000\000\000\000\000\013\166\000\000\000\000\000\000\012\026\000\000\013\221\015\206\000\000\013\170\013\221\000\000\000\000\002:\013\221\002\"\000\000\000\000\000\000\000\000\013\221\000\000\000\000\013\221\013\221\000\000\013\221\013\221\000\000\000\000\002B\000\000\013\221\005&\000\000\000\000\013\221\000\000\000\000\013\221\000\000\013\221\013\221\012\"\000\000\000\000\000\000\000\000\000\000\000\000\012\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\013\221\005U\013\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\013\221\000\000\000\000\012B\012*\000\000\000\000\0052\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\013\221\013\221\000\000\013\221\013\221\0056\000\000\013\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005>\000\000\000\000\000\000\000\000\013\221\000\000\000\000\013\221\013\221\013\221\013\221\000\000\000\000\000\000\000\000\013\221\013\221\013\221\000\000\013\221\013\221\013\221\001=\001=\001=\001=\000\000\001=\000\000\001=\001=\000\000\001=\000\000\001=\000\000\001=\000\000\001=\001=\001=\001=\000\000\000\000\004\237\000\000\021\002\004\237\000\000\000\000\000\000\000\000\000\000\000\000\001=\001=\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001=\000\000\004\237\000\000\000\000\001=\004\237\000\000\001=\004\237\004\237\000\000\001=\000\000\000\000\021\006\004\237\000\000\001=\004\237\004\237\000\000\004\237\004\237\000\000\001=\004\237\000\000\004\237\004\237\001=\000\000\004\237\000\000\000\000\004\237\000\000\004\237\004\237\001=\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\004\237\001=\004\237\000\000\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\237\000\000\000\000\000\000\001=\000\000\000\000\004\237\000\000\001=\000\n\001=\000\000\000\000\001=\000\000\021\n\000\000\000\000\000\000\000\000\000\000\001=\000\000\000\000\001=\004\237\004\237\000\000\004\237\005\t\004\237\000\000\004\237\000\000\000\000\000\000\000\000\000\000\000\000\001=\004\237\000\000\004\241\001=\001=\004\241\000\000\000\000\004\237\000\000\004\237\000\000\000\000\000\000\021\202\000\000\004\237\004\237\004\237\000\000\004\237\004\237\004\237\000\000\004\241\000\000\000\000\000\000\004\241\000\000\000\000\004\241\004\241\000\000\000\000\000\000\000\000\000\000\004\241\000\000\000\000\004\241\004\241\000\000\004\241\004\241\000\000\000\000\004\241\0141\004\241\004\241\0141\000\000\004\241\000\000\000\000\004\241\000\000\004\241\004\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0141\000\000\000\000\000\000\0141\000\000\000\000\013\190\0141\004\241\000\000\004\241\000\000\000\000\0141\000\000\000\000\0141\0141\000\000\0141\0141\004\241\000\000\013\198\000\000\0141\013\210\000\000\004\241\0141\000\000\000\000\0141\000\000\0141\0141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\241\004\241\000\000\004\241\005\013\004\241\000\000\004\241\0141\000\000\0141\000\000\000\000\000\000\000\000\004\241\000\000\000\000\000\000\000\000\004\241\0141\000\000\004\241\000\000\004\241\000\000\000\000\013\222\000\000\000\000\004\241\004\241\004\241\000\000\004\241\004\241\004\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0141\0141\000\000\0141\000\000\013\226\000\000\0141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\013\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0141\000\000\0141\000\000\000\000\000\000\000\000\000\000\0141\0141\0141\000\000\0141\0141\0141\nq\nq\nq\nq\000\000\nq\000\000\nq\nq\000\000\nq\000\000\nq\000\000\nq\000\000\nq\nq\nq\nq\000\000\000\000\001\137\000\000\000\000\001\137\000\000\000\000\000\000\000\000\000\000\000\000\nq\nq\nq\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nq\000\000\001\137\000\000\000\000\nq\001\137\000\000\021\218\000\000\001\137\000\000\021\226\000\000\000\000\000\000\001\137\000\000\nq\001\137\001\137\000\000\001\137\001\137\000\000\nq\000\000\000\000\001\137\000\000\nq\000\000\001\137\000\000\000\000\001\137\000\000\001\137\001\137\nq\000\000\000\000\000\000\000\000\000\000\000\000\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\137\nq\001\137\000\000\nq\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\137\000\000\000\000\000\000\nq\000\000\000\000\000\000\000\000\nq\000\000\nq\000\000\000\000\nq\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nq\000\000\000\000\nq\001\137\002V\000\000\001\137\001\137\000\000\000\000\001\137\000\000\000\000\000\000\000\000\000\000\000\000\nq\000\000\000\000\000\000\0226\nq\001\137\000\000\000\000\001\137\001\137\001\137\001\137\000\000\000\000\000\000\000\000\002\254\001\137\001\137\000\000\001\137\001\137\001\137\na\na\na\na\000\000\na\000\000\na\na\000\000\na\000\000\na\000\000\na\000\000\na\na\na\na\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\na\na\na\000\000\000\000\000\000\000\000\000\000\000\000\000\000\na\000\000\000\000\000\000\000\000\na\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\na\ne\ne\ne\ne\000\000\ne\na\ne\ne\000\000\ne\na\ne\000\000\ne\000\000\ne\ne\ne\ne\na\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ne\ne\ne\000\000\000\000\000\000\000\000\000\000\na\000\000\ne\na\000\000\000\000\000\000\ne\000\000\000\000\022:\000\000\000\000\000\000\000\000\000\000\na\000\000\000\000\000\000\ne\na\000\000\na\000\000\000\000\na\ne\000\000\000\000\000\000\000\000\ne\000\000\na\000\000\000\000\na\000\000\000\000\000\000\ne\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\na\000\000\000\000\000\000\021\222\na\000\000\000\000\000\000\ne\000\000\000\000\ne\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ne\000\000\000\000\000\000\000\000\ne\000\000\ne\000\000\000\000\ne\000\000\000R\007\190\007\198\000\170\000\000\000\174\ne\008\n\008N\ne\008V\000\000\008f\000\000\008n\000\000\008v\008\130\001:\008\138\000\000\000\000\002v\000\000\ne\002\198\000\000\000\000\000\000\ne\000\000\000\000\022B\008\146\022^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022j\000\000\002~\000\000\000\000\008\154\002\t\000\000\000\000\000\000\002\t\000\000\000\000\000\000\000\000\000\000\002\134\000\000\022\130\002\t\002\t\000\000\002\230\002\238\000\000\008\170\000\000\000\000\002\t\000\000\022\174\000\000\002\166\000\000\000\181\002\142\000\000\002\158\002\t\008\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\234\000\000\002\174\022\206\002\t\000\000\023&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\242\002\t\000\000\000\000\000\000\023>\000\181\000\181\000\000\000\000\023J\000\000\008y\000\000\000\000\023z\012\018\000\000\000\000\011\250\000\000\012\n\000\000\023\134\000\000\000\000\024f\002\182\000\000\000\000\002\t\002\t\000\000\000\000\002\150\000}\000\000\000\000\000}\000\000\000\000\024r\012\026\000\000\000\000\000\000\024\138\002\t\000\000\000\000\002\t\002\t\002\t\002\t\000\000\000\000\000\000\002~\000\000\002\t\002\t\000}\002\246\002\190\002\t\000}\000\000\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000}\000}\000\000\000}\000}\000\000\000\000\012\"\000e\000}\000\000\000e\000\000\002\166\012\002\000\000\002\142\000\000\002\158\000}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\000\000\000\000e\000\000\000\000\000\000\000e\000\000\000\000\000\000\000e\002\174\000\000\000}\000\181\012*\002\134\000\000\000\000\000e\000e\000\000\000e\000e\000}\000\000\000\000\000\000\000e\000\000\000\000\000\000\000e\000\000\000\000\002\142\000\000\002\158\000e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\000\000\000}\000}\000\000\000\000\002\150\000e\000\000\000e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000}\000e\000\000\000}\000}\000}\000}\000\000\000\000\000\000\000\000\000\000\000}\000}\000\000\000}\002\190\000}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\000\000\000\000\000e\000e\000\000\000\000\002\150\000]\000\000\000\000\000]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\000\000\000\000\000e\000e\000e\000e\000\000\000\000\000\000\000]\000\000\000e\000e\000]\000e\000e\000e\000]\000\000\000\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\000\000a\000\000\000]\000\000\000\000\002\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\000a\000\000\000\000\000\000\000a\000\000\000\000\000\000\000a\000]\000\000\000]\000\000\000\000\000a\000\000\000\000\000a\000a\000\000\000a\000a\000]\000\000\000\000\000\000\000a\000\000\000\000\000\000\000a\000\000\000\000\002\142\000\000\000a\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\002\150\000a\000\000\000a\000\000\000\000\000\000\000\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]\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\000\000\000a\000a\000\000\000\000\002\150\000q\000\000\000\000\000q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000a\000a\000\000\000\000\000\000\002~\000\000\000a\000a\000q\000a\000a\000a\000q\000\000\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000q\000q\000\000\000q\000q\000\000\000\000\000\000\000i\000q\000\000\000i\000\000\000q\000\000\000\000\002\142\000\000\002\158\000q\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\000i\000\000\000\000\000\000\000i\002\174\000\000\000q\000\000\000\000\002\134\000\000\000\000\000i\000i\000\000\000i\000i\000q\000\000\000\000\000\000\000i\000\000\000\000\000\000\000i\000\000\000\000\002\142\000\000\002\158\000i\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\000q\000q\000\000\000\000\002\150\000i\000\000\000i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000q\000i\000\000\000q\000q\000q\000q\000\000\000\000\000\000\000\000\000\000\000q\000q\000\000\000q\000q\000q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000i\000\000\000\000\000i\000i\000\000\000\000\002\150\000m\000\000\000\000\000m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000i\000\000\000\000\000i\000i\000i\000i\000\000\000\000\000\000\002~\000\000\000i\000i\000m\000i\000i\000i\000m\000\000\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000m\000m\000\000\000m\000m\000\000\000\000\000\000\000u\000m\000\000\000u\000\000\000m\000\000\000\000\002\142\000\000\002\158\000m\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\000u\000\000\000\000\000\000\000u\002\174\000\000\000m\000\000\000\000\002\134\000\000\000\000\000u\000u\000\000\000u\000u\000m\000\000\000\000\000\000\000u\000\000\000\000\000\000\002\166\000\000\000\000\002\142\000\000\002\158\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000m\000\000\000\000\000m\000m\000\000\000\000\002\150\002\174\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000m\000u\000\000\000m\000m\000m\000m\000\000\000\000\000\000\000\000\000\000\000m\000m\000\000\000m\000m\000m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\000\000\000u\000u\000\000\000\000\002\150\002v\000\000\000\000\000\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000u\000\000\000\000\000u\000u\000u\000u\000\000\000\000\000\000\002~\000\000\000u\000u\000\133\000u\000u\000u\000\133\000\000\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000\133\000\133\000\000\000\133\002\238\000\000\000\000\000\000\002v\000\133\000\000\000y\000\000\002\166\000\000\000\000\002\142\000\000\002\158\000\133\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\000y\000\000\000\000\000\000\000y\002\174\000\000\000\133\000\000\000\000\002\134\000\000\000\000\000y\000y\000\000\000y\000y\000\133\000\000\000\000\000\000\000y\000\000\000\000\000\000\002\166\000\000\000\000\002\142\000\000\002\158\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\000\000\000\133\000\133\000\000\000\000\002\150\002\174\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\133\000y\000\000\000\133\000\133\000\133\000\133\000\000\000\000\000\000\000\000\000\000\000\133\000\133\000\000\002\246\002\190\000\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\000\000\000y\000y\000\000\000\000\002\150\002v\000\000\000\000\000\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000y\000\000\000\000\000y\000y\000y\000y\000\000\000\000\000\000\002~\000\000\000y\000y\000\129\000y\002\190\000y\000\129\000\000\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000\129\000\129\000\000\000\129\002\238\000\000\011\146\000\000\000\000\000\129\000\000\000\000\000\000\002\166\004E\000\000\002\142\004E\002\158\000\129\004E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\000\000\000\000\002\174\000\000\000\129\000\000\000\000\004E\004E\000\000\000\000\004E\004E\000\000\000\000\000\129\000\000\004E\000\000\004E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004E\004E\000\000\000\000\004E\004E\004E\000\000\004E\004E\000\000\004E\000\000\000\000\002\182\000\000\000\000\000\129\000\129\000\000\000\000\002\150\000\000\000\000\000\000\000\000\000\000\004E\004E\000\000\000\000\000\000\000\000\004E\000\129\000\000\004E\000\129\000\129\000\129\000\129\000\000\000\000\000\000\000\000\004E\000\129\000\129\000\000\000\129\002\190\000\129\000\000\004E\000\000\004E\001\166\004E\000\000\n\166\000\000\000\000\n\170\000\000\000\000\000\000\000\000\004E\000\000\000\000\000\000\000\000\000\000\004E\000\000\000\000\000\000\001\178\000\000\004E\000\000\000\000\004E\000\000\000\000\000\000\n\174\011\006\004E\000\000\011n\011\134\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\206\001\230\000\000\000\000\n\210\011\138\001\242\000\000\n\214\n\218\000\000\n\222\000\000\000\000\000\000\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\226\n\230\000\000\000\000\000\000\000\000\n\234\000\000\001\166\000\n\000\000\n\166\000\000\000\000\n\170\000\000\000\000\000\000\n\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\013\000\000\011\142\001\178\011\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\174\011\006\n\246\000\000\011n\011\134\000\000\000\000\n\250\000\000\001\218\000\000\001\222\000\000\012\138\000\000\000\000\n\254\000\000\000\000\n\206\001\230\000\000\002\"\n\210\011\138\001\242\000\000\n\214\n\218\000\000\n\222\000\000\000\000\000\000\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\226\n\230\000\000\000\000\000\000\000\000\n\234\000\000\001\166\000\n\000\000\n\166\000\000\000\000\n\170\000\000\000\000\000\000\n\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\013\000\000\011\142\001\178\011\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\174\011\006\n\246\000\000\011n\011\134\000\000\000\000\n\250\000\000\001\218\000\000\001\222\000\000\011\178\000\000\000\000\n\254\000\000\000\000\n\206\001\230\000\000\002\"\n\210\011\138\001\242\000\000\n\214\n\218\000\000\n\222\000\000\000\000\000\000\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\226\n\230\000\000\000\000\000\000\000\000\n\234\000\000\001\166\000\n\000\000\n\166\000\000\000\000\n\170\000\000\000\000\000\000\n\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\013\000\000\011\142\001\178\011\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\174\011\006\n\246\000\000\011n\011\134\000\000\000\000\n\250\000\000\001\218\000\000\001\222\000\000\005m\000\000\000\000\n\254\000\000\000\000\n\206\001\230\000\000\002\"\n\210\011\138\001\242\000\000\n\214\n\218\003)\n\222\000j\003)\000r\000\000\000\130\003)\000\000\003)\000\000\000\000\000\000\000\138\003)\003)\000\000\n\226\n\230\000\000\000\000\000\000\000\000\n\234\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\242\000\000\000\000\000\000\000\000\000\000\000\146\003)\006\013\000\000\011\142\003)\011\170\000\000\000\000\000\000\000\000\003%\000\000\000\182\003%\000\190\n\246\000\206\003%\000\000\003%\003)\n\250\000\000\000\214\003%\003%\000\000\001\189\000\000\000\000\n\254\000\157\003)\000\162\000\000\000\000\002\"\000\000\000\000\000\000\003)\000\000\000\000\000\000\003)\003)\000\000\000\000\000\000\000\000\000\000\000\222\003%\000\157\003)\000\000\003%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000\000\011\242\000\000\000\000\000\000\000\000\003%\000\157\000\157\003)\000\000\000\000\000\000\000\000\003)\000\000\000\000\000\157\003%\000\238\011\250\000\000\012\n\000\000\000\000\000\000\003%\000\000\000\000\000\000\003%\003%\000\000\001\137\000\000\000\000\001\137\000\000\000\000\000\000\003%\000\000\000\000\000\157\000\000\003)\000\000\000\000\003)\003)\000\000\003%\003)\000\000\000\000\001\137\000\000\003)\003)\001\137\000\000\003%\003)\001\137\000\000\000\000\003%\000\000\000\000\001\137\000\000\000\000\000\000\000\000\000\000\001\137\001\137\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\000\001\137\000\000\000\000\001\137\012\002\001\137\001\137\000\000\000\000\000\000\000\000\000\000\003%\000\000\000\000\003%\003%\000\157\000\000\003%\000\000\000\000\000\000\000\000\003%\003%\001\137\000\000\001\137\003%\000\000\000\000\000\157\000\157\000\000\000\000\000\000\000\000\000\000\001\137\000\000\000\000\000\000\000\000\000\000\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\000\000\001\030\0012\001:\001>\001\137\002N\000\000\001\137\001\137\000\000\000\000\001\137\001\166\000\000\000\000\n\166\000\000\001F\n\170\000\000\000\000\000\000\000\000\000\000\001\137\000\000\000\000\001\137\001\137\000\000\001\137\001N\000\000\001\178\000\000\003\n\001\137\001\137\000\000\001\137\001\137\001\137\n\174\011\006\000\000\000\000\011n\011\134\000\000\000\000\000\000\001^\001\218\000\000\001\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\206\001\230\000\000\001b\n\210\011\138\001\242\000\000\n\214\n\218\000\000\n\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\161\000\000\000\000\001\161\000\000\000\000\000\000\n\226\n\230\000\000\000\000\000\000\000\000\n\234\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\001\161\000\000\000\000\n\242\001\161\000\000\000\000\000\000\001\161\000\000\000\000\006\013\000\000\000\000\001\161\011\170\000\000\001\161\001\161\000\000\001\161\001\161\000\000\000\000\000\000\n\246\001\161\000\000\000\000\000\000\001\161\n\250\000\000\001\161\000\000\001\161\001\161\001\201\000\000\000\000\n\254\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\001\161\000\000\001\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\161\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\000\000\001\014\025^\001\022\nZ\001\030\0012\001:\001>\n^\025b\000\000\000\000\000\000\001\161\014\014\000\000\001\161\000\000\000\000\000\000\001\161\001F\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001N\001\161\000\000\001\161\000\000\000\000\000\000\000\000\000\000\014\022\001\161\001\161\000\000\001\161\001\161\001\161\001\166\000\000\000\000\001\170\001^\000\000\001\174\000\000\000\000\000\000\001j\000\000\000\000\000\000\000\000\014\206\000\000\000\000\001b\000\000\000\000\001\178\004R\004V\001\182\000\000\000\000\000\000\000\000\000\000\001\198\001\202\000\000\001\210\n\134\n\162\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\011\154\001\234\001\238\001\242\000\000\001\246\001\250\000\n\001\254\000\000\000\000\000\000\004\141\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\004Z\000\000\000\000\000\000\002\006\000\000\021\018\000\n\000\000\006\005\n\138\000\000\000\000\000\000\000\000\000\000\002\014\000\000\021\022\006\005\000\000\003U\000\000\000\000\006\005\023N\002\018\021\026\000\000\021\030\n\201\n\201\000\000\000\000\000\000\000\000\000\000\021\"\002\022\000\000\000\000\000\000\021&\000\000\002\026\021.\000\000\008\137\000\000\0212\000\000\000\000\000\000\002\030\000\000\0216\000\000\000\000\000\000\002\"\000\000\000\000\000\000\000\000\000\000\000\000\024\222\022\254\000\000\n\201\000\000\021:\000\000\000\000\000\000\000\000\000\000\021\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\022\000\000\000\000\000\000\000\000\n\201\000\000\021>\000\000\021\026\021B\021\030\000\000\000\000\000\000\000\000\n\157\000\000\000\000\021\"\000\000\000\000\000\000\021F\021&\000\000\000\000\021.\021J\000\n\021N\0212\021R\021V\000\000\021Z\000\000\0216\000\000\000\000\000\000\021^\000\000\000\000\021b\000\000\000\000\000\000\023\142\000\000\000\000\n\157\000\000\021:\000\000\000\000\000\000\000\000\000\000\021f\000\000\000\000\000\000\021j\021n\n\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\157\000\000\021>\000\000\000\000\021B\000\000\000\000\000\000\000\000\000\000\001\166\000\000\000\000\001\170\000\000\000\000\001\174\021F\000\000\000\000\000\000\000\000\021J\000\n\021N\008\137\021R\021V\000\000\021Z\000\000\001\178\000\000\000\000\001\182\021^\000\000\000\000\021b\000\000\001\198\001\202\000\000\001\210\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\001\222\021f\000\000\000\000\000\000\021j\021n\n\157\001\226\001\230\000\000\000\000\001\234\001\238\001\242\000\000\001\246\001\250\000\000\001\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\t:\005\221\000\000\002\002\000\000\000\000\000\000\000\000\002\006\000\000\000\000\000\n\t~\005\221\t\190\005\221\000\000\000\000\000\000\000\000\002\014\000\000\005\221\000\000\005\221\005\221\000\000\005\221\000\000\000\000\002\018\008\137\005\221\000\000\005\221\000\000\005\221\005\221\005\221\000\000\005\221\000\000\002\022\000\000\005\221\000\000\005\221\000\000\002\026\005\221\005\221\005\221\005\221\008\137\005\221\000\000\005\221\002\030\005\221\000\000\000\000\005\221\005\221\002\"\005\221\000\000\005\221\000Z\000\000\000\000\000\000\005\221\000\000\005\221\n>\005\221\000\000\000\000\005\221\000Z\005\221\000Z\000\000\005\221\000\000\005\221\000\000\000\000\000\000\000\000\000\000\005\221\000\000\000\000\005\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\221\000\000\005\221\005\221\005\221\005\221\000\000\000\000\000\000\005\221\005\221\005\221\000\000\005\221\005\221\000\000\005\221\000\000\005\221\000\000\000\000\005\221\005\221\005\221\005\221\005\221\005\221\005\221\005\221\000\000\005\221\000\000\000\000\000\000\005\221\000\000\005\221\005\221\014B\005\221\005\221\014\146\000\000\000\000\005\221\005\221\000\000\000\000\000\000\000\000\000\000\000\000\005\221\000\000\005\221\000\000\005\221\005\221\005\221\005\221\014J\000\000\001%\000\000\002\025\001%\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\014R\000\000\000\000\002\025\002\025\000\000\014\162\014\170\000\000\000\000\014J\000\000\002\025\000\000\001%\000\000\014r\000\000\001%\014Z\000\000\014j\002\025\000\000\014R\000\000\000\000\001%\001%\000\000\001%\001%\000\000\000\000\000\000\000\000\001%\000\000\000\000\000\000\014r\000\000\014z\014Z\002\025\014j\001%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014z\000\000\001%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\000\000\014\130\000\000\000\000\002\025\000\000\000\000\000\000\014b\000\000\000\000\000\000\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\025\014\130\002\025\000\000\001%\000\000\000\000\000\000\014b\002\025\002\025\000\000\014\178\014\138\002\025\000\000\000\000\001\013\000\000\000\000\001\013\000\000\000\000\000\000\001%\000\000\001%\000\000\000\000\000\000\000\000\000\000\000\000\001%\001%\000\000\001%\014\138\001%\001\013\000\000\001\005\000\000\001\013\001\005\000\000\000\000\001\013\000\000\000\000\000\000\000\000\000\000\014R\000\000\000\000\001\013\001\013\000\000\001\013\001\013\000\000\000\000\001\005\000\000\001\013\000\000\001\005\000\000\001\013\000\000\001\005\014Z\000\000\014j\001\013\000\000\001\005\000\000\000\000\001\005\001\005\000\000\001\005\001\005\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\001\005\000\000\001\013\014Z\001\013\001\005\001\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\005\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\005\000\000\001\013\000\000\000\000\001\013\000\000\000\000\000\000\014b\000\000\000\000\000\000\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\013\001\005\001\013\000\000\001\005\000\000\000\000\000\000\014b\001\013\001\013\000\000\001\013\001\013\001\013\000\000\000\000\001\t\000\000\000\000\001\t\000\000\000\000\000\000\001\005\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\000\001\005\001\005\000\000\001\005\001\005\001\005\001\t\000\000\001\025\000\000\001\t\001\025\000\000\000\000\001\t\000\000\000\000\000\000\000\000\000\000\001\t\000\000\000\000\001\t\001\t\000\000\001\t\001\t\000\000\000\000\014J\000\000\001\t\000\000\001\025\000\000\001\t\000\000\001\025\014Z\000\000\001\t\001\t\000\000\014R\000\000\000\000\001\025\001\025\000\000\001\025\001\025\000\000\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\025\000\000\001\t\014Z\001\t\014j\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014z\000\000\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025\000\000\001\t\000\000\000\000\001\t\000\000\000\000\000\000\014b\000\000\000\000\000\000\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\001\025\001\t\000\000\001\025\000\000\000\000\000\000\014b\001\t\001\t\000\000\001\t\001\t\001\t\000\000\000\000\001\017\000\000\000\000\001\017\000\000\000\000\000\000\001\025\000\000\001\025\000\000\000\000\000\000\000\000\000\000\000\000\001\025\001\025\000\000\001\025\001\025\001\025\014J\000\000\001\021\000\000\001\017\001\021\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\014R\000\000\000\000\001\017\001\017\000\000\001\017\001\017\000\000\000\000\014J\000\000\001\017\000\000\001\021\000\000\001\017\000\000\001\021\014Z\000\000\014j\001\017\000\000\014R\000\000\000\000\001\021\001\021\000\000\001\021\001\021\000\000\000\000\000\000\000\000\001\021\000\000\000\000\000\000\001\021\000\000\001\017\014Z\001\017\014j\001\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014z\000\000\001\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\001\017\000\000\000\000\001\017\000\000\000\000\000\000\014b\000\000\000\000\000\000\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\017\001\021\001\017\000\000\001\021\000\000\000\000\000\000\014b\001\017\001\017\000\000\001\017\001\017\001\017\000\000\000\000\001\029\000\000\000\000\001\029\000\000\000\000\000\000\001\021\000\000\001\021\000\000\000\000\000\000\000\000\000\000\000\000\001\021\001\021\000\000\001\021\001\021\001\021\014J\000\000\014B\000\000\001\029\001-\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\014R\000\000\000\000\001\029\001\029\000\000\001\029\001\029\000\000\000\000\014J\000\000\001\029\000\000\001-\000\000\014r\000\000\001-\014Z\000\000\014j\001\029\000\000\014R\000\000\000\000\001-\001-\000\000\001-\014\170\000\000\000\000\000\000\000\000\001-\000\000\000\000\000\000\014r\000\000\014z\014Z\001\029\014j\001-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014z\000\000\001-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001-\000\000\014\130\000\000\000\000\001\029\000\000\000\000\000\000\014b\000\000\000\000\000\000\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\014\130\001\029\000\000\001-\000\000\000\000\000\000\014b\001\029\001\029\000\000\001\029\001\029\001\029\000\000\000\000\014B\000\000\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\001-\001-\000\000\014\178\014\138\001-\014J\000\000\014B\000\000\001!\001)\000\000\000\000\001!\000\000\000\000\000\000\000\000\000\000\014R\000\000\000\000\001!\001!\000\000\001!\001!\000\000\000\000\014J\000\000\001!\000\000\001)\000\000\014r\000\000\001)\014Z\000\000\014j\001!\000\000\014R\000\000\000\000\001)\001)\000\000\001)\014\170\000\000\000\000\000\000\000\000\001)\000\000\000\000\000\000\014r\000\000\014z\014Z\001!\014j\001)\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\014z\000\000\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001)\000\000\014\130\000\000\000\000\001!\000\000\000\000\000\000\014b\000\000\000\000\000\000\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\130\001!\000\000\001)\000\000\000\000\000\000\014b\001!\001!\000\000\001!\014\138\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001)\001\166\001)\000\000\001\170\000\000\000\000\001\174\000\000\001)\001)\000\149\001)\014\138\001)\000\000\018j\000\000\000\000\000\000\000\000\000\000\001\178\000\000\000\000\001\182\000\000\000\000\000\000\000\000\000\000\001\198\001\202\000\149\001\210\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\149\000\000\000\000\000\000\001\226\001\230\000\149\000\149\001\234\001\238\001\242\000\000\001\246\001\250\000\000\001\254\000\149\000\000\000\000\011\250\000\000\000\149\000\000\000\000\001\166\000\000\000\000\001\170\000\000\000\000\001\174\000\000\002\002\000\000\000\000\000\000\000\000\002\006\000\000\000\000\000\n\000\000\000\149\000\000\000\000\001\178\000\000\000\000\001\182\002\014\000\000\000\000\000\000\000\000\001\198\0076\000\000\001\210\000\000\002\018\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\002\022\000\000\000\000\001\226\001\230\000\000\002\026\001\234\001\238\001\242\000\149\001\246\001\250\000\000\001\254\002\030\000\000\012\002\000\000\000\000\000\000\002\"\000\000\001\166\000\000\000\000\001\170\000\000\000\000\001\174\000\149\002\002\000\000\000\000\000\000\000\000\002\006\000\000\000\000\000\n\000\000\000\000\000\000\000\000\001\178\000\149\000\149\001\182\002\014\000\000\000\000\000\000\000\000\001\198\002\n\000\000\001\210\000\000\002\018\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\002\022\000\000\000\000\001\226\001\230\000\000\002\026\001\234\001\238\001\242\000\000\001\246\001\250\000\000\001\254\002\030\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\006\030\002\002\000\000\000\000\000\000\000\000\002\006\000\000\004=\000\n\nR\004=\000\000\nV\004=\000\000\000\000\025r\002\014\nZ\000\000\000\000\000\000\000\000\n^\025v\000\000\000\000\002\018\004=\000\000\000\000\004=\000\000\000\000\000\000\000\000\000\000\004=\004=\002\022\004=\000\000\000\000\000\000\000\000\002\026\000\000\004=\000\000\004=\000\000\000\000\000\000\000\000\002\030\016\138\000\000\004=\004=\000\000\002\"\004=\004=\004=\000\000\004=\004=\000\000\004=\000\000\004\237\016\142\000\000\004\237\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\004=\001\230\004\237\004=\000\000\012\226\001\242\000\000\000\000\004\237\004\237\000\000\004=\000\000\000\000\000\000\004\237\000\000\000\000\000\000\000\000\000\000\004\237\004\237\000\000\000\000\004\237\000\000\000\000\004\237\000\000\021\018\004\237\000\000\004=\004\237\000\n\004\237\004\237\000\000\004=\004\161\000\000\021\022\000\000\000\000\000\000\000\000\000\000\004=\000\000\000\000\021\026\000\000\021\030\004=\000\000\000\000\004\237\000\000\000\000\000\000\021\"\000\000\000\000\000\000\000\000\021&\000\000\000\000\021.\000\000\000\000\000\000\0212\000\000\000\000\000\000\004\237\000\000\0216\000\000\000\000\000\000\007\133\007\133\000\000\000\000\000\000\007\133\000\000\022\138\000\000\000\000\000\000\000\000\021:\004\237\004\237\000\000\000\000\005\t\004\237\000\000\004\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\237\000\000\000\000\000\000\000\000\004\237\000\000\n\157\004\237\021>\000\000\000\000\021B\000\000\000\000\000\000\004\237\000\000\000\000\000\000\004\237\004\237\000\000\000\000\000\000\021F\000\000\000\000\000\000\000\000\021J\000\n\021N\000\000\021R\021V\000\000\021Z\005\221\000\000\000\000\005\221\000v\021^\005\221\005\221\021b\005\221\000\194\000\000\000\000\005\221\005\221\005\221\000\000\000\000\000\000\000\000\005\221\005\221\000\000\021f\000\000\000\000\000\000\021j\021n\n\157\005\221\000\000\000\000\005\221\001\002\000\000\000\000\005\221\000\000\005\221\005\221\000\000\005\221\005\221\005\221\005\221\005\221\005\221\005\221\005\221\000\000\000\000\005\221\000\000\005\221\005\221\000\000\000\000\000\000\000\000\000\000\000\000\005\221\000\000\000\000\000\000\001f\000\000\005\221\000\000\000\000\000Z\005\221\000\000\005\221\000\000\005\221\000Z\000\000\000\000\005\221\000\000\005\221\000\000\000\000\000\000\005\221\005\221\005\221\000\000\000\000\000\000\005\221\005\221\000\000\000\000\005\221\000\000\000\000\000\000\000\000\000Z\005\221\000\000\005\221\000\000\004\030\005\221\000\000\000\000\000\000\000Z\005\221\005\221\005\221\000\000\005\221\005\221\000\000\000\000\000\000\000\000\005\221\005\221\000\000\000\000\005\221\005\221\005\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\221\005\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\221\000\000\000\000\000\000\000\000\005\221\005\221\000\000\000\000\005\221\005\221\000\000\005\221\005\221\001\166\005\221\005\221\001\186\005\221\005\221\001\190\000\000\000\000\005\221\005\221\005\221\000\000\000\000\000\000\005\221\000\000\000\000\000\000\000\000\000\000\001\178\005\221\000\000\001\182\005\221\005\221\000\000\000\000\005\221\001\194\001\214\005\221\001\210\005\221\005\221\005\221\000\000\000\000\005\221\001\218\000\000\001\222\000\000\005\221\005\221\000\000\000\000\000\000\005\221\005j\001\230\000\000\000\000\005n\001\238\001\242\000\000\005r\005v\000\000\005z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\166\000\000\000\000\001\186\000\000\000\000\001\190\000\000\005~\000\000\000\000\000\000\000\000\005\130\000\000\000\000\000\n\000\000\000\000\000\000\000\000\001\178\000\000\000\000\001\182\005\138\000\000\000\000\000\000\000\000\001\194\007\030\000\000\001\210\005\221\000\000\000\000\005\221\003F\000\000\001\218\005\221\001\222\005\221\000\000\000\000\000\000\005\142\005\221\005\221\005j\001\230\000\000\005\146\005n\001\238\001\242\000\000\005r\005v\005\221\005z\005\150\005\221\003\138\000\000\005\221\005\221\002\"\005\221\003\202\000\000\000\000\005\221\005\221\005\221\005\221\000\000\005~\000\000\005\221\005\221\000\000\005\130\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\138\005\221\000\000\000\000\000\000\004\242\000\000\005\221\000\000\000\000\000Z\005\221\000\000\005\221\000\000\000\000\000\000\005\221\000\000\000\000\000\000\005\221\005\142\000\000\000\000\005\221\005\221\005\221\005\146\000\000\000\000\007f\000\000\005\221\000\000\005\221\000Z\005\150\000\000\005\221\000\000\000\000\000Z\002\"\000\000\005\221\005\221\005\221\000\000\000\000\000\000\005\221\005\221\005\221\000\000\000\000\005\221\005\221\005\221\000\000\000\000\005\221\000\000\000\000\000\000\000\000\000\000\005\221\000\000\000\000\000\000\000\000\005\221\000\000\000\000\000\000\000\000\000\000\005\221\000\000\000\000\000\000\005\221\000\000\000\000\000\000\000\000\005\221\005\221\000\000\000\000\000\000\005\221\005\221\000\000\005\221\005\221\000\000\000\000\005\221\000\000\000\000\000\000\000\000\005\221\005\221\000\000\000\000\000\000\005\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\221\000\000\000\000\005\221\005\221\001\166\005\221\005\221\001\186\005\221\005\221\001\190\005\221\005\221\000\000\000\000\000\000\005\221\005\221\005\221\000\000\000\000\000\000\005\221\000\000\000\000\001\178\000\000\000\000\001\182\000\000\000\000\000\000\000\000\000\000\001\194\005\134\000\000\001\210\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005j\001\230\000\000\000\000\005n\001\238\001\242\000\000\005r\005v\000\000\005z\000\000\014\021\000\000\000\000\014\021\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\000\000\000\000\005\130\000\000\014\021\000\n\000\000\000\000\000\000\000\000\000\000\005\170\000\000\000\000\005\138\000\000\000\000\000\000\014\021\000\000\000\000\000\000\014\021\000\000\014\021\014\021\000\000\000\000\005\178\000\000\000\000\005\190\001\166\000\000\014\021\n\166\005\142\014\021\n\170\014\021\000\000\000\000\005\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\150\000\000\001\178\000\000\000\000\000\000\002\"\000\000\000\000\014\021\000\000\n\174\n\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\000\000\005\202\000\000\n\206\001\230\000\000\000\000\n\210\001\238\001\242\000\000\n\214\n\218\000\000\n\222\000\000\000\000\000\000\000\000\000\000\014\021\014\021\000\000\014\021\000\000\005\206\000\000\014\021\000\000\000\000\n\226\n\230\000\000\000\000\000\000\005\214\n\234\000\000\001\166\000\n\000\000\n\166\000\000\000\000\n\170\014\021\000\000\000\000\n\242\000\000\000\000\014\021\000\000\000\000\000\000\014\021\014\021\000\000\000\000\001\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\174\n\238\n\246\000\000\000\000\000\000\000\000\000\000\n\250\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\n\254\000\000\000\000\n\206\001\230\000\000\002\"\n\210\001\238\001\242\000\000\n\214\n\218\000\000\n\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\166\000\000\000\000\n\166\000\000\000\000\n\170\n\226\n\230\000\000\000\000\000\000\000\000\n\234\000\000\000\000\000\n\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\n\242\000\000\000\000\000\000\000\000\n\174\011\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\n\246\000\000\000\000\n\206\001\230\000\000\n\250\n\210\001\238\001\242\000\000\n\214\n\218\000\000\n\222\n\254\000\000\000\000\000\000\000\000\000\000\002\"\000\000\001\166\000\000\000\000\013^\000\000\000\000\013b\n\226\n\230\000\000\000\000\000\000\000\000\n\234\000\000\000\000\000\n\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\n\242\000\000\000\000\000\000\000\000\013f\014\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\n\246\000\000\000\000\013~\001\230\000\000\n\250\013\130\001\238\001\242\000\000\013\134\013\138\000\000\013\142\n\254\000\000\000\000\000\000\000\000\000\000\002\"\000\000\001\166\000\000\000\000\013^\000\000\000\000\013b\n\226\013\146\000\000\000\000\000\000\000\000\013\150\000\000\000\000\000\n\000\000\000\000\000\000\nR\001\178\000\000\nV\000\000\013\158\000\000\025r\000\000\nZ\013f\013j\000\000\000\000\n^\025v\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\013\162\000\000\000\000\013~\001\230\000\000\013\166\013\130\001\238\001\242\000\000\013\134\013\138\000\000\013\142\013\170\000\000\000\000\000\000\016\138\000\000\002\"\000\000\001\166\000\000\000\000\013^\000\000\000\000\013b\n\226\013\146\000\000\000\000\000\000\016\142\013\150\000\000\000\000\000\n\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\013\158\000\000\000\000\000\000\000\000\013f\013\154\001\230\000\000\000\000\000\000\012\226\001\242\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\013\162\000\000\000\000\013~\001\230\000\000\013\166\013\130\001\238\001\242\000\000\013\134\013\138\000\000\013\142\013\170\000\000\000\000\000\000\000\000\000\n\002\"\008\129\000\000\000\000\004\161\000\000\000\000\000\000\000\000\n\226\013\146\000\000\000\000\008\129\000\000\013\150\000\000\000\000\000\n\000\000\000\000\000\000\008\129\000\000\008\129\000\000\000\000\013\158\000\000\000\000\000\000\000\000\008\129\000\000\000\000\000\000\000\000\008\129\000\000\000\000\008\129\000\000\000\000\000\000\008\129\021\230\000\000\008\245\008\245\013\162\008\129\000\000\008\245\000\000\000\000\013\166\023\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\013\170\000\000\008\129\000\000\021\022\000\000\002\"\000\000\000\000\000\000\000\000\000\000\000\000\021\026\000\000\021\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\"\000\000\000\000\000\000\008\129\021&\000\000\008\129\021.\000\000\000\000\000\000\0212\000\000\000\000\000\000\000\000\000\000\0216\000\000\008\129\000\000\000\000\000\000\000\000\008\129\008\129\008\129\000\000\008\129\008\129\000\000\008\129\000\000\021:\023\170\000\000\000\000\008\129\000\000\000\000\008\129\000\000\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\237\008\129\000\000\000\000\021>\008\129\008\129\021B\000\000\000\000\000\000\000\000\007\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021F\007\237\000\000\007\237\000\000\021J\000\n\021N\000\000\021R\021V\007\237\021Z\000\000\000\000\000\000\007\237\000\000\021^\007\237\000\000\021b\000\000\007\237\000\000\000\000\000\000\000\000\000\000\007\237\000\000\000\000\000\000\000\000\000\000\022n\021f\000\000\000\000\000\000\021j\021n\000\000\000\000\000\000\007\237\023\170\021\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\026\000\000\021\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\"\000\000\000\000\000\000\007\237\021&\000\000\007\237\021.\000\000\000\000\000\000\0212\000\000\000\000\000\000\000\000\000\000\0216\000\000\007\237\000\000\000\000\000\000\000\000\007\237\007\237\007\237\000\000\007\237\007\237\000\000\007\237\000\000\021:\000\000\000\000\000\000\007\237\000\000\000\000\007\237\000\000\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\134\007\237\000\000\000\000\021>\007\237\007\237\021B\000\000\000\000\000\000\000\000\021\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021F\021\026\000\000\021\030\000\000\021J\000\n\021N\000\000\021R\021V\021\"\021Z\000\000\000\000\000\000\021&\000\000\021^\021.\000\000\021b\000\000\0212\000\000\021\018\000\000\000\000\000\000\0216\000\000\000\000\000\000\000\000\000\000\000\000\021f\021\022\000\000\000\000\021j\021n\000\000\000\000\000\000\021:\021\026\000\000\021\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\"\000\000\000\000\000\000\000\000\021&\000\000\000\000\021.\000\000\000\000\000\000\0212\000\000\021>\000\000\000\000\021B\0216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\018\021F\000\000\000\000\000\000\023*\021J\000\n\021N\000\000\021R\021V\021\022\021Z\000\000\000\000\000\000\000\000\000\000\021^\000\000\021\026\021b\021\030\000\000\000\000\000\000\000\000\000\000\000\000\021>\021\"\000\000\021B\000\000\000\000\021&\021f\000\000\021.\000\000\021j\021n\0212\000\000\021\018\021F\000\000\000\000\0216\000\000\021J\000\n\021N\000\000\021R\021V\021\022\021Z\000\000\000\000\000\000\000\000\000\000\021^\024v\021\026\021b\021\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\"\000\000\000\000\000\000\000\000\000\000\021f\000\000\021.\000\000\021j\021n\0212\000\000\021>\000\000\000\000\021B\0216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021F\000\000\000\000\000\000\021:\021J\000\n\021N\000\000\021R\021V\000\000\021Z\000\000\000\000\000\000\000\000\000\000\021^\000\000\000\000\021b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021>\000\000\000\000\021B\000\000\000\000\000\000\021f\000\000\000\000\000\000\021j\021n\000\000\000\000\000\000\021F\000\000\000\000\000\000\000\000\021J\024\150\021N\000\000\021R\021V\000\000\021Z\000\000\000\000\000\000\000\000\000\000\021^\000\000\000\000\021b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021f\000\000\000\000\000\000\021j\021n\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\000\000\001\030\0012\001:\001>\000\000\000\000\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\001F\001\014\000\000\001\022\000\000\001\030\0012\001:\001>\000\000\000\000\000\000\000\000\000\000\001N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001F\000\000\000\000\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\001^\000\254\001N\001\014\000\000\001\022\001j\001\030\0012\001:\001>\000\000\000\000\000\000\001b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001^\000\000\001F\000\000\000\000\000\000\001j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001b\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\000\000\000\000\000\000\000\000\000\n\000\000\001^\000\000\000\000\000\000\000\000\000\000\001j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001b\000\000\000\000\001n\026\026\004V\000\n\000\000\000\000\000\000\000\000\000\000\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\001n\001\022\012e\001\030\0012\001:\001>\000\000\000\000\000\000\013\249\000R\000V\000f\000\170\000\000\000\174\000\n\000\178\000\246\001F\000\254\000\000\001\014\0021\001\022\000\000\001\030\0012\001:\001>\000\000\013\249\000\000\001N\000\000\026\030\000\000\000\000\011\030\000\000\000\000\000\000\000\000\001F\000\000\013\249\001\153\000\000\000\000\001\153\000\000\013\249\013\249\001^\000\000\011&\003M\001N\0112\002)\000\000\013\249\000\000\000\000\013\249\000\000\013\249\001b\001\153\000\000\000\000\004R\004V\000\000\000\000\000\000\000\000\001^\000\000\000\000\006R\000\000\001\153\006\162\000\000\000\000\001\153\013\249\001\153\001\153\000\000\001b\000\000\000\000\000\000\026\026\004V\000\000\001\153\000\000\000\000\001\153\006Z\001\153\000\000\000\000\000\000\011>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006b\000\000\000\000\000\000\002\017\000\000\006\178\006\186\001\153\000\000\013\249\000\000\004b\000\000\000\000\011B\006\130\013\249\000\000\006j\000\000\006z\000\000\000\000\000\000\011J\000\000\000\000\000\000\000\000\013\249\000\000\000\000\000\000\000\237\000\000\026&\000\237\000\000\000\000\000\000\000\000\006\138\000\000\000\000\013\249\013\249\001\153\005\250\000\000\001\153\000\000\000\000\000\000\001\153\000\000\006Z\000\000\000\213\000\000\000\000\000\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006b\000\000\001\153\000\000\000\237\000\000\000\237\000\237\006\002\000\000\000\213\006\146\001\153\001\153\002\017\000\000\006\130\000\000\006r\006j\000\000\006z\000\205\000\000\006b\000\205\000\000\000\000\000\213\000\000\000\213\000\213\000\000\000\000\000\000\000\000\002\017\000\000\000\000\000\000\000\213\000\000\006\138\006j\000\205\006z\006\194\006\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\205\000\000\000\000\000\000\000\205\000\000\000\205\000\205\000\213\000\209\000\000\000\000\000\209\000\000\000\000\000\000\000\205\000\000\000\000\006j\000\000\000\205\000\000\006\146\000\000\000\000\000\237\000\000\000\000\000\000\006r\000\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\205\000\000\000\000\000\209\000\000\000\213\000\237\000\209\000\213\000\209\000\209\000\225\006r\000\000\000\225\000\000\000\237\006\154\000\000\000\209\000\000\000\000\006j\000\000\000\209\000\000\000\000\000\000\000\000\000\000\000\213\000\000\000\000\006Z\000\000\000\000\000\000\000\000\000\000\000\205\000\213\000\213\000\205\000\000\000\000\000\209\006r\006b\000\000\000\000\000\000\000\225\000\000\000\225\000\225\000\000\000\217\000\000\000\000\000\217\000\000\000\000\000\000\000\225\000\205\000\000\006j\000\000\006z\000\000\000\000\000\000\000\000\000\000\000\205\000\205\000\000\000\000\006Z\000\000\000\000\000\000\000\000\000\000\000\209\000\000\000\000\000\209\000\000\006\138\000\221\006r\006b\000\221\000\000\000\000\000\217\000\000\000\217\000\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\217\000\209\000\000\006j\006Z\006z\000\229\000\000\000\000\000\229\000\000\000\209\000\209\000\000\000\000\000\000\000\000\000\000\006b\000\000\000\225\000\000\000\221\000\225\000\221\000\221\000\217\006r\006Z\000\000\000\000\000\000\000\000\000\000\000\221\000\000\000\000\006j\000\000\006z\006R\000\000\006b\000\245\000\000\000\225\000\229\000\000\000\229\000\229\000\000\000\000\000\000\000\000\000\000\000\225\000\225\000\000\006\130\000\000\006\138\006j\006Z\006z\000\000\000\217\000\000\000\000\000\217\000\000\000\000\000\000\006r\000\000\000\000\000\000\006b\000\000\000\000\000\000\000\245\000\000\000\245\006\186\006\138\006R\000\000\000\000\000\233\000\000\000\217\000\000\006\130\000\000\000\000\006j\000\000\006z\000\000\000\221\000\217\000\217\000\221\000\000\000\000\000\000\006r\006Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\138\000\000\000\000\006b\000\000\006\146\000\221\000\233\000\229\000\233\000\233\006R\006r\000\000\000\241\000\000\000\221\000\221\000\000\006\130\000\000\000\000\006j\000\000\006z\000\000\000\000\000\000\000\000\000\000\000\229\000\000\000\000\006Z\000\000\000\000\000\000\000\000\000\000\006\146\000\229\000\229\000\245\000\153\000\000\006\138\006r\006b\000\000\000\000\000\000\000\241\000\000\000\241\006\186\000\000\000\000\000\000\000\000\000\000\000\169\000\000\000\000\006\130\000\245\000\153\006j\000\000\006z\000\000\000\000\000\000\000\000\000\000\006\194\006\154\000\000\000\000\000\000\000\153\000\000\000\000\011\234\000\000\006\146\000\153\000\153\000\233\000\000\006\138\000\000\006r\000\000\000\000\000\161\000\153\011\242\000\000\011\250\000\000\000\153\000\000\000\169\000\169\000\000\000\000\000\000\000\000\000\000\000\233\000\000\000\000\000\169\000\000\000\000\011\250\011\234\012\n\000\000\000\233\006\154\000\153\000\000\000\000\000\000\000\000\000\165\000\000\006\146\000\000\011\242\000\241\000\000\000\000\000\000\006r\000\161\000\161\012\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\161\000\000\011\234\011\250\000\000\012\n\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\000\011\242\000\241\006\154\000\000\000\000\012\002\000\165\000\165\000\000\000\000\000\161\000\000\000\000\000\000\000\000\000\169\000\165\000\000\000\153\011\250\000\000\012\n\012\002\000\000\000\000\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\169\000\000\000\000\000\000\000\000\000\000\000\000\012\026\000\000\000\000\000\000\000\000\011\234\000\000\000\161\000\169\000\169\000\000\000\000\000\000\000\000\012\002\011\226\000\000\000\000\000\000\011\242\000\000\000\000\000\000\000\000\000\000\000\173\000\173\000\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\018\000\000\011\234\011\250\000\165\012\n\000\000\000\161\000\161\000\000\000\000\012\002\011\226\000\000\000\000\000\000\011\242\000\000\000\000\000\000\000\000\000\000\000\189\012:\000\165\000\000\012\026\000\000\000\000\000\000\000\000\000\000\012\018\000\000\011\234\011\250\000\000\012\n\000\000\000\165\000\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\242\000\000\000\000\000\000\000\000\011\226\000\177\000\177\000\000\000\000\012\026\000\000\000\000\000\000\000\000\000\000\012\018\012\"\000\000\011\250\000\000\012\n\000\000\000\000\012\002\000\000\000\000\011\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\173\000\000\000\000\000\000\011\242\012\026\000\000\000\000\000\000\000\000\000\185\012:\012\"\000\000\000\000\000\173\000\173\000\000\000\000\012\002\012\018\000\000\000\000\011\250\000\000\012\n\000\000\000\000\000\000\000\000\000\000\000\000\000\189\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\012\026\012B\012*\000\000\000\000\012\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\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\177\012*\000\000\000\000\000\000\000\000\012\"\000\000\000\000\000\000\000\000\000\000\000\000\012\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\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\185\012*")) + ((16, "\000\136\000\193\000\000\000\000\t\156\000\193\000\000\000\000\000\021\000\000\000\000\000\000\000\199\000\000\000\000\000\000\000\136\000\000\001^-\196\000\000\018\212\018\212\000\000\000\000*\254\018\212\000\000<\144\018\212\000\000\000\000\018\212\000\000\018\212\000\000\000%\000B\018\212\000\000\018\212\000\000\000\000\000\000+f\018\212\000\000<\156\018\212\000\000\000\000\018\212\000\000\018\212\000\000\000|\000\244\018\212\000\000\018\212\000\000\018\212\000\000<\204\018\212\000\000\000\000\018\212\000\000\018\212\000\000\000w\000\000\000\000\018\212\000\000\018\212\000\000\000\000\018\212\000\000\018\212\000\000\000\252\001\180\018\212\000\000-\196<\144JP\000\000\021@\002&-\196\000EJP\000\000\001\188\018\212\000\000JP\000\000\000w\003z/\162\000\000\000\0009J\000\000=\148\000\000> -\164-\164\0206\0206=\148\0206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0009\214-\164\000\000\000\0009\214\000\0009\214\000\000-\164\000\000\000\000\000\000\023\186\000w\000\000\0206\000\000+\248-\164\027\232-\164\000\000\000\000\000\000\000\000\000\000\000\000\031x-\164 r-\164 \208-\164!\202-\164\000\000-\164\000\000-\164\"(-\164#\"-\164#\128-\164$z-\164$\216/\162\002\"-\164\000\000\000\000\000\000\000\000\000\000-\164%\210-\164&0-\164'*-\164\000\000\000\000-\164\000\000\000\000\002x\000\000\000\000\000\000\000\000\001\182\018\212\000\000\000\252\018\212\000\000>\162\018\212\000\000\000\000\018\212\000\000\018\212\000\000\002\180\003\002\018\212\000\000\018\212\000\000\007\230\018\212\000\000>\214\018\212\000\000\000\000\018\212\000\000\018\212\000\000\0030\003\226\018\212\000\000\018\212\000\000\018\212\000\000>\226\018\212\000\000\000\000\018\212\000\000\018\212\000\000\000w\018\212\000\000\018\212\000\000\018\212\000\000\018\212\000\000\003\218\004\006\018\212\000\000<\224JP\003\238\018\212\000\000A*J|\000\000\000\031\004\178\000w\004\028\004\230J\196\000\000\000\000\000)K\170\000\000\000\000\000\000\000\000\005\218\005X\000E\005\146J\196\001BJ\196\000\000\000\000\004\234\000\000\005\006\005\210J\196\005\022\000\000\000\000\000\000\000)\000\000\0054\006.\000\000\0062\000\000\005\220\000\150JP\005p\018\212\000\000>\162JP\005t\018\212\000\000\000\000\000w\006Z\000\000\000\000\000\000\001v\0206\000\000-\164\005\130\000\000\000\000\000w\000\000\000\000\000\000\000\000\000\000\005\136\000\000\000\000\005\144\000\000\005\148=\148\000\000\000\000\000\000\000\000\000\000\000\000?\212-\164\000\000?\212\000\000?\212=\148\000\000\000\000A*\000w\000\000\0206\005\156\000\000-\164\005\208\000\000\000\000\000w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Lx-\164\000\000-\164\000\000\000\000\005\214\000\000\000\000:\128\006\142-\164\006\\\000\000\000\000=\148\000\000\000\000\000\000\000\000\000\000\000\000@x=\148An=\148M\n=\148MH=\148\000\000=\148\000\000=\148M\188=\148N\000=\148NZ=\148N\178=\148O\012/\162\0062=\148\000\000=\148OP=\148O\128=\148O\196\006\016\000\000\006\"\000\000\000\132-\164\000\000\000\132\000\000\000\000\002\016-\196\000\000\002\016\000\000\000\000\006\"-\164\000\000\006&\000\000\0206\0064\000\000\000\000\007\000\000\000\0206\0068\000\000\000\000\006:\000\000\000\000\003z\000\000\007(\000\000>\214JP\006H\018\212\000\000\000\000\006\226\000\000\006f\018\212\000\000\000\000\000\t-\196\000\000-\196\000\000\006X\000\000\000\t\000\000\016\150\031x\018\170\000\000\008d\018\170\000\000\018\170\018\170\000\000\000\000\018\170\000\000\018\170\000\000\006\156\006\200\018\170\000\000\018\170\000\000\t\002\018\170\000\000\018\212\018\170\000\000\000\000\018\170\000\000\018\170\000\000\006\160\006\210\018\170\000\000\018\170\000\000\018\170\000\000\018\226\018\170\000\000\000\000\018\170\000\000\018\170\000\000\000w\018\170\000\000\018\170\000\000\018\170\000\000\018\170\000\000\006\170\006\218\018\170\000\000-\196\006\142\000\000\018\196JP\006\144\018\170\000\000\000\000\000=\000\000\002\028\000=\000\000\000\000\000\000\007|\000\000\001\020JP\006\154\018\170\000\000\018\212JP\006\158\018\170\000\000\000\000\007>\018\170\000\000\n\002\018\170\000\0000n\018\170\000\000\000\000\018\170\000\000\018\170\000\000\006\212\007\002\018\170\000\000\018\170\000\000\n0\018\170\000\0000\134\018\170\000\000\000\000\018\170\000\000\018\170\000\000\006\220\007\012\018\170\000\000\018\170\000\000\018\170\000\0000\138\018\170\000\000\000\000\018\170\000\000\018\170\000\000\000w\018\170\000\000\018\170\000\000\018\170\000\000\018\170\000\000\006\230\007\018\018\170\000\000\018\226JP\006\194\018\170\000\000\000\000\002bJP\006\196\018\170\000\0000\134JP\006\206\018\170\000\000\000\000\000\000\000\000\000\000\000\000\007\150-\164\006\220\021\246\007\156-\164\006\224\007\158-\196\000\000\000\000-\196\000w\000\000\001\192-\164'v\000\000A\170-\164\006\236\000\000\0206\006\236\000\000\006\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000BT-\164\000\000BT\000\000BTB\224\0206\006\246B\224\000\000\000\000L:\000w\000\000\0206\006\252\000\000-\164\007\022\000\000\000\000\000w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000-\164\001,-\164\007\026\000\000\000\000(J'v\026(\030V\007\230-\164\000\000\007\184\000\000\000\000\000w\000\000;\028\007n'v\000\000\007p'v\000\000\001L\000\000\000\000\023FB\224\031\228B\2248\240B\224BNB\224\000\000B\224\000\000B\224HJB\224P\030B\224P&B\224PvB\224P~B\224P\216B\224Q\028B\224QL\000\000\007R(\244\000\000)\158)\158\007T)\158*H)\158\000\000\007^)\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007R\000\000\000\000\007V\000\000\008<\000\000\000w\000\000\001\192\008>\000\000\004F\008\020\000w\007j\008,J\196\007p\002*\000\000-\164\008R\000\000\005\252\006\174\0084J\196\007z\008`\000\000\002.-\164\008d\000\000\008l\000\000\005\220\000w\002\190-\164\008p\000\000\008t\000\000\000w\003t-\164\008v\000\000\008x\000\000\001\018\007\196\006\232\000\000ClC\248\0206\007\160\000\000\007\172C\248\000\000\000\000\000\000\000\000\000\000\000\000D\132-\164\000\000D\132\000\000D\132C\248\000\000\000\000\026\134\000w\000\000\0206\007\174\000\000-\164\007\172\000\000\000\000\000w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000,b-\164\000\000-\164\000\000\007\186\000\000\000\132\000\000\000\000\000\000\000\000\000\0001pC\2481\160C\2482\170C\2482\218C\248\000\000C\248\000\000C\2483\228C\2484\020C\2485\030C\2485NC\2486X/\162\007\242C\248\000\000C\2486\136C\2487\146C\2487\194\0206\007\206\000\000\000\000-\164\000\000\008\180\000\000\001`\008\138-\164\008T\000\000\008\142-\164\008X\000\000\000\031\000\000\006\232\006\232\001`\000\000\001`\000\000\016\150\006\232\006\232\000\000\000\000\000\000\000\000\000\000\000\000\008\158-\164\007\228\021\246\022\198\000w\008\202\000\000\008\172/\162\008\214/\162\008\218-\164\008\002\021\246\021\246\000w\002^\001T\000\000\000\000\000\000\002^\000\000\003,\000w\000\000\000\000\008\004\000\000\000\000\000\000\008\238\000\000\008\242\000\000\000\000\t(\008\214-\164\008\"\t\002\000\000\008\232\0206\008,\021\246\000\000\000\000\008Z\000\000\000\015\000\000\005\134\000\000\000\000\001`\000\000\008\176\000\000\012p\004\020\000\000\012p\000\000\000\000\025\028\000\000\004\020\000\000\000\000\t\172\000\000\012p\000\000\008\248\0206\008>\t \000\000\000%\000\000\008\242\000w\008J\t\012J\196\008T\002\146\000\000-\164\t>\000\000\t>J\196\008\144\tv\000\000\004\028-\164\tz\000\000\t|\000\000\005\220\000w\004\156-\164\t~\000\000\t\128\000\000\000\000\000\000\t\172\000\000\000\000\004\020\000\000\006\232\000\000\000%\000\000\000\000\003^\022\198\000\000\003^\000\000\000\000\008\168\000\000\003:\000\003\021\246\000\000\004$\000O\004$\000\000\000\015\000\000\006\232\000\000\006\232\000\000\000\000\000\000\008\164\000\000\000\000\008\182\000\000\004\216\005\134\001V\004$\000\000\000\000\000\000\008J\000\000\006\232\000\000\004\216\000\000\000\000\003\022\000\015\016\150\000\000\000\015\000\000\008J\016\150\000\000\000\000\008J\000\000\000\000\008\182\000\000\000\000\008\188\000\000\004\222\006\232\000\000\004\222\000\000\000\000\t8\000\000\004\020\000\000\006\232\000\000\000\000\000\000\017\2368\190\000\000\t\160\000\000\017\236\t\164\000\000\t\168\000\000-\196\000w\003\140\000\000-\164\t\172\000\000\005\166\t~\000w\008\214\t\150J\196\008\220\003\180\000\000-\164\t\188\000\000\003\244\000\000-\164\t\196\000\000\005\220\000w\004,\000\000-\164\t\198\000\000\005*\017\236\000\000\025\028\004\192\000\000-\164\t\214\000\000\000\000\000\000\003\250\000\000\t\186\0206\t\006\t\236\000\000\007\n\000\000\t\190\000w\t\"\t\234J\196\t0\005\156\000\000-\164\n\020\000\000\005\160\000\000-\164\n\022\000\000\005\220\000w\005\172\000\000-\164\n\024\000\000\005*\000\000\000\000\t>\000\000\003\250\008\230\t\184\000\000\000\000\000\000\t\186\000\000\0020\000\031\000\000\016\150\n\012\000\000\000\000-\164\tn\006\232\000\000\tH\000\000\001\018\000\000-\196\000\000\000\000\002\190\016\150\000\000\016\150\000\000\t6\000\000\002\190\000\000-\164\003\138-\164\000\000-\164\000\000\tN\000\000\003\138\000\000-\164\003\138\tP\000\000\021\246\004 \021\246\000\000\021\246\000\000\tV\000\000\004 \000\000-\164\003\138\tX\000\000-\196\004\226-\196\000\000-\196\000\000\t^\000\000\004\226\000\000-\164\003\138\t`\000\000\000\000\025\028\000\000\000\000\t\206.\130\000\000\000\000\000\000\000\000\000\000\t\170\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\202.\130\000\000\004\132\000x\000\000\t\172\000\193\000\000\000\000\000\000\004\130\000x\000\000\000\000\000\000\000\000\n\n\000\000\000\000\000\000\000\000\027\232\029J\000\000EB\000\000.\130\000\000\0016.\130\000\000\000?\000K\000K\000\000\002L\000K\000\000\t\136\000\000\000\000\000\000\000\000\n\024\000\000\029\196\000\000\031x.\130\000\000\000W.\130\000\000\n\028\000\000.\130\n \000\000G6/\016\n$\000\000\n(\000\000G\196;\152.\130\t\166.\130\n0\000\000\n2\000\000\n6\000\000-\196\000\000\002\134-\196\000\000\t\180\018\170\000\000\000\207.\130\000\000\005l.\130\000\000\003L\n\182\000\000\n\184\000\000.\130.\130\t\216\000\000\000\000\000\000\000\000\000\000\000\000\nt\000\000H8.\130\nv\000\000\nx\000\000.\130\nz\000\000.\130\n$\000\193\000\000\000\000\005\230.\130\000\000\003L\000\000\n\128\000\000.\130\n\130\000\000E\176/\016.\130\n\000.\130\n\134\000\000\n\136\000\000F\\\000\000\000\000\006\026.\130\000\000\002\194\000L\000K\n\008\000\000\000\000\000N\000N\000\000\000\000\000\000\003\186\000N\000\000\n\n\000\000\000\000\000\000\000\000\000\000\000\000.\130\000\000\006f.\130\000\000\001`\004@\000\193\n\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\156\000\000\n\162\000\000.\130\n\164\000\000H\198.\130\n\172\000\000\n\182\000\000\021\140\n^I\018\018\196\000\000.\130\n\190\000\000\n\192\000\000\n\144\021\140.\130\n\200\000\000.\130\n\210\000\000\n\212\000\000F\234\nR.\130\n\224\000\000\n\228\000\000\000\193\nV\000\000\000\000\025\028\000\000\000\000\002z\011F\000\000\000\000\002\174\000\000\000\000\000\000-\164\000\000\000\000\000\000\002\194\000\000\004\248\000\000\000\000\000\000\004$A*A*A*\000\000\002P\002P\002P\002P\000\000\000\000\000\000\000\000\000\000\000\000\001`\016\150\011<\013\210\000O\000\000\000\000\001&\000\000\t\172\000\000'v\nn\000\000\001`\016\150\n\130\0154\000\000\001`\013\210\000\000\000\000\000\000A*\006v\000\000\000\000\000\000\n\214\0014\011PK~\000\000\004\136LZ\000\000\000\000\000\000\t~\011@\000w\000\000\004\136\000\000\004\176K~\000\000\000\000\n\152\011P\006\232\n\150\000\000\001&\000\000\t\172\000\000:\194\004<\000\000\000\000\011<\000\000\000\000\002z\000\000\005\016\000\000\000\000\000\000-\164\000\000\002\194\000\000\005N\000\000\000\000\000\000\005\134\000\000\011\014\002\144\011\014\000\000\006\232\011\014\000\000\002\144\000\000\006\232\000\000\006\232\000\000\006\232\000\000\t:\000\000\000\000\000\000\000\000\000\000\006\232\000\000\002\144\000\000\006\232\000\000D^\000\000\000\000\nj\n\200\000\193\005p\011d\003\004\000\000\003\004\011\140\000\000\011\142\000\000\011\144\000\000\000\000\004p\003\004\007r\003\004\000\000\000\000\004\174\n\152\000\000\n\216\000\193\005p\n\160\000\000\nj\011\164\000\000\n|\003P\011\182\000\215\011\182\000\000\000\000\002\030\000\193\000\000\001\152\000\000\000\000\002\178\000\000\n\178\000\000\000\000\000\000\n\238\000\193\005p\n\184\000\000\000\000\nj\n|\003P\002\030\001\152\002\178\n\186\000\000\n|\003P\002\030\001\152\002\178\n\192\000\000\000\193\000\000\011\194\001V\n\252\000\193\011X\000\000\011\000\000\193\011\\\000\000"), (16, "\012\005\012\005\012\005\012\005\012\005\012\005\012\005\012\005\012\005\012\005\012\005\021>\012\005\012\005\012\005\012\005\012\005\012\005\012\005\012\005\012\005\012\005\008\137\014\242\011q\022\234\012\005\015\026\000\n\011q\011q\000&\015&\012\005\001\"\016\162\022\030\012\005\012\005\001~\012\005\011q\007\201\012\005\022\026\007\150\016.\012\005\012\005\012\005\000*\016\166\008\210\027\250\004>\014\242\007\201\011\169\012\005\001\"\015\030\012\005\012\005\006\137\015&\000\n\011q\012\005\012\005\006\185\012\005\001\230\012\005\0007\000;\012\250\001\242\012\005\001\"\012\005\012\005\012\005\012\005\012\005\015\162\017F\021>\012\005\012\005\012\005\000\n\012\005\012\005\012\005\000\n\012\005\012\005\012\005\012\005\000\006\000\"\021\170\012\005\012\005\016>\003\245\000\n\007\201\021\174\000\n\007\158\023\226\023\246\012\005\012\005\012\005\018r\022f\012\005\012\005\012\005\012\005\018v\012\005\011\169\012\005\018z\000\150\012\005\006\185\004~\012\005\012\005\012\177\012\177\003:\016>\003B\012\177\003R\004^\017v\012\005\006\026\006\t\012\005\003Z\006\222\004\222\012\005\012\005\012\005\012\005\021\186\012\005\023\250\012\005\000\154\007\201\019\238\012\005\012\005\012\005\000\n\012\005\006\137\012\005\012\005\001\"\012\005\007\201\012\005\012\005\0061\003b\012\005\012\005\006\145\006\145\006\145\006\145\006\145\006\145\006\145\006\145\006\145\006\145\006\145\000.\006\145\006\145\006\145\006\145\006\145\006\145\006\145\006\145\006\145\006\145\000\n\016.\011\209\028\154\006\145\014\246\015\006\015\022\000\226\003r\014\242\006\145\008\246\023\002\023\n\006\145\006\145\023\222\006\145\015&\028\170\006\145\003.\0036\000\170\006\145\000\174\006\145\003z\003\190\006a\003\198\001\"\003\214\014\242\003\222\006\145\003\230\003\242\011n\003\250\006)\006)\015&\001\230\006\145\006\145\000\230\001\238\001\242\006\145\006\145\024F\004\221\004\002\006\145\011\217\006\145\006\145\006\145\006\145\006\145\021\154\000\n\001\"\006\145\006\145\006\145\004\n\006\145\006\145\006\145\001R\006\145\006\145\006\145\006\145\008\165\011\137\000\n\006\145\006\145\000N\007\182\020j\020\146\020\162\020\202\020\218\021\002\013n\016>\006\145\006\145\011v\000\n\006\145\006\145\006\145\006\145\020\026\006\145\004\026\006\145\nR\005\249\006\145\nV\006\025\006\145\006\145\025\138\011\174\nZ\015\170\016>\022\014\011\130\n^\025\142\012\177\012\177\004\138\006\145\011\225\012\177\003q\006\145\006\145\006\145\006\145\012\234\006\145\011\137\006\145\004\221\028\022\008\165\006\145\006\145\006\145\004}\028\026\001V\006\145\006\145\006\246\006\145\005\030\006\145\006\145\001v\004m\006\145\006\145\006\169\006\169\006\169\006\169\006\169\006\169\006\169\006\169\006\169\006\169\006\169\n\158\006\169\006\169\006\169\006\169\006\169\006\169\006\169\006\169\006\169\006\169\006\169\004}\n*\006\169\006\169\016.\016\194\011y\012\182\006\169\006\169\006\169\006\169\001\138\014\242\006\169\006\169\023\222\006\169\006\169\025.\006\169\001\"\015&\020J\006\169\006\161\006\169\011\137\006\169\006\169\006\161\006\161\006\169\006\169\006\169\006\169\006\169\006\169\006\169\006\169\002\206\012\238\028\n\013\026\006\169\006\169\006\169\006\169\004\169\006\169\006Y\023\242\000\n\008\218\006\169\025.\006\169\027\130\006\169\006\169\006\169\006\169\012\182\020\002\006\169\006\169\006\169\006\161\006\169\006\169\006\169\016\162\006\169\006\169\006\169\006\169\008\157\022*\027\134\027\242\006\169\023\002\023\n\006\169\011\153\027\138\015\166\016\166\020R\016.\006!\006\169\006\169\016\198\016>\006\169\006\169\006\169\006\169\006\246\006\169\006\169\006\169\003\026\028\"\006\169\022\210\001\230\006\169\006\169\006\169\012\250\001\242\011\129\003f\013:\006\169\006\222\011\137\006\169\023\018\005\241\006\169\008\201\008\201\020r\006\169\006\169\008\201\006\169\018\174\006\169\003j\006\169\012\182\017R\008\157\006\169\025?\025C\001\162\005\137\000\n\025G\006\169\008\173\006\169\027\146\006\169\006\169\018\222\006I\006\169\006\169\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\021*\001\014\025v\001\022\nZ\001\030\0012\001:\001>\n^\025z\003\170\021.\006\153\027\154\nb\006Y\018\242\006\153\006\153\019N\0212\001F\0216\015\194\020z\001\166\nr\003\249\013v\006\153\021:\013z\016.\006a\020\170\001N\011\137\014\226\021F\008\173\013V\014\242\021J\005\241\019\014\026\159\001\178\006\222\021N\025\174\015&\006\129\018\178\026\163\006\153\015:\013\130\025\218\025\230\012\182\015>\017\130\005\241\026\166\021R\001\218\005\241\001\222\004\185\001b\0166\015F\018\226\012\206\024J\013\150\001\230\015J\003\174\013\154\011\142\001\242\012\177\013\158\013\162\n\134\013\166\006A\004\029\021V\027\170\015N\021Z\001\230\024\n\004\014\004\018\012\250\001\242\020\178\011\137\011\145\n\226\013\170\018\246\021^\015R\015V\013\174\015Z\021b\000\n\021f\015n\021j\021n\004\149\021r\0192\015z\013\182\027\170\016>\021v\016\234\000\n\021z\004&\000\n\006a\025\250\020\226\019\018\015\154\011\233\n\253\004B\015\158\015\218\004\185\n\138\021~\013\186\012\182\015\222\021\130\021\134\004J\013\190\004\185\004\185\012\177\012\177\004N\004\185\015\230\012\177\013\194\017\198\006\177\006\177\018F\006Q\002\"\006\177\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\021\166\001\014\025v\001\022\nZ\001\030\0012\001:\001>\n^\025z\004\029\017\n\027\186\021\198\nb\004\029\004\029\011\233\n\253\020\234\026:\001F\019\"\027\178\006\001\001\166\nr\004\029\013v\0196\012\182\013z\003.\0036\000\170\001N\000\174\014\226\003z\003\190\026f\003\198\004z\003\214\003e\003\222\001\178\003\230\003\242\014\242\003\250\019\138\004\029\019\158\027\178\015:\013\130\025\218\015&\019\186\015>\017\202\004\130\006i\004\002\001\218\006q\001\222\004\201\001b\0166\015F\018\194\004\154\011\193\013\150\001\230\015J\004\n\013\154\011\142\001\242\0069\013\158\013\162\n\134\013\166\004\162\025g\025k\016:\015N\001\230\025o\004\166\004\174\012\250\001\242\004v\005\021\026\191\026\195\n\226\013\170\006y\026\199\015R\015V\013\174\015Z\004\198\000\n\004\026\015n\nR\004\249\004\149\nV\005\021\015z\013\182\025\138\001\"\nZ\004\202\027z\004\210\000\n\n^\025\142\016>\026\223\026\227\015\154\022\246\011\201\026\231\015\158\015\218\019\142\n\138\019\162\013\186\004\230\015\222\004\250\005\014\019\190\013\190\004\025\004\201\005.\005R\000\n\000\n\015\230\005^\013\194\005f\006\193\006\193\011\177\005\186\002\"\006\193\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\012\206\001\014\025v\001\022\nZ\001\030\0012\001:\001>\n^\025z\005\021\005\017\003A\005\198\nb\006\018\003A\006\"\023z\001\230\006*\001F\011\185\012\250\001\242\001\166\nr\004\245\013v\005\021\005\017\013z\t\"\t*\000\170\001N\000\174\014\226\tn\t\178\006\170\t\186\006\206\t\202\023\210\t\210\001\178\t\218\t\230\014\242\t\238\006\214\007\014\007\026\000\n\015\"\013\130\019j\015&\004\169\015>\007&\0072\007>\t\246\001\218\007J\001\222\004\229\001b\015B\015F\007^\019n\007n\013\150\001\230\015J\t\254\013\154\011\142\001\242\024:\013\158\013\162\n\134\013\166\007~\004\021\007\134\012\185\015N\007\171\001\230\007\246\007\250\008:\012\250\001\242\005\017\008>\008\158\n\226\013\170\008\162\008\178\015R\015V\013\174\015Z\008\194\000\n\n\014\015n\008\238\008\254\004\149\t\018\005\017\015z\013\182\004\021\tZ\003~\t^\003\134\t\158\003\150\000\n\t\162\016>\n\002\n\006\015\154\003\158\n\026\n2\015\158\015\218\004\229\n\138\nF\013\186\nf\015\222\nn\nv\n~\013\190\004\229\004\229\n\130\n\182\n\194\004\229\015\230\n\202\013\194\011\014\008\209\008\209\011.\003\166\002\"\008\209\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\011:\001\014\011~\001\022\nZ\001\030\0012\001:\001>\n^\007\202\004\021\007\210\011\154\007\226\nb\004\021\004\021\011\166\011\190\003\182\007\234\001F\011\202\012R\012f\001\166\nr\004\021\013v\012z\012\158\013z\012\170\012\178\012\198\001N\007\209\014\226\012\210\012\218\016.\012\222\012\230\004\021\012\246\013\006\001\178\013\014\007\242\014\242\007\209\013\018\004\021\013\"\027\178\015\"\013\130\013*\015&\013B\015>\013J\013^\013f\013r\001\218\013\138\001\222\004\221\001b\015B\015F\013\146\013\230\013\242\013\150\001\230\015J\014:\013\154\011\142\001\242\008\002\013\158\013\162\n\134\013\166\014\178\008\014\014\218\008\022\015N\008&\014\238\014\250\015\002\015\n\015\018\015^\008.\015f\007\209\n\226\013\170\015v\015~\015R\015V\013\174\015Z\015\134\000\n\015\142\015n\nR\015\150\015\210\nV\019j\015z\013\182\025\138\015\226\nZ\015\234\015\246\015\250\0086\n^\025\142\016>\016\002\016\006\015\154\019n\016\014\016\022\015\158\015\218\016&\n\138\016J\013\186\016\142\015\222\016\150\006\246\016\154\013\190\016\170\004\221\016\178\007\209\016\182\001\230\015\230\016\190\013\194\012\250\001\242\016\162\008F\016\206\002\"\007\209\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\016\166\001\014\016\214\001\022\nZ\001\030\0012\001:\001>\n^\016\222\011\161\011\161\000\n\016\226\nb\016\242\016\250\017\018\017\026\001\230\017j\001F\017\178\012\250\001\242\001\166\nr\017\190\013v\0182\018>\013z\018^\026N\018\138\001N\018\150\014\226\018\158\t.\018\186\t6\018\198\tF\018\206\018\210\001\178\018\218\018\234\014\242\tN\006Y\018\254\019\026\000\n\015\"\013\130\001\"\015&\004\169\015>\019>\tr\019V\tz\001\218\t\138\001\222\019^\001b\015B\015F\019b\t\146\019r\013\150\001\230\015J\tV\013\154\011\142\001\242\019z\013\158\013\162\n\134\013\166\019~\000\n\019\134\012\185\015N\019\150\019\170\019\198\019\218\019\234\019\250\020\018\011\161\020\"\t\154\n\226\013\170\020.\020_\015R\015V\013\174\015Z\011\161\000\n\tf\015n\004\137\011\161\011\161\020\135\020\159\015z\013\182\020\191\020\215\004\025\003A\020\247\021\015\021&\003A\027n\016>\021B\021\178\015\154\021\223\t\170\0226\015\158\015\218\000\022\n\138\022K\013\186\022s\015\222\022\127\011\161\022\143\013\190\022\151\022\170\011\161\011\161\022\179\022\187\015\230\022\195\013\194\022\222\012\185\012\185\023\006\023\014\002\"\012\185\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\023\030\001\014\025v\001\022\nZ\001\030\0012\001:\001>\n^\025z\023;\023K\023S\023_\nb\023j\023\143\023\155\023\174\023\183\023\191\001F\027\202\023\234\024\022\001\166\nr\024R\013v\000\n\024s\013z\027\222\024{\024\135\001N\004\137\014\226\024\151\0286\027\226\004\137\004\137\024\159\024\170\004\025\001\178\024\191\024\199\024\206\004\025\004\025\024\219\004\137\004\137\015:\013\130\024\231\024\239\024\250\015>\026\246\004\025\027z\025\003\001\218\025\011\001\222\025\023\001b\0166\015F\0252\025\186\025\226\013\150\001\230\015J\004\137\013\154\011\142\001\242\025\242\013\158\013\162\n\134\013\166\004\025\026&\026.\026R\015N\026v\026z\026\130\026\171\027r\027~\027\142\027\150\027\158\027\199\n\226\013\170\027\206\027\219\015R\015V\013\174\015Z\027\230\000\n\027\246\015n\028+\028:\004\149\028G\028k\015z\013\182\028\135\028\150\028\158\028\167\028\174\028\183\000\000\000\000\000\000\000\000\000\000\000\000\015\154\000\000\000\000\000\000\015\158\015\218\000\000\n\138\000\000\013\186\000\000\015\222\000\000\000\000\000\000\013\190\000\000\000\000\000\000\000\000\000\000\000\000\015\230\000\000\013\194\000\000\008\181\008\181\000\000\000\000\002\"\008\181\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\000\000\001\014\000\000\001\022\nZ\001\030\0012\001:\001>\n^\000\000\000\000\000\000\000\000\000\000\nb\000\000\000\000\000\000\000\000\000\000\000\000\001F\000\000\000\000\000\000\001\166\nr\000\000\013v\000\000\000\000\013z\000\000\000\000\000\000\001N\000\000\014\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\013\130\000\000\000\000\000\000\015>\016R\000\000\000\000\000\000\001\218\000\000\001\222\000\000\001b\0166\015F\000\000\000\000\000\000\013\150\001\230\015J\000\000\013\154\011\142\001\242\000\000\013\158\013\162\n\134\013\166\000\000\000\000\000\000\012\149\015N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\226\013\170\000\000\000\000\015R\015V\013\174\015Z\000\000\000\n\000\000\015n\000\000\000\000\000\000\000\000\000\000\015z\013\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\154\000\000\000\000\000\000\015\158\015\218\000\000\n\138\000\000\013\186\000\000\015\222\000\000\000\000\000\000\013\190\000\000\000\000\000\000\000\000\000\000\000\000\015\230\000\000\013\194\000\000\012\149\012\149\000\000\000\000\002\"\012\149\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\000\000\001\014\000\000\001\022\nZ\001\030\0012\001:\001>\n^\000\000\000\000\000\000\000\000\000\000\nb\000\000\000\000\000\000\000\000\000\000\000\000\001F\000\000\000\000\000\000\001\166\nr\000\000\013v\000\000\000\000\013z\000\000\000\000\000\000\001N\000\000\014\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\013\130\000\000\000\000\000\000\015>\025\190\000\000\000\000\000\000\001\218\000\000\001\222\000\000\001b\0166\015F\000\000\000\000\000\000\013\150\001\230\015J\000\000\013\154\011\142\001\242\000\000\013\158\013\162\n\134\013\166\000\000\000\000\000\000\000\000\015N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\226\013\170\000\000\000\000\015R\015V\013\174\015Z\000\000\000\n\000\000\015n\000\000\000\000\000\000\000\000\000\000\015z\013\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\154\000\000\000\000\000\000\015\158\015\218\000\000\n\138\000\000\013\186\000\000\015\222\000\000\000\000\000\000\013\190\000\000\000\000\000\000\000\000\000\000\000\000\015\230\000\000\013\194\000\000\012\225\012\225\000\000\000\000\002\"\012\225\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\000\000\001\014\000\000\001\022\nZ\001\030\0012\001:\001>\n^\000\000\000\000\000\000\000\000\000\000\nb\000\000\000\000\000\000\000\000\000\000\000\000\001F\000\000\000\000\000\000\001\166\nr\000\000\013v\000\000\000\000\013z\000\000\000\000\000\000\001N\000\000\014\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\013\130\000\000\000\000\000\000\015>\025\190\000\000\000\000\000\000\001\218\000\000\001\222\000\000\001b\0166\015F\000\000\000\000\000\000\013\150\001\230\015J\000\000\013\154\011\142\001\242\000\000\013\158\013\162\n\134\013\166\000\000\000\000\000\000\000\000\015N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\226\013\170\000\000\000\000\015R\015V\013\174\015Z\000\000\000\n\000\000\015n\000\000\000\000\000\000\000\000\000\000\015z\013\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\154\000\000\000\000\000\000\015\158\015\218\000\000\n\138\000\000\013\186\000\000\015\222\000\000\000\000\000\000\013\190\000\000\000\000\000\000\000\000\000\000\000\000\015\230\000\000\013\194\000\000\012\221\012\221\000\000\000\000\002\"\012\221\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\000\000\001\014\000\000\001\022\nZ\001\030\0012\001:\001>\n^\000\000\000\000\000\000\000\000\000\000\nb\000\000\000\000\000\000\000\000\000\000\000\000\001F\000\000\000\000\000\000\001\166\nr\000\000\013v\000\000\000\000\013z\000\000\000\000\000\000\001N\000\000\014\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\013\130\000\000\000\000\000\000\015>\017\254\000\000\000\000\000\000\001\218\000\000\001\222\000\000\001b\0166\015F\000\000\000\000\000\000\013\150\001\230\015J\000\000\013\154\011\142\001\242\000\000\013\158\013\162\n\134\013\166\000\000\000\000\000\000\000\000\015N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\226\013\170\000\000\000\000\015R\015V\013\174\015Z\000\000\000\n\000\000\015n\000\000\000\000\000\000\000\000\000\000\015z\013\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\154\000\000\000\000\000\000\015\158\015\218\000\000\n\138\000\000\013\186\000\000\015\222\000\000\000\000\000\000\013\190\000\000\000\000\000\000\000\000\000\000\000\000\015\230\000\000\013\194\000\000\000R\000V\000f\000\170\002\"\000\174\nR\000\178\000\246\nV\000\254\000\000\001\014\000\000\001\022\nZ\001\030\0012\001:\001>\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\001F\000\000\000\000\000\000\001\166\000\000\000\000\013v\000\000\000\000\013z\000\000\000\000\000\000\001N\000\000\018~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\142\013\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\001b\000\000\000\000\000\000\000\000\000\000\013\150\001\230\000\000\000\000\013\154\001\238\001\242\000\000\013\158\013\162\n\134\013\166\000\000\000\000\000\000\000\000\000\000\000\000\007\214\005\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\226\013\170\000\000\000\000\005\233\005\233\013\174\000\000\005\233\000\n\000\000\005\233\008\026\005\233\000\000\005\233\000\000\005\233\013\182\008Z\005\233\000\000\005\233\005\233\000\000\005\233\005\233\000\000\005\233\n\129\n\129\005\233\005\233\n\129\005\233\005\233\005\233\000\000\n\138\000\000\013\186\005\233\018\146\005\233\005\233\000\000\013\190\000\000\005\233\005\233\005\233\005\233\005\233\018\154\005\233\013\194\005\233\005\233\000Z\005\233\000\000\002\"\005\233\005\233\000\000\005\233\008\186\000\000\n\129\005\233\005\233\000Z\000\000\005\233\t\n\005\233\000\000\000\000\005\233\000Z\005\233\n\018\005\233\005\233\000\000\005\233\000Z\000\000\000\000\000\000\005\233\000\000\000\000\n\129\005\233\005\233\000\000\000\000\005\233\000\000\000\000\000\000\000\000\005\233\005\233\005\233\005\233\005\233\005\233\000\000\005\233\005\233\000\000\005\233\000\000\005\233\005\233\005\233\005\233\005\233\005\233\005\233\000\000\005\233\005\233\005\233\005\233\000\000\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\000\000\000\000\000\000\005\233\000\000\000\000\005\233\000\000\000\000\000\000\005\233\005\233\n\129\000\000\005\233\000\000\000\000\000\000\005\233\005\233\005\233\005\233\000\000\005\233\005\233\005\233\005\233\005\233\000\000\000\000\000\000\000\000\005\233\005\233\000\000\000\000\000\000\005\233\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\000\000\001\030\0012\001:\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\001F\000\000\000\000\000\000\001\166\000\000\000\000\001\170\000\000\000\000\001\174\000\000\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\001\178\000\000\000\000\001\182\000\000\000\000\000\000\000\000\000\000\001\206\001\202\000\000\001\210\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\001b\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\001\234\001\238\001\242\002F\001\246\001\250\000\000\001\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\002\002\000\000\000\000\000\000\000\000\002\006\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\014\004U\004U\004U\004U\000\000\004U\000\000\004U\004U\002\018\004U\000\000\004U\000\000\004U\000\000\004U\004U\004U\004U\000\000\002\022\000\000\000\000\000\000\000\000\000\000\002\026\000\000\001r\004i\000\000\000\000\004U\000\000\000\000\002\030\000\000\000R\007\190\007\198\000\170\002\"\000\174\000\000\008\n\008N\004U\008V\021*\008f\000\000\008n\000\000\008v\008\130\001:\008\138\000\000\000\000\000\000\021.\000\000\000\000\000\000\000\000\000\000\004U\000\000\000\000\0212\008\146\0216\004U\000\000\000\000\000\000\000\000\000\000\000\000\021:\004U\000\000\000\000\000\000\024\166\000\000\000\000\021F\000\000\000\000\000\000\021J\000\000\000\000\000\000\000\000\000\000\021N\000\000\000\000\000\000\000\000\000\000\000\000\008\170\000\000\000\000\000\000\000\000\022\198\000\000\000\000\000\000\021R\023\194\000\000\nb\000\000\008\182\000\000\000\000\000\000\004U\000\000\000\000\000\000\000\000\001\166\nr\000\000\013v\000\000\000\000\013z\000\000\000\000\000\000\000\000\021V\014\226\000\000\021Z\000\000\000\000\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\000\000\000\000\021^\000\000\000\000\015j\013\130\021b\000\n\021f\015>\021j\021n\004U\021r\001\218\000\000\001\222\000\000\000\000\021v\015F\000\000\021z\000\000\013\150\001\230\015J\000\000\013\154\011\142\001\242\000\000\013\158\013\162\000\000\013\166\000\000\021~\000\000\000\000\015N\021\130\021\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\226\013\170\000\000\000\000\015R\015V\013\174\015Z\000\000\000\n\000\000\015n\000\000\000\000\000\000\000\000\nb\015z\013\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\166\nr\000\000\013v\015\154\000\000\013z\000\000\015\158\015\218\000\000\000\000\014\226\013\186\000\000\015\222\000\000\000\000\000\000\013\190\000\000\001\178\000\000\000\000\000\000\000\000\015\230\000\000\013\194\000\000\013~\013\130\000\000\000\000\002\"\015>\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\015F\000\000\000\000\011\226\013\150\001\230\015J\000\000\013\154\011\142\001\242\000\000\013\158\013\162\000\000\013\166\000\000\000\000\000\000\000\000\015N\000\000\000\000\000\000\000\000\011\234\000\000\000\000\000\000\000\000\000\000\n\226\013\170\000\000\000\000\015R\015V\013\174\015Z\011\242\000\n\000\000\015n\000\000\000\000\0122\012:\000\000\015z\013\182\000\000\000\000\000\000\000\000\000\000\012\018\000\000\000\000\011\250\000\000\012\n\013\233\015\154\000\000\013\233\000\000\015\158\015\218\000\000\000\000\000\000\013\186\000\000\015\222\000\000\000\000\000\000\013\190\000\000\000\000\000\000\012\026\000\000\013\233\015\230\000\000\013\194\013\233\000\000\000\000\002:\013\233\002\"\000\000\000\000\000\000\000\000\013\233\000\000\000\000\013\233\013\233\000\000\013\233\013\233\000\000\000\000\002B\000\000\013\233\005&\000\000\000\000\013\233\000\000\000\000\013\233\000\000\013\233\013\233\012\"\000\000\000\000\000\000\000\000\000\000\000\000\012\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\013\233\005]\013\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\013\233\000\000\000\000\012B\012*\000\000\000\000\0052\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\013\233\013\233\000\000\013\233\013\233\0056\000\000\013\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005>\000\000\000\000\000\000\000\000\013\233\000\000\000\000\013\233\013\233\013\233\013\233\000\000\000\000\000\000\000\000\013\233\013\233\013\233\000\000\013\233\013\233\013\233\001=\001=\001=\001=\000\000\001=\000\000\001=\001=\000\000\001=\000\000\001=\000\000\001=\000\000\001=\001=\001=\001=\000\000\000\000\004\245\000\000\021\026\004\245\000\000\000\000\000\000\000\000\000\000\000\000\001=\001=\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001=\000\000\004\245\000\000\000\000\001=\004\245\000\000\001=\004\245\004\245\000\000\001=\000\000\000\000\021\030\004\245\000\000\001=\004\245\004\245\000\000\004\245\004\245\000\000\001=\004\245\000\000\004\245\004\245\001=\000\000\004\245\000\000\000\000\004\245\000\000\004\245\004\245\001=\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\004\245\001=\004\245\000\000\001=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\000\000\000\000\001=\000\000\000\000\004\245\000\000\001=\000\n\001=\000\000\000\000\001=\000\000\021\"\000\000\000\000\000\000\000\000\000\000\001=\000\000\000\000\001=\004\245\004\245\000\000\004\245\005\017\004\245\000\000\004\245\000\000\000\000\000\000\000\000\000\000\000\000\001=\004\245\000\000\004\249\001=\001=\004\249\000\000\000\000\004\245\000\000\004\245\000\000\000\000\000\000\021\226\000\000\004\245\004\245\004\245\000\000\004\245\004\245\004\245\000\000\004\249\000\000\000\000\000\000\004\249\000\000\000\000\004\249\004\249\000\000\000\000\000\000\000\000\000\000\004\249\000\000\000\000\004\249\004\249\000\000\004\249\004\249\000\000\000\000\004\249\014=\004\249\004\249\014=\000\000\004\249\000\000\000\000\004\249\000\000\004\249\004\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014=\000\000\000\000\000\000\014=\000\000\000\000\013\214\014=\004\249\000\000\004\249\000\000\000\000\014=\000\000\000\000\014=\014=\000\000\014=\014=\004\249\000\000\013\222\000\000\014=\013\234\000\000\004\249\014=\000\000\000\000\014=\000\000\014=\014=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\249\004\249\000\000\004\249\005\021\004\249\000\000\004\249\014=\000\000\014=\000\000\000\000\000\000\000\000\004\249\000\000\000\000\000\000\000\000\004\249\014=\000\000\004\249\000\000\004\249\000\000\000\000\013\246\000\000\000\000\004\249\004\249\004\249\000\000\004\249\004\249\004\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014=\014=\000\000\014=\000\000\013\250\000\000\014=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014=\000\000\014=\000\000\000\000\000\000\000\000\000\000\014=\014=\014=\000\000\014=\014=\014=\n}\n}\n}\n}\000\000\n}\000\000\n}\n}\000\000\n}\000\000\n}\000\000\n}\000\000\n}\n}\n}\n}\000\000\000\000\001\137\000\000\000\000\001\137\000\000\000\000\000\000\000\000\000\000\000\000\n}\n}\n}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n}\000\000\001\137\000\000\000\000\n}\001\137\000\000\021\242\000\000\001\137\000\000\021\250\000\000\000\000\000\000\001\137\000\000\n}\001\137\001\137\000\000\001\137\001\137\000\000\n}\000\000\000\000\001\137\000\000\n}\000\000\001\137\000\000\000\000\001\137\000\000\001\137\001\137\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\000\000\000\000\001\137\n}\001\137\000\000\n}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\137\000\000\000\000\000\000\n}\000\000\000\000\000\000\000\000\n}\000\000\n}\000\000\000\000\n}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n}\000\000\000\000\n}\001\137\002V\000\000\001\137\001\137\000\000\000\000\001\137\000\000\000\000\000\000\000\000\000\000\000\000\n}\000\000\000\000\000\000\022N\n}\001\137\000\000\000\000\001\137\001\137\001\137\001\137\000\000\000\000\000\000\000\000\002\254\001\137\001\137\000\000\001\137\001\137\001\137\nm\nm\nm\nm\000\000\nm\000\000\nm\nm\000\000\nm\000\000\nm\000\000\nm\000\000\nm\nm\nm\nm\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nm\nm\nm\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nm\000\000\000\000\000\000\000\000\nm\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nm\nq\nq\nq\nq\000\000\nq\nm\nq\nq\000\000\nq\nm\nq\000\000\nq\000\000\nq\nq\nq\nq\nm\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nq\nq\nq\000\000\000\000\000\000\000\000\000\000\nm\000\000\nq\nm\000\000\000\000\000\000\nq\000\000\000\000\022R\000\000\000\000\000\000\000\000\000\000\nm\000\000\000\000\000\000\nq\nm\000\000\nm\000\000\000\000\nm\nq\000\000\000\000\000\000\000\000\nq\000\000\nm\000\000\000\000\nm\000\000\000\000\000\000\nq\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nm\000\000\000\000\000\000\021\246\nm\000\000\000\000\000\000\nq\011\150\000\000\nq\000\000\000\000\000\000\000\000\000\000\004M\000\000\000\000\004M\000\000\000\000\004M\nq\000\000\000\000\000\000\000\000\nq\000\000\nq\000\000\000\000\nq\000\000\000\000\000\000\004M\000\000\000\000\000\000\nq\000\000\000\000\nq\000\000\004M\004M\000\000\000\000\004M\004M\004M\000\000\000\000\000\000\004M\000\000\004M\nq\000\000\000\000\000\000\000\000\nq\000\000\004M\004M\000\000\000\000\004M\004M\004M\000\000\004M\004M\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004M\004M\000\000\000\000\000\000\000\000\004M\000\000\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004M\000\000\004M\000\000\004M\000R\007\190\007\198\000\170\000\000\000\174\000\000\008\n\008N\004M\008V\000\000\008f\000\000\008n\004M\008v\008\130\001:\008\138\000\000\004M\002v\000\000\004M\002\198\000\000\000\000\000\000\000\000\004M\000\000\022Z\008\146\022v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\130\000\000\002~\000\000\000\000\008\154\002\017\000\000\000\000\000\000\002\017\000\000\000\000\000\000\000\000\000\000\002\134\000\000\022\154\002\017\002\017\000\000\002\230\002\238\000\000\008\170\000\000\000\000\002\017\000\000\022\198\000\000\002\166\000\000\000\181\002\142\000\000\002\158\002\017\008\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\234\000\000\002\174\022\230\002\017\000\000\023>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\242\002\017\000\000\000\000\000\000\023V\000\181\000\181\000\000\000\000\023b\000\000\008\133\000\000\000\000\023\146\012\018\000\000\000\000\011\250\000\000\012\n\000\000\023\158\000\000\000\000\024~\002\182\000\000\000\000\002\017\002\017\000\000\000\000\002\150\000}\000\000\000\000\000}\000\000\000\000\024\138\012\026\000\000\000\000\000\000\024\162\002\017\000\000\000\000\002\017\002\017\002\017\002\017\000\000\000\000\000\000\002~\000\000\002\017\002\017\000}\002\246\002\190\002\017\000}\000\000\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000}\000}\000\000\000}\000}\000\000\000\000\012\"\000e\000}\000\000\000e\000\000\002\166\012\002\000\000\002\142\000\000\002\158\000}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\000\000\000\000e\000\000\000\000\000\000\000e\000\000\000\000\000\000\000e\002\174\000\000\000}\000\181\012*\002\134\000\000\000\000\000e\000e\000\000\000e\000e\000}\000\000\000\000\000\000\000e\000\000\000\000\000\000\000e\000\000\000\000\002\142\000\000\002\158\000e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\000\000\000}\000}\000\000\000\000\002\150\000e\000\000\000e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000}\000e\000\000\000}\000}\000}\000}\000\000\000\000\000\000\000\000\000\000\000}\000}\000\000\000}\002\190\000}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\000\000\000\000\000e\000e\000\000\000\000\002\150\000]\000\000\000\000\000]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e\000\000\000\000\000e\000e\000e\000e\000\000\000\000\000\000\000]\000\000\000e\000e\000]\000e\000e\000e\000]\000\000\000\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\000\000a\000\000\000]\000\000\000\000\002\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\000a\000\000\000\000\000\000\000a\000\000\000\000\000\000\000a\000]\000\000\000]\000\000\000\000\000a\000\000\000\000\000a\000a\000\000\000a\000a\000]\000\000\000\000\000\000\000a\000\000\000\000\000\000\000a\000\000\000\000\002\142\000\000\000a\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\002\150\000a\000\000\000a\000\000\000\000\000\000\000\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]\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\000\000\000a\000a\000\000\000\000\002\150\000q\000\000\000\000\000q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000a\000\000\000\000\000a\000a\000a\000a\000\000\000\000\000\000\002~\000\000\000a\000a\000q\000a\000a\000a\000q\000\000\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000q\000q\000\000\000q\000q\000\000\000\000\000\000\000i\000q\000\000\000i\000\000\000q\000\000\000\000\002\142\000\000\002\158\000q\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\000i\000\000\000\000\000\000\000i\002\174\000\000\000q\000\000\000\000\002\134\000\000\000\000\000i\000i\000\000\000i\000i\000q\000\000\000\000\000\000\000i\000\000\000\000\000\000\000i\000\000\000\000\002\142\000\000\002\158\000i\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\000q\000q\000\000\000\000\002\150\000i\000\000\000i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000q\000i\000\000\000q\000q\000q\000q\000\000\000\000\000\000\000\000\000\000\000q\000q\000\000\000q\000q\000q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000i\000\000\000\000\000i\000i\000\000\000\000\002\150\000m\000\000\000\000\000m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000i\000\000\000\000\000i\000i\000i\000i\000\000\000\000\000\000\002~\000\000\000i\000i\000m\000i\000i\000i\000m\000\000\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000m\000m\000\000\000m\000m\000\000\000\000\000\000\000u\000m\000\000\000u\000\000\000m\000\000\000\000\002\142\000\000\002\158\000m\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\000u\000\000\000\000\000\000\000u\002\174\000\000\000m\000\000\000\000\002\134\000\000\000\000\000u\000u\000\000\000u\000u\000m\000\000\000\000\000\000\000u\000\000\000\000\000\000\002\166\000\000\000\000\002\142\000\000\002\158\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000m\000\000\000\000\000m\000m\000\000\000\000\002\150\002\174\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000m\000u\000\000\000m\000m\000m\000m\000\000\000\000\000\000\000\000\000\000\000m\000m\000\000\000m\000m\000m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\000\000\000u\000u\000\000\000\000\002\150\002v\000\000\000\000\000\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000u\000\000\000\000\000u\000u\000u\000u\000\000\000\000\000\000\002~\000\000\000u\000u\000\133\000u\000u\000u\000\133\000\000\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000\133\000\133\000\000\000\133\002\238\000\000\000\000\000\000\002v\000\133\000\000\000y\000\000\002\166\000\000\000\000\002\142\000\000\002\158\000\133\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\000y\000\000\000\000\000\000\000y\002\174\000\000\000\133\000\000\000\000\002\134\000\000\000\000\000y\000y\000\000\000y\000y\000\133\000\000\000\000\000\000\000y\000\000\000\000\000\000\002\166\000\000\000\000\002\142\000\000\002\158\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\000\000\000\133\000\133\000\000\000\000\002\150\002\174\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\133\000y\000\000\000\133\000\133\000\133\000\133\000\000\000\000\000\000\000\000\000\000\000\133\000\133\000\000\002\246\002\190\000\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\000\000\000y\000y\000\000\000\000\002\150\002v\000\000\000\000\000\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000y\000\000\000\000\000y\000y\000y\000y\000\000\000\000\000\000\002~\000\000\000y\000y\000\129\000y\002\190\000y\000\129\000\000\000\000\000\000\000\000\000\000\002\134\000\000\000\000\000\129\000\129\000\000\000\129\002\238\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\000\002\166\001\166\000\000\002\142\n\166\002\158\000\129\n\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\001\178\000\000\000\000\000\000\002\174\000\000\000\129\000\000\000\000\n\174\011\006\000\000\000\000\011n\011\134\011\138\000\000\000\129\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\206\001\230\000\000\000\000\n\210\011\142\001\242\000\000\n\214\n\218\000\000\n\222\000\000\000\000\002\182\000\000\000\000\000\129\000\129\000\000\000\000\002\150\000\000\000\000\000\000\000\000\000\000\n\226\n\230\000\000\000\000\000\000\000\000\n\234\000\129\000\000\000\n\000\129\000\129\000\129\000\129\000\000\000\000\000\000\000\000\n\242\000\129\000\129\000\000\000\129\002\190\000\129\000\000\006\025\000\000\011\146\001\166\011\174\000\000\n\166\000\000\000\000\n\170\000\000\000\000\000\000\000\000\n\246\000\000\000\000\000\000\000\000\000\000\n\250\000\000\000\000\000\000\001\178\000\000\012\162\000\000\000\000\n\254\000\000\000\000\000\000\n\174\011\006\002\"\000\000\011n\011\134\011\138\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\206\001\230\000\000\000\000\n\210\011\142\001\242\000\000\n\214\n\218\000\000\n\222\000\000\000\000\000\000\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\226\n\230\000\000\000\000\000\000\000\000\n\234\000\000\001\166\000\n\000\000\n\166\000\000\000\000\n\170\000\000\000\000\000\000\n\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\025\000\000\011\146\001\178\011\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\174\011\006\n\246\000\000\011n\011\134\011\138\000\000\n\250\000\000\001\218\000\000\001\222\000\000\012\146\000\000\000\000\n\254\000\000\000\000\n\206\001\230\000\000\002\"\n\210\011\142\001\242\000\000\n\214\n\218\000\000\n\222\000\000\000\000\000\000\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\226\n\230\000\000\000\000\000\000\000\000\n\234\000\000\001\166\000\n\000\000\n\166\000\000\000\000\n\170\000\000\000\000\000\000\n\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\025\000\000\011\146\001\178\011\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\174\011\006\n\246\000\000\011n\011\134\012^\000\000\n\250\000\000\001\218\000\000\001\222\000\000\005u\000\000\000\000\n\254\000\000\000\000\n\206\001\230\000\000\002\"\n\210\011\142\001\242\000\000\n\214\n\218\000\000\n\222\000\000\000\000\000\000\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\226\n\230\000\000\000\000\000\000\000\000\n\234\000\000\001\166\000\n\000\000\n\166\000\000\000\000\n\170\000\000\000\000\000\000\n\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\025\000\000\011\146\001\178\011\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\174\011\006\n\246\000\000\011n\011\134\012n\000\000\n\250\000\000\001\218\000\000\001\222\000\000\001\189\000\000\000\000\n\254\000\000\000\000\n\206\001\230\000\000\002\"\n\210\011\142\001\242\000\000\n\214\n\218\0031\n\222\000j\0031\000r\000\000\000\130\0031\000\000\0031\000\000\000\000\000\000\000\138\0031\0031\000\000\n\226\n\230\000\000\000\000\000\000\000\000\n\234\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\242\000\000\000\000\000\000\000\000\000\000\000\146\0031\006\025\000\000\000\000\0031\011\174\000\000\000\000\000\000\000\000\003-\000\000\000\182\003-\000\190\n\246\000\206\003-\000\000\003-\0031\n\250\000\000\000\214\003-\003-\000\000\001\205\000\000\000\000\n\254\000\000\0031\000\162\000\000\000\000\002\"\000\000\000\000\000\000\0031\000\000\000\000\000\000\0031\0031\000\000\000\000\000\000\000\000\000\000\000\222\003-\000\000\0031\000\000\003-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0031\000\000\000\000\000\000\000\000\000\000\000\000\003-\000\000\000\000\0031\000\000\000\000\000\000\000\000\0031\000\000\000\000\000\000\003-\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003-\000\000\000\000\000\000\003-\003-\000\000\001\137\000\000\000\000\001\137\000\000\000\000\000\000\003-\000\000\000\000\000\000\000\000\0031\000\000\000\000\0031\0031\000\000\003-\0031\000\000\000\000\001\137\000\000\0031\0031\001\137\000\000\003-\0031\001\137\000\000\000\000\003-\000\000\000\000\001\137\000\000\000\000\000\000\000\000\000\000\001\137\001\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\137\001\161\000\000\001\137\001\161\001\137\001\137\000\000\000\000\000\000\000\000\000\000\003-\000\000\000\000\003-\003-\000\000\000\000\003-\000\000\000\000\000\000\001\161\003-\003-\001\137\001\161\001\137\003-\000\000\001\161\000\000\000\000\000\000\000\000\000\000\001\161\000\000\001\137\001\161\001\161\000\000\001\161\001\161\000\000\000\000\000\000\000\000\001\161\000\000\000\000\000\000\001\161\000\000\000\000\001\161\000\000\001\161\001\161\000\000\000\000\000\000\000\000\000\000\001\137\002N\000\000\001\137\001\137\000\000\000\000\001\137\000\000\000\000\000\000\000\000\000\000\000\000\001\161\000\000\001\161\000\000\000\000\000\000\001\137\000\000\000\000\001\137\001\137\000\000\001\137\001\161\000\000\000\000\000\000\003\n\001\137\001\137\000\000\001\137\001\137\001\137\000\000\000\000\000\000\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\161\014&\000\000\001\161\000\000\000\000\000\000\001\161\000\000\000\000\000\000\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\161\000\000\001\161\000\000\000\000\000\000\000\000\000\000\014.\001\161\001\161\000\000\001\161\001\161\001\161\000R\000V\000f\000\170\007\186\000\174\nR\000\178\000\246\nV\000\254\000\000\001\014\000\000\001\022\nZ\001\030\0012\001:\001>\n^\001\166\000\000\000\000\001\170\000\000\000\000\001\174\000\000\000\000\000\000\000\000\000\000\001F\000\000\000\000\014\230\000\000\000\000\000\000\000\000\000\000\001\178\000\000\000\000\001\182\000\000\001N\000\000\000\000\000\000\001\198\001\202\000\000\001\210\000\000\n\162\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\001^\000\000\000\000\000\000\001\226\001\230\001j\011\158\001\234\001\238\001\242\000\000\001\246\001\250\001b\001\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\n\134\000\000\002\002\000\000\000\000\000\000\000\000\002\006\000\000\021*\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\014\000\000\021.\000\000\000\000\000\000\000\000\000\n\000\000\023f\002\018\0212\000\000\0216\n\213\n\213\000\000\000\000\000\000\000\000\000\000\021:\002\022\000\000\000\000\000\000\021>\000\000\002\026\021F\000\000\008\149\000\000\021J\000\000\006\017\n\138\002\030\000\000\021N\000\000\000\000\000\000\002\"\000\000\006\017\000\000\000\000\000\000\000\000\006\017\023\022\000\000\n\213\000\000\021R\000\000\000\000\000\000\000\000\000\000\021*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021.\000\000\000\000\000\000\000\000\n\213\000\000\021V\000\000\0212\021Z\0216\000\000\000\000\000\000\000\000\n\169\000\000\000\000\021:\000\000\000\000\000\000\021^\021>\000\000\000\000\021F\021b\000\n\021f\021J\021j\021n\000\000\021r\000\000\021N\000\000\000\000\000\000\021v\000\000\000\000\021z\000\000\000\000\000\000\023\166\000\000\000\000\n\169\000\000\021R\000\000\000\000\000\000\000\000\000\000\021~\000\000\000\000\000\000\021\130\021\134\n\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\169\000\000\021V\000\000\000\000\021Z\000\000\000\000\000\000\000\000\000\000\001\166\000\000\000\000\001\170\000\000\000\000\001\174\021^\000\000\000\000\000\000\000\000\021b\000\n\021f\008\149\021j\021n\000\000\021r\000\000\001\178\000\000\000\000\001\182\021v\000\000\000\000\021z\000\000\001\198\001\202\000\000\001\210\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\001\222\021~\000\000\000\000\000\000\021\130\021\134\n\169\001\226\001\230\000\000\000\000\001\234\001\238\001\242\000\000\001\246\001\250\000\000\001\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\t:\005\233\000\000\002\002\000\000\000\000\000\000\000\000\002\006\000\000\000\000\000\n\t~\005\233\t\190\005\233\000\000\000\000\000\000\000\000\002\014\000\000\005\233\000\000\005\233\005\233\000\000\005\233\000\000\000\000\002\018\008\149\005\233\000\000\005\233\000\000\005\233\005\233\005\233\000\000\005\233\000\000\002\022\000\000\005\233\000\000\005\233\000\000\002\026\005\233\005\233\005\233\005\233\008\149\005\233\000\000\005\233\002\030\005\233\000\000\000\000\005\233\005\233\002\"\005\233\000\000\005\233\000Z\000\000\000\000\000\000\005\233\000\000\005\233\n>\005\233\000\000\000\000\005\233\000Z\005\233\000Z\000\000\005\233\000\000\005\233\000\000\000\000\000\000\000\000\000\000\005\233\000\000\000\000\005\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\233\000\000\005\233\005\233\005\233\005\233\000\000\000\000\000\000\005\233\005\233\005\233\000\000\005\233\005\233\000\000\005\233\000\000\005\233\000\000\000\000\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\000\000\005\233\000\000\000\000\000\000\005\233\000\000\005\233\005\233\014Z\005\233\005\233\014\170\000\000\000\000\005\233\005\233\000\000\000\000\000\000\000\000\000\000\000\000\005\233\000\000\005\233\000\000\005\233\005\233\005\233\005\233\014b\000\000\001%\000\000\002!\001%\000\000\000\000\002!\000\000\000\000\000\000\000\000\000\000\014j\000\000\000\000\002!\002!\000\000\014\186\014\194\000\000\000\000\014b\000\000\002!\000\000\001%\000\000\014\138\000\000\001%\014r\000\000\014\130\002!\000\000\014j\000\000\000\000\001%\001%\000\000\001%\001%\000\000\000\000\000\000\000\000\001%\000\000\000\000\000\000\014\138\000\000\014\146\014r\002!\014\130\001%\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\014\146\000\000\001%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\000\000\014\154\000\000\000\000\002!\000\000\000\000\000\000\014z\000\000\000\000\000\000\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!\014\154\002!\000\000\001%\000\000\000\000\000\000\014z\002!\002!\000\000\014\202\014\162\002!\000\000\000\000\001\013\000\000\000\000\001\013\000\000\000\000\000\000\001%\000\000\001%\000\000\000\000\000\000\000\000\000\000\000\000\001%\001%\000\000\001%\014\162\001%\001\013\000\000\001\005\000\000\001\013\001\005\000\000\000\000\001\013\000\000\000\000\000\000\000\000\000\000\014j\000\000\000\000\001\013\001\013\000\000\001\013\001\013\000\000\000\000\001\005\000\000\001\013\000\000\001\005\000\000\001\013\000\000\001\005\014r\000\000\014\130\001\013\000\000\001\005\000\000\000\000\001\005\001\005\000\000\001\005\001\005\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\001\005\000\000\001\013\014r\001\013\001\005\001\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\005\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\005\000\000\001\013\000\000\000\000\001\013\000\000\000\000\000\000\014z\000\000\000\000\000\000\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\013\001\005\001\013\000\000\001\005\000\000\000\000\000\000\014z\001\013\001\013\000\000\001\013\001\013\001\013\000\000\000\000\001\t\000\000\000\000\001\t\000\000\000\000\000\000\001\005\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\000\001\005\001\005\000\000\001\005\001\005\001\005\001\t\000\000\001\025\000\000\001\t\001\025\000\000\000\000\001\t\000\000\000\000\000\000\000\000\000\000\001\t\000\000\000\000\001\t\001\t\000\000\001\t\001\t\000\000\000\000\014b\000\000\001\t\000\000\001\025\000\000\001\t\000\000\001\025\014r\000\000\001\t\001\t\000\000\014j\000\000\000\000\001\025\001\025\000\000\001\025\001\025\000\000\000\000\000\000\000\000\001\025\000\000\000\000\000\000\001\025\000\000\001\t\014r\001\t\014\130\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\146\000\000\001\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025\000\000\001\t\000\000\000\000\001\t\000\000\000\000\000\000\014z\000\000\000\000\000\000\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\001\025\001\t\000\000\001\025\000\000\000\000\000\000\014z\001\t\001\t\000\000\001\t\001\t\001\t\000\000\000\000\001\017\000\000\000\000\001\017\000\000\000\000\000\000\001\025\000\000\001\025\000\000\000\000\000\000\000\000\000\000\000\000\001\025\001\025\000\000\001\025\001\025\001\025\014b\000\000\001\021\000\000\001\017\001\021\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\014j\000\000\000\000\001\017\001\017\000\000\001\017\001\017\000\000\000\000\014b\000\000\001\017\000\000\001\021\000\000\001\017\000\000\001\021\014r\000\000\014\130\001\017\000\000\014j\000\000\000\000\001\021\001\021\000\000\001\021\001\021\000\000\000\000\000\000\000\000\001\021\000\000\000\000\000\000\001\021\000\000\001\017\014r\001\017\014\130\001\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\146\000\000\001\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\001\017\000\000\000\000\001\017\000\000\000\000\000\000\014z\000\000\000\000\000\000\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\017\001\021\001\017\000\000\001\021\000\000\000\000\000\000\014z\001\017\001\017\000\000\001\017\001\017\001\017\000\000\000\000\001\029\000\000\000\000\001\029\000\000\000\000\000\000\001\021\000\000\001\021\000\000\000\000\000\000\000\000\000\000\000\000\001\021\001\021\000\000\001\021\001\021\001\021\014b\000\000\014Z\000\000\001\029\001-\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\014j\000\000\000\000\001\029\001\029\000\000\001\029\001\029\000\000\000\000\014b\000\000\001\029\000\000\001-\000\000\014\138\000\000\001-\014r\000\000\014\130\001\029\000\000\014j\000\000\000\000\001-\001-\000\000\001-\014\194\000\000\000\000\000\000\000\000\001-\000\000\000\000\000\000\014\138\000\000\014\146\014r\001\029\014\130\001-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\146\000\000\001-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001-\000\000\014\154\000\000\000\000\001\029\000\000\000\000\000\000\014z\000\000\000\000\000\000\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\014\154\001\029\000\000\001-\000\000\000\000\000\000\014z\001\029\001\029\000\000\001\029\001\029\001\029\000\000\000\000\014Z\000\000\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\001-\001-\000\000\014\202\014\162\001-\014b\000\000\014Z\000\000\001!\001)\000\000\000\000\001!\000\000\000\000\000\000\000\000\000\000\014j\000\000\000\000\001!\001!\000\000\001!\001!\000\000\000\000\014b\000\000\001!\000\000\001)\000\000\014\138\000\000\001)\014r\000\000\014\130\001!\000\000\014j\000\000\000\000\001)\001)\000\000\001)\014\194\000\000\000\000\000\000\000\000\001)\000\000\000\000\000\000\014\138\000\000\014\146\014r\001!\014\130\001)\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\014\146\000\000\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001)\000\000\014\154\000\000\000\000\001!\000\000\000\000\000\000\014z\000\000\000\000\000\000\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\154\001!\000\000\001)\000\000\000\000\000\000\014z\001!\001!\000\000\001!\014\162\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001)\001\166\001)\000\000\001\170\000\000\000\000\001\174\000\000\001)\001)\000\157\001)\014\162\001)\000\000\018\130\000\000\000\000\000\000\000\000\000\000\001\178\000\000\000\000\001\182\000\000\000\000\000\000\000\000\000\000\001\198\001\202\000\157\001\210\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\011\242\000\000\000\000\000\000\001\226\001\230\000\157\000\157\001\234\001\238\001\242\000\000\001\246\001\250\000\000\001\254\000\157\000\000\000\000\011\250\000\000\012\n\000\000\000\000\001\166\000\000\000\000\001\170\000\000\000\000\001\174\000\000\002\002\000\000\000\000\000\000\000\000\002\006\000\000\000\000\000\n\000\000\000\157\000\000\000\000\001\178\000\000\000\000\001\182\002\014\000\000\000\000\000\000\000\000\001\198\0076\000\000\001\210\000\000\002\018\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\002\022\000\000\000\000\001\226\001\230\000\000\002\026\001\234\001\238\001\242\000\157\001\246\001\250\000\000\001\254\002\030\000\000\012\002\000\000\000\000\000\000\002\"\000\000\001\166\000\000\000\000\001\170\000\000\000\000\001\174\000\157\002\002\000\000\000\000\000\000\000\000\002\006\000\000\000\000\000\n\000\000\000\000\000\000\000\000\001\178\000\157\000\157\001\182\002\014\000\000\000\000\000\000\000\000\001\198\002\n\000\000\001\210\000\000\002\018\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\002\022\000\000\000\000\001\226\001\230\000\000\002\026\001\234\001\238\001\242\000\000\001\246\001\250\000\000\001\254\002\030\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\006\030\002\002\000\000\000\000\000\000\000\000\002\006\000\000\004E\000\n\nR\004E\000\000\nV\004E\000\000\000\000\025\138\002\014\nZ\000\000\000\000\000\000\000\000\n^\025\142\000\000\000\000\002\018\004E\000\000\000\000\004E\000\000\000\000\000\000\000\000\000\000\004E\004E\002\022\004E\000\000\000\000\000\000\000\000\002\026\000\000\004E\000\000\004E\000\000\000\000\000\000\000\000\002\030\016\162\000\000\004E\004E\000\000\002\"\004E\004E\004E\000\000\004E\004E\000\000\004E\000\000\004\245\016\166\000\000\004\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\000\000\000\000\000\000\004E\001\230\004\245\004E\000\000\012\250\001\242\000\000\000\000\004\245\004\245\000\000\004E\000\000\000\000\000\000\004\245\000\000\000\000\000\000\000\000\000\000\004\245\004\245\000\000\000\000\004\245\000\000\000\000\004\245\000\000\021*\004\245\000\000\004E\004\245\000\n\004\245\004\245\000\000\004E\004\169\000\000\021.\000\000\000\000\000\000\000\000\000\000\004E\000\000\000\000\0212\000\000\0216\004E\000\000\000\000\004\245\000\000\000\000\000\000\021:\000\000\000\000\000\000\000\000\021>\000\000\000\000\021F\000\000\000\000\000\000\021J\000\000\000\000\000\000\004\245\000\000\021N\000\000\000\000\000\000\007\145\007\145\000\000\000\000\000\000\007\145\000\000\022\162\000\000\000\000\000\000\000\000\021R\004\245\004\245\000\000\000\000\005\017\004\245\000\000\004\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\000\000\000\000\000\000\004\245\000\000\n\169\004\245\021V\000\000\000\000\021Z\000\000\000\000\000\000\004\245\000\000\000\000\000\000\004\245\004\245\000\000\000\000\000\000\021^\000\000\000\000\000\000\000\000\021b\000\n\021f\000\000\021j\021n\000\000\021r\005\233\000\000\000\000\005\233\000v\021v\005\233\005\233\021z\005\233\000\194\000\000\000\000\005\233\005\233\005\233\000\000\000\000\000\000\000\000\005\233\005\233\000\000\021~\000\000\000\000\000\000\021\130\021\134\n\169\005\233\000\000\000\000\005\233\001\002\000\000\000\000\005\233\000\000\005\233\005\233\000\000\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\000\000\000\000\005\233\000\000\005\233\005\233\000\000\000\000\000\000\000\000\000\000\000\000\005\233\000\000\000\000\000\000\001f\000\000\005\233\000\000\000\000\000Z\005\233\000\000\005\233\000\000\005\233\000Z\000\000\000\000\005\233\000\000\005\233\000\000\000\000\000\000\005\233\005\233\005\233\000\000\000\000\000\000\005\233\005\233\000\000\000\000\005\233\000\000\000\000\000\000\000\000\000Z\005\233\000\000\005\233\000\000\004\030\005\233\000\000\000\000\000\000\000Z\005\233\005\233\005\233\000\000\005\233\005\233\000\000\000\000\000\000\000\000\005\233\005\233\000\000\000\000\005\233\005\233\005\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\233\005\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\233\000\000\000\000\000\000\000\000\005\233\005\233\000\000\000\000\005\233\005\233\000\000\005\233\005\233\001\166\005\233\005\233\001\186\005\233\005\233\001\190\000\000\000\000\005\233\005\233\005\233\000\000\000\000\000\000\005\233\000\000\000\000\000\000\000\000\000\000\001\178\005\233\000\000\001\182\005\233\005\233\000\000\000\000\005\233\001\194\001\214\005\233\001\210\005\233\005\233\005\233\000\000\000\000\005\233\001\218\000\000\001\222\000\000\005\233\005\233\000\000\000\000\000\000\005\233\005j\001\230\000\000\000\000\005n\001\238\001\242\000\000\005r\005v\000\000\005z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\166\000\000\000\000\001\186\000\000\000\000\001\190\000\000\005~\000\000\000\000\000\000\000\000\005\130\000\000\000\000\000\n\000\000\000\000\000\000\000\000\001\178\000\000\000\000\001\182\005\138\000\000\000\000\000\000\000\000\001\194\007\030\000\000\001\210\005\233\000\000\000\000\005\233\003F\000\000\001\218\005\233\001\222\005\233\000\000\000\000\000\000\005\142\005\233\005\233\005j\001\230\000\000\005\146\005n\001\238\001\242\000\000\005r\005v\005\233\005z\005\150\005\233\003\138\000\000\005\233\005\233\002\"\005\233\003\202\000\000\000\000\005\233\005\233\005\233\005\233\000\000\005~\000\000\005\233\005\233\000\000\005\130\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\138\005\233\000\000\000\000\000\000\004\242\000\000\005\233\000\000\000\000\000Z\005\233\000\000\005\233\000\000\000\000\000\000\005\233\000\000\000\000\000\000\005\233\005\142\000\000\000\000\005\233\005\233\005\233\005\146\000\000\000\000\007f\000\000\005\233\000\000\005\233\000Z\005\150\000\000\005\233\000\000\000\000\000Z\002\"\000\000\005\233\005\233\005\233\000\000\000\000\000\000\005\233\005\233\005\233\000\000\000\000\005\233\005\233\005\233\000\000\000\000\005\233\000\000\000\000\000\000\000\000\000\000\005\233\000\000\000\000\000\000\000\000\005\233\000\000\000\000\000\000\000\000\000\000\005\233\000\000\000\000\000\000\005\233\000\000\000\000\000\000\000\000\005\233\005\233\000\000\000\000\000\000\005\233\005\233\000\000\005\233\005\233\000\000\000\000\005\233\000\000\000\000\000\000\000\000\005\233\005\233\000\000\000\000\000\000\005\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\233\000\000\000\000\005\233\005\233\001\166\005\233\005\233\001\186\005\233\005\233\001\190\005\233\005\233\000\000\000\000\000\000\005\233\005\233\005\233\000\000\000\000\000\000\005\233\000\000\000\000\001\178\000\000\000\000\001\182\000\000\000\000\000\000\000\000\000\000\001\194\005\134\000\000\001\210\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005j\001\230\000\000\000\000\005n\001\238\001\242\000\000\005r\005v\000\000\005z\000\000\000\000\000\000\000\000\000\000\006R\000\000\000\000\006\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005~\000\000\000\000\000\000\000\000\005\130\000\000\000\000\000\n\000\000\000\000\006Z\000\000\000\000\000\000\000\000\000\000\005\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006b\000\000\000\000\000\000\002\025\000\000\006\178\006\186\000\000\000\000\000\000\000\000\000\000\000\000\005\142\000\000\006\130\000\000\000\000\006j\005\146\006z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\150\000\000\000R\000V\000f\000\170\002\"\000\174\nR\000\178\000\246\nV\000\254\006\138\001\014\025v\001\022\nZ\001\030\0012\001:\001>\n^\025z\014!\000\000\000\000\014!\000\000\000\000\000\000\000\000\000\000\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\014!\000\000\000\000\001N\000\000\000\000\006\146\005\170\000\000\002\025\000\000\000\000\000\237\006r\014!\000\237\000\000\000\000\014!\000\000\014!\014!\000\000\001^\005\178\000\000\000\000\005\190\000\000\001j\014!\002\025\000\000\014!\006Z\014!\000\000\001b\000\000\000\000\000\000\006\194\006\154\000\000\000\000\000\000\000\000\000\000\006b\000\000\000\000\000\000\000\237\000\000\000\237\000\237\014!\001\166\000\000\000\000\n\166\000\000\000\000\n\170\006\130\000\000\000\000\006j\000\000\006z\000\000\000\000\000\000\000\000\000\000\000\000\005\202\000\000\001\178\000\n\000\000\000\000\000\000\000\000\004\149\000\000\000\000\n\174\n\186\000\000\006\138\000\000\000\000\000\000\000\000\014!\014!\001\218\014!\001\222\005\206\000\000\014!\000\000\000\000\000\000\000\000\n\206\001\230\000\000\005\214\n\210\001\238\001\242\000\000\n\214\n\218\000\000\n\222\000\000\014!\000\000\0021\000\000\000\149\000\000\014!\000\000\000\000\006\146\014!\014!\000\237\000\000\n\226\n\230\006r\000\000\000\000\000\000\n\234\000\000\001\166\000\n\000\000\n\166\000\149\000\000\n\170\000\000\000\000\000\000\n\242\000\000\000\237\000\000\000\000\000\000\000\000\000\000\000\149\000\000\000\000\001\178\000\237\006\154\000\149\000\149\000\000\000\000\000\000\000\000\n\174\n\238\n\246\000\000\000\149\000\000\000\000\011\250\n\250\000\149\001\218\000\000\001\222\000\000\000\000\000\000\000\000\n\254\000\000\000\000\n\206\001\230\000\000\002\"\n\210\001\238\001\242\000\000\n\214\n\218\000\149\n\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\166\000\000\000\000\n\166\000\000\000\000\n\170\n\226\n\230\000\000\000\000\000\000\000\000\n\234\000\000\000\000\000\n\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\n\242\000\000\000\000\000\000\000\149\n\174\011\006\000\000\000\000\000\000\000\000\012\002\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\n\246\000\000\000\149\n\206\001\230\000\000\n\250\n\210\001\238\001\242\000\000\n\214\n\218\000\000\n\222\n\254\000\000\000\149\000\149\000\000\000\000\002\"\000\000\001\166\000\000\000\000\013v\000\000\000\000\013z\n\226\n\230\000\000\000\000\000\000\000\000\n\234\000\000\000\000\000\n\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\n\242\000\000\000\000\000\000\000\000\013~\014\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\n\246\000\000\000\000\013\150\001\230\000\000\n\250\013\154\001\238\001\242\000\000\013\158\013\162\000\000\013\166\n\254\000\000\000\000\000\000\000\000\000\000\002\"\000\000\001\166\000\000\000\000\013v\000\000\000\000\013z\n\226\013\170\000\000\000\000\000\000\000\000\013\174\000\000\000\000\000\n\000\000\000\000\000\000\nR\001\178\000\000\nV\000\000\013\182\000\000\025\138\000\000\nZ\013~\013\130\000\000\000\000\n^\025\142\000\000\000\000\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\013\186\000\000\000\000\013\150\001\230\000\000\013\190\013\154\001\238\001\242\000\000\013\158\013\162\000\000\013\166\013\194\000\000\000\000\000\000\016\162\000\000\002\"\000\000\001\166\000\000\000\000\013v\000\000\000\000\013z\n\226\013\170\000\000\000\000\000\000\016\166\013\174\000\000\000\000\000\n\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\013\182\000\000\000\000\000\000\000\000\013~\013\178\001\230\000\000\000\000\000\000\012\250\001\242\000\000\000\000\001\218\000\000\001\222\000\000\000\000\000\000\000\000\013\186\000\000\000\000\013\150\001\230\000\000\013\190\013\154\001\238\001\242\000\000\013\158\013\162\000\000\013\166\013\194\000\000\000\000\000\000\000\000\000\n\002\"\008\141\000\000\000\000\004\169\000\000\000\000\000\000\000\000\n\226\013\170\000\000\000\000\008\141\000\000\013\174\000\000\000\000\000\n\000\000\000\000\000\000\008\141\000\000\008\141\000\000\000\000\013\182\000\000\000\000\000\000\000\000\008\141\000\000\000\000\000\000\000\000\008\141\000\000\000\000\008\141\000\000\000\000\000\000\008\141\021\254\000\000\t\001\t\001\013\186\008\141\000\000\t\001\000\000\000\000\013\190\023\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\013\194\000\000\008\141\000\000\021.\000\000\002\"\000\000\000\000\000\000\000\000\000\000\000\000\0212\000\000\0216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021:\000\000\000\000\000\000\008\141\021>\000\000\008\141\021F\000\000\000\000\000\000\021J\000\000\000\000\000\000\000\000\000\000\021N\000\000\008\141\000\000\000\000\000\000\000\000\008\141\008\141\008\141\000\000\008\141\008\141\000\000\008\141\000\000\021R\023\194\000\000\000\000\008\141\000\000\000\000\008\141\000\000\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\249\008\141\000\000\000\000\021V\008\141\008\141\021Z\000\000\000\000\000\000\000\000\007\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021^\007\249\000\000\007\249\000\000\021b\000\n\021f\000\000\021j\021n\007\249\021r\000\000\000\000\000\000\007\249\000\000\021v\007\249\000\000\021z\000\000\007\249\000\000\000\000\000\000\000\000\000\000\007\249\000\000\000\000\000\000\000\000\000\000\000\000\021~\000\000\000\000\000\000\021\130\021\134\000\000\000\000\000\000\007\249\023\194\000\000\000\000\000\000\000\000\021*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021.\000\000\000\000\000\000\000\000\000\000\000\000\007\249\000\000\0212\007\249\0216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021:\000\000\000\000\000\000\007\249\021>\000\000\022\134\021F\007\249\007\249\007\249\021J\007\249\007\249\000\000\007\249\000\000\021N\021.\000\000\000\000\007\249\000\000\000\000\007\249\000\000\000\000\0212\024\246\0216\000\000\000\000\000\000\021R\000\000\000\000\000\000\021:\000\000\007\249\000\000\000\000\021>\007\249\007\249\021F\000\000\000\000\000\000\021J\000\000\000\000\000\000\000\000\000\000\021N\000\000\000\000\021V\000\000\000\000\021Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021R\000\000\000\000\021^\000\000\000\000\022\158\000\000\021b\000\n\021f\000\000\021j\021n\000\000\021r\000\000\000\000\021.\000\000\000\000\021v\000\000\000\000\021z\021V\000\000\0212\021Z\0216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021:\000\000\021~\000\000\021^\021>\021\130\021\134\021F\021b\000\n\021f\021J\021j\021n\000\000\021r\000\000\021N\000\000\000\000\000\000\021v\000\000\000\000\021z\000\000\021*\000\000\000\000\000\000\000\000\000\000\000\000\021R\000\000\000\000\000\000\000\000\021.\021~\000\000\000\000\000\000\021\130\021\134\000\000\000\153\0212\000\000\0216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021:\021V\000\000\000\000\021Z\021>\000\000\000\000\021F\000\000\000\000\000\153\021J\000\000\000\000\000\000\000\000\021^\021N\000\000\000\000\000\000\021b\000\n\021f\000\153\021j\021n\000\000\021r\000\000\000\153\000\153\000\000\023B\021v\000\000\000\000\021z\000\000\021*\000\153\000\000\000\000\011\250\000\000\000\153\000\000\000\000\000\000\000\000\000\000\021.\021~\000\000\000\000\000\000\021\130\021\134\021V\000\000\0212\021Z\0216\000\000\000\000\000\000\000\153\000\000\000\000\000\000\021:\000\000\000\000\000\000\021^\021>\000\000\021*\021F\021b\000\n\021f\021J\021j\021n\000\000\021r\000\000\021N\021.\000\000\000\000\021v\000\000\000\000\021z\000\000\000\000\0212\000\000\0216\000\000\000\000\000\000\024\142\000\153\000\000\000\000\021:\000\000\021~\000\000\012\002\000\000\021\130\021\134\021F\000\000\000\000\000\000\021J\000\000\000\000\000\000\000\000\000\153\021N\000\000\000\000\021V\000\000\000\000\021Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\153\021R\000\000\000\000\021^\000\000\000\000\000\000\000\000\021b\000\n\021f\000\000\021j\021n\000\000\021r\000\000\000\000\000\000\000\000\000\000\021v\000\000\000\000\021z\021V\000\000\000\000\021Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021~\000\000\021^\000\000\021\130\021\134\000\000\021b\024\174\021f\000\000\021j\021n\000\000\021r\000\000\000\000\000\000\000\000\000\000\021v\000\000\000\000\021z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021~\000\000\000\000\000\000\021\130\021\134\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\000\000\001\030\0012\001:\001>\000\000\000\000\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\001F\001\014\000\000\001\022\000\000\001\030\0012\001:\001>\000\000\000\000\000\000\000\000\000\000\001N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001F\000\000\000\000\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\001^\000\254\001N\001\014\000\000\001\022\001j\001\030\0012\001:\001>\000\000\000\000\000\000\001b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001^\000\000\001F\000\000\000\000\000\000\001j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001b\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\000\000\000\000\000\000\000\000\000\n\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\001b\000\000\000\000\001n\004R\004V\000\n\000\000\000\000\000\000\000\000\000\000\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\000\000\001\014\001n\001\022\012q\001\030\0012\001:\001>\000\000\000\000\000R\000V\000f\000\170\000\000\000\174\000\000\000\178\000\246\000\000\000\254\001F\001\014\000\000\001\022\0029\001\030\0012\001:\001>\000\000\000\000\000\000\000\000\000\000\001N\000\000\004Z\000\000\000\000\000\000\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\000\000\001^\000\000\001N\003]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001b\000\000\000\000\000\000\0262\004V\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\001b\000\000\000\000\000\000\004R\004V\000\000\000R\000V\000f\000\170\000\000\000\174\014\005\000\178\000\246\000\000\000\254\000\000\001\014\000\000\001\022\000\000\001\030\0012\001:\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\005\000\000\000\000\000\000\0266\001F\000\000\011\030\000\000\001\153\000\000\000\000\001\153\000\000\014\005\000\000\000\000\000\000\000\000\001N\014\005\014\005\000\000\000\000\011&\003U\004b\0112\000\000\000\000\014\005\001\153\000\000\014\005\000\000\014\005\000\000\000\000\000\000\001^\000\000\000\000\000\000\000\000\000\000\001\153\000\000\000\000\000\000\001\153\000\000\001\153\001\153\001b\000\000\000\000\014\005\0262\004V\000\000\000\000\001\153\000\000\000\000\001\153\000\000\001\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011>\000\000\000\000\000\000\000\000\000\000\000\213\000\000\000\000\000\213\000\000\001\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\005\000\000\000\000\000\000\000\000\011B\000\000\014\005\000\000\000\213\000\000\000\000\000\000\000\000\000\000\011J\000\000\000\000\000\205\026>\014\005\000\205\000\000\006b\000\000\000\000\000\000\000\213\000\000\000\213\000\213\001\153\005\250\000\000\001\153\014\005\014\005\000\000\001\153\000\213\000\205\000\000\006j\000\000\006z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\205\000\000\001\153\000\000\000\205\000\000\000\205\000\205\006\002\000\000\000\000\000\213\001\153\001\153\000\000\000\000\000\205\000\000\000\000\006j\000\000\000\205\000\209\000\000\000\000\000\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\205\000\000\000\209\000\000\000\000\000\000\000\000\000\000\000\213\000\000\000\000\000\213\000\000\000\000\000\225\006r\000\209\000\225\000\000\000\000\000\209\000\000\000\209\000\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\209\000\213\000\000\006j\006Z\000\209\000\000\000\205\000\000\000\000\000\205\000\213\000\213\000\000\006r\000\000\000\000\000\000\006b\000\000\000\000\000\000\000\225\000\000\000\225\000\225\000\209\000\217\000\000\000\000\000\217\000\000\000\205\000\000\000\225\000\000\000\000\006j\000\000\006z\000\000\000\000\000\205\000\205\000\000\000\000\000\000\000\000\000\000\006Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\138\000\000\000\000\006b\000\000\000\209\000\000\000\217\000\209\000\217\000\217\000\221\006r\000\000\000\221\000\000\000\000\000\000\000\000\000\217\000\000\000\000\006j\000\000\006z\000\000\000\000\000\000\000\000\000\000\000\209\000\000\000\000\006Z\000\000\000\000\000\000\000\000\000\000\000\225\000\209\000\209\000\225\000\000\000\000\000\217\006r\006b\000\000\000\000\000\000\000\221\000\000\000\221\000\221\000\000\000\229\000\000\000\000\000\229\000\000\000\000\000\000\000\221\000\225\000\000\006j\000\000\006z\000\000\000\000\000\000\000\000\000\000\000\225\000\225\000\000\000\000\006Z\000\000\000\000\000\000\000\000\000\000\000\217\000\000\000\000\000\217\000\000\006\138\006R\006r\006b\000\245\000\000\000\000\000\229\000\000\000\229\000\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\130\000\217\000\000\006j\006Z\006z\006R\000\000\000\000\000\233\000\000\000\217\000\217\000\000\000\000\000\000\000\000\000\000\006b\000\000\000\221\000\000\000\245\000\221\000\245\006\186\006\138\006r\006Z\000\000\000\000\000\000\000\000\000\000\006\130\000\000\000\000\006j\000\000\006z\006R\000\000\006b\000\241\000\000\000\221\000\233\000\000\000\233\000\233\000\000\000\000\000\000\000\000\000\000\000\221\000\221\000\000\006\130\000\000\006\138\006j\006Z\006z\000\000\006\146\000\000\000\000\000\229\000\000\000\000\000\000\006r\000\000\000\000\000\000\006b\000\000\000\000\000\000\000\241\000\000\000\241\006\186\006\138\000\169\000\000\000\000\000\000\000\161\000\229\000\000\006\130\000\000\000\000\006j\000\000\006z\000\000\006\146\000\229\000\229\000\245\000\000\000\000\000\000\006r\011\234\000\000\000\000\000\000\011\234\000\000\000\000\000\000\000\000\000\000\000\000\006\138\000\000\000\000\011\242\000\000\006\146\000\245\011\242\000\233\000\169\000\169\000\165\006r\000\161\000\161\000\173\006\194\006\154\000\000\000\169\000\000\000\000\011\250\000\161\012\n\000\000\011\250\000\000\012\n\000\000\000\233\000\000\000\000\011\234\000\000\000\000\000\000\011\234\000\000\006\146\000\233\006\154\000\241\000\000\000\000\012\026\006r\011\242\000\000\000\161\000\000\011\242\000\000\000\165\000\165\000\000\000\000\000\173\000\173\000\000\011\226\000\000\000\000\000\165\000\241\000\000\011\250\012\018\012\n\000\000\011\250\000\000\012\n\000\000\000\241\006\154\000\000\000\000\000\000\000\000\000\000\000\000\011\234\000\000\000\169\000\000\000\000\000\000\000\161\012\026\000\000\012\002\000\000\012\026\011\226\012\002\011\242\000\000\000\000\000\000\000\000\000\000\000\189\012:\000\169\000\000\000\000\000\000\000\161\000\000\000\000\000\000\012\018\000\000\000\000\011\250\011\234\012\n\011\226\000\169\000\169\000\000\000\000\000\161\000\161\000\000\000\000\000\000\000\165\000\000\011\242\000\000\012\"\000\000\000\000\012\002\000\177\000\177\012\026\012\002\011\234\000\000\000\000\000\000\000\000\000\000\012\018\000\000\000\165\011\250\000\000\012\n\000\173\000\000\011\242\000\000\000\000\000\000\000\000\000\000\000\185\012:\000\000\000\165\000\165\000\000\000\000\000\173\000\173\000\000\012\018\000\000\012\026\011\250\000\000\012\n\000\000\012\"\000\000\000\000\000\000\000\000\000\000\000\000\012\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\026\000\189\000\000\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\"\012B\012*\000\000\000\000\000\000\000\000\012\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\177\000\000\000\000\000\000\012\"\000\000\000\000\000\000\000\000\000\000\000\000\012\002\000\000\000\000\000\000\000\177\012*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\185\012*")) let lhs = - (16, "\000\012\000\011\000\n\000\t\000\008\000\007\000\006\000\005\000\004\000\003\000\002\000\001\000\000\001\016\001\016\001\016\001\015\001\015\001\015\001\015\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\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\011\001\n\001\n\001\n\001\n\001\t\001\008\001\008\001\008\001\007\001\007\001\007\001\006\001\006\001\006\001\005\001\005\001\005\001\004\001\003\001\002\001\001\001\001\001\000\001\000\000\255\000\255\000\254\000\254\000\253\000\253\000\252\000\251\000\251\000\250\000\250\000\249\000\249\000\249\000\248\000\248\000\247\000\246\000\245\000\244\000\243\000\242\000\241\000\240\000\239\000\238\000\237\000\236\000\235\000\234\000\233\000\233\000\232\000\232\000\231\000\231\000\230\000\230\000\229\000\229\000\229\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\227\000\226\000\226\000\226\000\226\000\225\000\225\000\224\000\224\000\223\000\223\000\222\000\222\000\222\000\221\000\221\000\221\000\220\000\220\000\220\000\220\000\219\000\219\000\219\000\219\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\217\000\216\000\216\000\215\000\215\000\215\000\214\000\214\000\213\000\213\000\213\000\212\000\212\000\211\000\211\000\211\000\210\000\209\000\208\000\208\000\207\000\207\000\206\000\206\000\205\000\205\000\204\000\204\000\203\000\202\000\201\000\201\000\200\000\200\000\199\000\199\000\199\000\198\000\197\000\196\000\196\000\195\000\194\000\194\000\194\000\194\000\194\000\193\000\193\000\193\000\193\000\192\000\192\000\192\000\192\000\191\000\191\000\191\000\191\000\190\000\189\000\189\000\188\000\188\000\188\000\187\000\186\000\186\000\186\000\186\000\185\000\184\000\184\000\183\000\183\000\182\000\182\000\181\000\181\000\181\000\181\000\180\000\180\000\179\000\179\000\179\000\179\000\179\000\178\000\178\000\178\000\178\000\177\000\177\000\177\000\177\000\177\000\176\000\175\000\175\000\175\000\174\000\173\000\173\000\172\000\172\000\171\000\171\000\170\000\170\000\169\000\169\000\168\000\168\000\167\000\167\000\167\000\167\000\167\000\167\000\167\000\167\000\166\000\165\000\164\000\164\000\163\000\163\000\162\000\162\000\161\000\161\000\160\000\160\000\159\000\159\000\158\000\158\000\157\000\157\000\156\000\156\000\155\000\155\000\154\000\154\000\153\000\153\000\152\000\152\000\151\000\151\000\150\000\150\000\149\000\149\000\148\000\148\000\147\000\147\000\146\000\146\000\145\000\145\000\144\000\144\000\143\000\143\000\142\000\142\000\141\000\141\000\140\000\140\000\139\000\139\000\138\000\138\000\137\000\137\000\136\000\136\000\135\000\135\000\134\000\134\000\133\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\131\000\130\000\129\000\128\000\127\000~\000}\000|\000{\000z\000z\000z\000y\000y\000y\000x\000x\000x\000x\000w\000v\000u\000t\000s\000r\000q\000q\000p\000p\000p\000o\000o\000n\000n\000n\000m\000m\000l\000k\000k\000k\000j\000i\000i\000h\000h\000g\000g\000f\000f\000e\000e\000d\000d\000c\000c\000b\000b\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000`\000`\000_\000_\000^\000^\000]\000]\000\\\000\\\000[\000[\000Z\000Z\000Z\000Z\000Z\000Y\000Y\000X\000X\000X\000X\000W\000V\000U\000U\000U\000T\000T\000T\000S\000S\000S\000S\000S\000S\000R\000R\000R\000R\000R\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000P\000P\000P\000P\000P\000P\000P\000O\000O\000O\000O\000O\000O\000O\000N\000N\000N\000N\000N\000N\000N\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000L\000L\000L\000L\000L\000L\000L\000L\000L\000L\000L\000L\000L\000K\000K\000K\000K\000K\000K\000K\000K\000K\000K\000K\000K\000K\000J\000J\000J\000J\000J\000J\000J\000J\000J\000J\000J\000J\000J\000I\000I\000I\000I\000I\000H\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000F\000F\000F\000E\000D\000C\000B\000B\000A\000A\000@\000?\000?\000?\000>\000>\000=\000=\000<\000;\000;\000;\000;\000;\000;\000;\000:\000:\000:\000:\000:\000:\0009\0009\0008\0008\0008\0007\0007\0006\0006\0005\0005\0004\0004\0003\0003\0002\0002\0001\0001\0000\0000\000/\000/\000.\000.\000-\000-\000,\000,\000+\000+\000*\000*\000)\000)\000(\000(\000'\000'\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000%\000%\000%\000$\000$\000$\000$\000#\000#\000#\000#\000#\000\"\000!\000!\000!\000 \000 \000\031\000\031\000\030\000\029\000\028\000\028\000\028\000\028\000\027\000\027\000\027\000\026\000\026\000\025\000\025\000\025\000\024\000\024\000\024\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\021\000\021\000\020\000\020\000\020\000\020\000\020\000\020\000\020\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\018\000\018\000\018\000\018\000\018\000\018\000\018\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\016\000\016\000\016\000\016\000\016\000\015\000\015\000\014\000\013\000\013\000\013\000\013\000\013") + (16, "\000\012\000\011\000\n\000\t\000\008\000\007\000\006\000\005\000\004\000\003\000\002\000\001\000\000\001\016\001\016\001\016\001\015\001\015\001\015\001\015\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\014\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\013\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\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\011\001\n\001\n\001\n\001\n\001\t\001\008\001\008\001\008\001\007\001\007\001\007\001\006\001\006\001\006\001\005\001\005\001\005\001\004\001\003\001\002\001\001\001\001\001\000\001\000\000\255\000\255\000\254\000\254\000\253\000\253\000\252\000\251\000\251\000\250\000\250\000\249\000\249\000\249\000\249\000\248\000\248\000\248\000\247\000\246\000\245\000\244\000\243\000\242\000\241\000\240\000\239\000\238\000\237\000\236\000\235\000\234\000\233\000\233\000\232\000\232\000\231\000\231\000\230\000\230\000\229\000\229\000\229\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\227\000\226\000\226\000\226\000\226\000\225\000\225\000\224\000\224\000\223\000\223\000\222\000\222\000\222\000\221\000\221\000\221\000\220\000\220\000\220\000\220\000\219\000\219\000\219\000\219\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\218\000\217\000\216\000\216\000\215\000\215\000\215\000\214\000\214\000\213\000\213\000\213\000\212\000\212\000\211\000\211\000\211\000\210\000\209\000\208\000\208\000\207\000\207\000\206\000\206\000\205\000\205\000\204\000\204\000\203\000\202\000\201\000\201\000\200\000\200\000\199\000\199\000\199\000\198\000\197\000\196\000\196\000\195\000\194\000\194\000\194\000\194\000\194\000\193\000\193\000\193\000\193\000\192\000\192\000\192\000\192\000\191\000\191\000\191\000\191\000\190\000\189\000\189\000\188\000\188\000\188\000\187\000\186\000\186\000\186\000\186\000\185\000\184\000\184\000\183\000\183\000\182\000\182\000\181\000\181\000\181\000\181\000\180\000\180\000\179\000\179\000\179\000\179\000\179\000\178\000\178\000\178\000\178\000\177\000\177\000\177\000\177\000\177\000\176\000\175\000\175\000\175\000\175\000\174\000\173\000\173\000\172\000\172\000\171\000\171\000\170\000\170\000\169\000\169\000\168\000\168\000\167\000\167\000\167\000\167\000\167\000\167\000\167\000\167\000\166\000\165\000\164\000\164\000\163\000\163\000\162\000\162\000\161\000\161\000\160\000\160\000\159\000\159\000\158\000\158\000\157\000\157\000\156\000\156\000\155\000\155\000\154\000\154\000\153\000\153\000\152\000\152\000\151\000\151\000\150\000\150\000\149\000\149\000\148\000\148\000\147\000\147\000\146\000\146\000\145\000\145\000\144\000\144\000\143\000\143\000\142\000\142\000\141\000\141\000\140\000\140\000\139\000\139\000\138\000\138\000\137\000\137\000\136\000\136\000\135\000\135\000\134\000\134\000\133\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\131\000\130\000\129\000\128\000\127\000~\000}\000|\000{\000z\000z\000z\000y\000y\000y\000x\000x\000x\000x\000w\000v\000u\000t\000s\000r\000q\000q\000p\000p\000p\000o\000o\000n\000n\000n\000m\000m\000l\000k\000k\000k\000j\000i\000i\000h\000h\000g\000g\000f\000f\000e\000e\000d\000d\000c\000c\000b\000b\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000a\000`\000`\000_\000_\000^\000^\000]\000]\000\\\000\\\000[\000[\000Z\000Z\000Z\000Z\000Z\000Y\000Y\000X\000X\000X\000X\000W\000V\000U\000U\000U\000T\000T\000T\000S\000S\000S\000S\000S\000S\000R\000R\000R\000R\000R\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000P\000P\000P\000P\000P\000P\000P\000O\000O\000O\000O\000O\000O\000O\000N\000N\000N\000N\000N\000N\000N\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000M\000L\000L\000L\000L\000L\000L\000L\000L\000L\000L\000L\000L\000L\000K\000K\000K\000K\000K\000K\000K\000K\000K\000K\000K\000K\000K\000J\000J\000J\000J\000J\000J\000J\000J\000J\000J\000J\000J\000J\000I\000I\000I\000I\000I\000H\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000G\000F\000F\000F\000E\000D\000C\000B\000B\000A\000A\000@\000?\000?\000?\000>\000>\000=\000=\000<\000;\000;\000;\000;\000;\000;\000;\000:\000:\000:\000:\000:\000:\0009\0009\0008\0008\0008\0007\0007\0006\0006\0005\0005\0004\0004\0003\0003\0002\0002\0001\0001\0000\0000\000/\000/\000.\000.\000-\000-\000,\000,\000+\000+\000*\000*\000)\000)\000(\000(\000'\000'\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000%\000%\000%\000$\000$\000$\000$\000#\000#\000#\000#\000#\000\"\000!\000!\000!\000 \000 \000\031\000\031\000\030\000\029\000\028\000\028\000\028\000\028\000\027\000\027\000\027\000\026\000\026\000\025\000\025\000\025\000\024\000\024\000\024\000\023\000\023\000\023\000\023\000\023\000\023\000\023\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\021\000\021\000\020\000\020\000\020\000\020\000\020\000\020\000\020\000\019\000\019\000\019\000\019\000\019\000\019\000\019\000\018\000\018\000\018\000\018\000\018\000\018\000\018\000\017\000\017\000\017\000\017\000\017\000\017\000\017\000\016\000\016\000\016\000\016\000\016\000\015\000\015\000\014\000\013\000\013\000\013\000\013\000\013") let goto = - ((16, "\000\193\000l\000\000\000\000\000\000\000G\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025\000\000\001C\000\182\000\000\001\019\000\197\000\000\000\000\000\000\000\139\000\000\000[\000\252\000\000\000\000\001t\000\000\001\166\000\000\000\000\000\000\001\206\000\000\002\018\000\000\000\000\000\000\000\000\003@\000\000\003R\003\134\000\000\000\000\004\132\000\000\004\172\000\000\000\000\000\000\005\166\000\000\005\182\000\000\005\208\000\000\006\000\006(\000\000\000\000\006J\000\000\006\200\000\000\000\000\000\000\000\000\007f\000\000\007n\000\000\000\000\007\218\000\000\008\018\000\000\000\000\000\000\008\026\000\000\000\160\008P\000\011\000\000\000\000\000\000\0072\002@\002\240\000\000\000\000\008\170\000\000\000\236\000\000\000\168\000\247\000\023\000\000\000\000\013\196\000\000\002\246\000\000\0028\004\128\000\160\011\002\000\160\003\148\031<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\226\011\002\000\000\000\000\017\002\000\000\0188\000\000\001^\000\000\000\000\000\000\000\000\002R\000\000\018\144\000\000\000\000\014\156\000\000\023\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n,\000\000\011@\000\000\011D\000\000\015\144\000\000\019\236\000\000\019\240\000\000\023*\000\000\023>\000\000\028`\000\000!\030\000\000\006\026\000\000\006D\000\000\000\000\000\000\000\000\000\000#P\000\000)J\000\0006l\000\000\027v\000\000\000\000\028\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\008\228\000\000\000\000\t\"\000\000\t\132\t\202\000\000\000\000\t\208\000\000\t\218\000\000\000\000\000\000\t\222\000\000\t\224\000\000\000\000\t\230\000\000\t\246\n\016\000\000\000\000\n\024\000\000\n \000\000\000\000\000\000\n*\000\000\n,\000\000\n.\000\000\n2\nB\000\000\000\000\n\130\000\000\n\144\000\000\003\014\n\176\000\000\n\210\000\000\n\220\000\000\n\232\000\000\000\000\000\000\011\000\000\000\011\004\0056\000\000\011\014\000\000\000\194\006\154\000\000\002\216\000\000\004\006\000\000\000\000\007F\000\000\000\000\001\017\003z\000\000\000\000\000\000\000\000\003>\000\000\003P\000\000\008\168\000\000\002\026\000\000\000\000\000\000\000\000\000\000\000\000\008\208\000\000\000\000\000\000\000\000\000\209\000\000\000\000\000\000\000\000\000\000\000\000\0001\003\152\017\172\000\000\011\020\000\000\011\024\019\142\000\000\011\026\000\000\000\000\004\190\000\000\000\000\000\000\000\000\000\000\026\152\000\0000\026\000\000\000\000\000\000\003\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\144\000\000\000\000\000\000\000\000\000\000\000\000\006\160\031<\000\000\007\142\000\000\020\216\022\190\000\000\000\000\000\000\004@\000\000 2\000\000\000\0000r\000\000\000\000\000\000\005\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\128\000\000&\208\000\000\000\000\000\000\000\000\000\199\000\000\000\0000\186\000\000\000\000\000\000\000n\000s\000\000\000\000\000\000\000\000\000\000\000\000\0006\000\000\004\144\000\000\005\158\000\000\n~\000\000\011^\000\000\012\016\000\000\012\146\000\000\016\142\000\000\027\210\000\000\0302\000\000\014\144\000\000\004\012\000\000\031n\000\000%\172\000\000-\178\000\000\000\000\000\000\000\000\000\000\000\1710\200\000\000\000:\000\000\000\000\000}\001\132\000\000\001\028\000\000\000\000\000\000\005\190\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\000\000\000\000\001\028\000\000\000\000\000\000\011(\020\254\000\000\011*\000\000\000\000\000\000\000\000\000\000\011,\000\000\000\000\000\129\007\166\000\000\008H\000\000\000\000\000\000\000}\000\000\012\206\001\196\011.\000\000\000\000\011:\000\000\011B\011F\000\000\000\000\011J\000\000\011N\000\000\000\000\000\000\011T\000\000\011V\000\000\000\000\011^\000\000\011d\011f\000\000\000\000\011v\000\000\011~\000\000\000\000\000\000\011\128\000\000\011\146\000\000\011\150\000\000\011\152\011\160\000\000\000\000\011\162\000\000\011\166\000\000\005\218\011\172\000\000\011\174\000\000\011\176\000\000\011\192\000\000\000\000\000\000\011\198\000\000\006\020\000\000\000\000\011\206\023\164\000\000\011\210\000\000\000\000\000`\000\000\000\000\003J\000\000\000\000\000\000\000\000\000\000\006&\025\134\000\000\011\218\000\000\011\224\030\"\000\000\011\228\000\000\000\000\012\236\011\236\000\000\000\000\011\238\000\000\012\004\012\018\000\000\000\000\012\030\000\000\012(\000\000\000\000\000\000\012*\000\000\012,\000\000\000\000\0122\000\000\012:\012<\000\000\000\000\012@\000\000\012B\000\000\000\000\000\000\012R\000\000\012T\000\000\012V\000\000\012X\012Z\000\000\000\000\012b\000\000\012d\000\000\007\008\012v\000\000\012z\000\000\012\154\000\000\012\160\000\000\000\000\000\000\012\162\000\000\012\164\"\028\000\000\012\168\000\000\000\000\007x#d\000\000\012\170\000\000\012\174&\028\000\000\012\176\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\252\000\000#\240\000\0001>\000\000\000\000\000Z\000\000\000\000\001\188\000\214\000\000\000\000\020H%\136\000\000\017$\017\030\000\000\000\000((\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029\028((\000\000\029\184\000\000$\240\0120(\156\000\000\016\214\000\000\000\000\000\000\007\168\000\000 \214\000\000\000\0001^\000\000\000\000\000\000\007\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\212\000\0002\008\000\000\000\000\000\000(\242\000\000\000\000\000\000\022~\000\000\000\000\000\000\000\000\007\206\000\000\000\000\000\000\000\000\031\132\000\000\000\0005t\000\000\000\157\000\000\000\000\000\000\000\025\000\000\001\248\000\000\002\140\000\000\0042\000\000\008\146\000\000\t\164\000\000\014R\000\000\014\170\000\000\017\128\000\000\022\\\000\000\024@\000\000\027*\000\000\031\008\000\000\000\000\000\000\000\000\000\000\007:\000\000)\246\000\000*82X\000\000*\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004R\000\000\000\000\000\000\000\000\005z\000\000\004\216\000\000\000\000\024<\000\000\000\000\000\000*:\000\000\000\000\000\000\000\000\000\000\0258\000\000\000\000\000\000\000\000*\134\000\000\000\000\000\000\000\000\004\004\004r\000\000*\224\000\000\000\000\000\000\000\000\008\176\000\000*\254\000\000\000\000\000\000\000\000\000~\000\000\007|\000\000\015\178\006t(\214\000\000\000\000\000\000\013F\000\000\000\000\000\000\000\000\000\000\000\000\018\246(\214\000\000\021\170\000\000\024\234\013\248\000\000\000\000\000\000\0080\000\000 \240\000\000\000\0002L\000\000\000\000\000\000\008@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005\148\000\00060\000\000\000\000\000\000\001 \000\000\000\000\000\000\000\000\000\000\000\000\007b\000\000\016T\000\000\018\190\000\000\024h\000\000\025\152\000\000'\n\000\000-\170\000\000/r\000\000/\186\000\0005B\000\000+&\000\000\000&\000\0006\006\000\0006^\000\0006\186\000\000),\000\000\000\000\000\0002\152\000\000\000\000\000\000\004 \000\0002\158\000\000\000\000\000\0002\238\000\000\000\000\0010\000\000\024\200\000!\005\026\000\000\005:\000\000\013\144\002\n\008\014\000\000\000\000\000\000\000\000\000\000\000\000\000\0003\"\000\000$<$\000\008\142\000\000\000\000\000\000+\158\000\000+\234\000\000,D\000\000%$%H\002\154\000\144\008\170\000\000\000\000\000\000\002>\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\000\000\000\000\000\0003\162\000\000\000\000\000\000\000\000!<\000\000&\n\000\000\000\000\000\000\000\000\000\000\000\000\014\024\000\000\000\000\005\188\000\000\000\000\000\000\025v\002\164\000\000\026\016\000\000\000\000\008\176\000\000\002\196\000\000\000\000\014\198\000\000\026\206\000\000\000\000!\254\000\000\000\000\000\000\006\204\000\000\000\000\005\002\000\000\000\000\0266\000\000\000\000\000\000,j\000\000\000\000\000\000\027\222\000\000\000\000\000\000\000\000,\136\000\000\000\000\000\000\000\000\004>\011\144\000\000,\194\000\000\000\000\000\000\000\000\000\000\000\000\015N\000\000\000\000\002\238\000\000\015\204\000\000\006\204\000\000\000\000\001\130\tD\000\000\003\006\000\000\000\000\000\000\000\000\001 \000\000&$\000\000\026 \003H\027h\000\000\003h\000\000\016\192\000\000\017>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\254\028&\005\024\028\192\000\000\000\000\000\000\005\154\000\000\017\180\000\000\004\"\000\000\000\000\t\192\004\246\029n\000\000\006\136\000\000\0182\029~\000\000\000\000\019&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\190\0082\000\000\0064\000\000\000\000\000\000\000\000\006V\000\000\019\164\000\000\000\000\000\000\"\1643\176\000\000\000\000\000\000 \024\000\000\000\000\000\000\000\000\0070\006`\000\000\000\000-\008\000\000\000\000\002\236\000\000\007\024\000\000\000\000\030>\000\000\000\000\000\000-.\000\000\000\000\000\000\000\000.\012\000\000\000\000\006\236\008\150\000\000\000\000.\016\000\000\000\000\006\206#\006\000\000\008\194\000\000\000\000.X\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\"\000\000\000\000\000\000\000}\000\000\000\000\008\224\000\000\000\000\"n\000\000\000\000\000\000.\208\000\000\000\000\000\000\000\000.\238\000\000\000\000\008\182\t(\000\000\000\000/\024\000\000\000\000\008.\000\000\000\000\000\000\000\000\001 \000}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002t\000\000\020,\000\000\000\000\000\00048\000\000\t\194\000\000\000\000\000\000\003\154\000\000\005\004\000\000\000\000\006\192\020\238\000\000\021v\000\000\000\000\000\000\008\008\000\0004F\00884`\000\0004\188\000\000\000\000\000\000\008l\000\0004\240\008t\000\000\000\000&\128\008\204&\230\000\000'B\000\000\000\000\000\000\t\020\000\0005\020\t\026\000\000\000\000\020\190\t\132!\192\000\000$\018\000\000\000\000\000\000\t\136\000\0005\128\t\184\000\000\000\000\000\000\000?\000\000\000\000\000\000\007v\000\000\000\000\000\000\000\000\000\000\000\000\005\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002X\000\000\000\000\003\026\000\000\000\000\013h\000\000\000\000\000\000\000\000\007\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\013l\000\000\000\000\013B\000\000\000%\000\000\000\000\000\134\000\000\0052\012\246\002\156\000\000\000\000\003\236\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\252\018\016\000\000\000\000\005\\\000\000\000\000\000\000\021\156\000\000\000\000\0224\023\014\000\000\000\000\000\000\000\000\023\172\027\254\000w\000\000\031\246\000\000\000\000\000\000\000\000\000\000\000\000\008*\000\000\000\000\006\164\000\000\000\000\012\190\000\000\000\000\003n\000\000\000\000\012\194\000\000\000w\000\000\000\000\000\000\000\000\011\n \020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0138 \196\000\000\000\000\000\000\000\000#L\000\000\000\000\003\022\000\000\013z\000\000\000\000\000\000\t\238\000\000\000\186\000\000\000\000\000\000\017X\000\000\000\000\015l$N\011~\000\000$\152\000\000\000\000\000\000\000\000\013>\000\000\000\000\000\000\n4\000\000\001\170\013\016\004\016\000\000\000\000\000\000\008|\008J\000\000\000\000\000\000\000\000\002D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\132\000\000\000\000\016^\000\000\000\029\013\142\003\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\025\144\000\000\000\000\0248%b\000\000\000\000\000\000\000\000\0026\000\000\005\008\011\198\000\000\028\202\000\000\000\000\000\000\000\000\000\000\000\146!\012\000\000\000\000&\176\000\000\000\000\000\000\000\000\nV\000\000)\240\000\000\000\000\000\000\000\000\007D\000\000\000\000\000\000\006\242\000\000\000\000\001\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\174\000\000\000\000\000\000\005\028\000\000\000\000\000\000\000\000\000\000\000\004\004\150\007\150\008\220\000\000\005\186\005\212\t\004\t\134\000\000\000\000\000\000\000\000\000\000\000\000\006b\021\244\000\000\030d\007X\000\000\000\000\008\248\000\000\022\232\000\000)\226\000\000\000\000\008\160\023f\000\000\030t\000\000\008\176\031\"\000\000\000\000\000\000\004\242\005\186\000\000\000\000\000\000\000\000\0088\000\000\011<\000\000\000\157\011z\000\000\000\000\000\000\003>\000\000\003P\000\000\t\002\000\000\000\000\0032\000\000\000\000\000\000\000\000\n8\000\000\000\000\t\238\000\000\023\220\000\000\020\236\013L\000\000\000\000\000\000\000\000\000\000\000G\000\000\000\000\000\000\000\000\000\000/\250\000\000\000R\000\000\000\000\000\000\000\000\000\000\001\148\000\000\n\182\t\136\011\200\000\000\002\170\012F\000\000\n\146\000\000\003\164\000\000\004D\000\000\005>\000\000\020\236\000\000\000\000\000\000\000\000\000\000\005\222\000\000\n\162\000\000\006\216\000\000\020\236\013\174\000\000\004\222\000\000\013\160\012\138\000\000\tH\000\000\n\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\168\000\000\011\020\000\000\000\000\000\000\000\000\000\000\000\000\013\166\012\158\000\000\000\000\012\196\000\000\000\000\012\166\t\218\013\226\000\000\013\232\000\000\000\000\t\186\011P\000\000\012\220\000\000\000\000\013\018\000\000\000\000\000\000\000\000\000\000\000\000\013\222\012\204\000\000\000\000\000\000\012\238\012\212\n\166\n\156\012\240\013&\000\000\000\000\012\222\n\176\n\170\012\252\0138\000\000\000\000\n\138\000\000\000\000\000\000\000\000\014\008\000\000\000\000\000\000\014\016\000\000\000\000"), (16, "\003l\003\131\005\196\005\197\002\193\000\138\005?\002\197\0017\000\147\003:\005\164\005n\005o\000\007\000\018\000_\006\017\003l\003\131\002\164\004Z\004B\001.\005|\006|\000\025\000_\000a\001\225\000e\006}\005\198\001\186\000_\003l\003m\000\005\006~\001\212\004\019\000\017\005\199\001g\001\140\001h\005}\006\018\001B\006\019\006\168\006\169\005\128\005n\005o\0010\004\020\001\192\003n\000\013\000\140\000\140\003o\001\188\002\198\000\024\000\141\000g\002\199\0026\000\142\001g\000J\001~\004\020\005p\003n\000_\006\020\002\246\003o\002\164\006\144\001\210\000\016\000\017\001\143\001\194\006\021\002:\001\234\000\140\001\237\003n\000\028\006'\000\138\003o\000\151\000\140\000\147\005t\001i\000\004\006\173\002=\001j\001\141\001\236\005\127\001\236\004\137\000_\003\136\001/\001\181\005p\003N\000 \006\007\0029\000h\006\128\000_\004/\006\176\000\005\000\140\006\177\000_\001i\005}\001\013\002\245\001j\005u\001w\005\128\005n\005o\006\129\006\008\001\213\006\011\005n\005o\001/\001\186\003\253\001\141\000_\000f\000\140\000e\005\196\005\197\000J\000\141\003|\002\166\006P\000\142\002\212\004\002\001w\004\225\003\253\004\003\004\021\000g\003}\004\139\004h\006\145\002\213\000\152\003|\001\187\006/\000J\006\181\004\002\004V\000K\005\220\004\003\004\021\006\130\003}\000\151\000g\000\138\000\182\003|\005\199\000\139\006\131\000\153\004\007\001\012\006\156\005p\004C\003U\004b\003}\004\247\005p\0062\004\029\001\179\001\181\004y\001x\004:\003\140\004\007\005\140\003l\003\131\004\024\006\158\000\183\001\015\005\005\0016\000_\004\029\003\231\004\021\006\160\006\182\004:\003\140\000_\005v\006P\003\141\006~\006\183\004\019\001x\003\142\002\247\006\002\000\155\003\143\000\140\0024\000\184\003\168\003\144\000\141\000\185\000_\003\141\000\142\002\250\002=\000\157\003\142\001\192\001\186\005\t\003\143\001\142\000\152\000h\002\193\003\144\004\029\002\197\003\141\004\"\004\020\004:\003n\003l\003\131\003\232\003o\001\145\002;\001\183\000\151\006\202\003\144\001\144\000\153\000\031\000h\001\193\003\139\000_\002\165\001\150\000\008\002\164\004Z\004B\001g\000_\001\203\002H\001\214\006'\006\003\004Q\001\189\001\145\000\203\001\215\0065\000\183\001\146\002=\006\004\006\005\001\147\001\229\005\007\000\203\001\012\001\148\000\140\001\015\001E\0016\002\198\006\007\006H\006I\002\199\004\020\002\167\003n\000\155\004S\006\203\003o\000\184\005\254\002\193\005b\000\185\002\197\001\015\006M\0016\000\"\000\157\006\008\003+\006\011\005n\005o\000\140\003l\003\131\001i\000J\000\152\005\251\001j\004\016\005`\003\253\001\"\004\252\000J\005c\005n\005o\000_\000$\004\017\003|\006~\006\188\004B\004\023\004\002\001\027\000\153\005\131\004\003\004\021\006\204\003}\004i\003\136\004\017\001\181\001w\000(\001g\006\131\001~\000\140\004\248\006\206\004H\002\198\006P\006'\000J\002\199\001\213\000_\000a\000b\000e\004\017\004\020\002=\003n\004\007\005p\006(\003o\004\024\006\208\001\191\004\250\000\203\003\253\002\212\004\029\000*\006\199\006\210\001Q\004:\003\140\005p\003|\000J\005j\002\213\005\215\004\002\000_\0026\003\233\004\003\004\021\003:\003}\000g\004k\003-\000\140\003F\005k\001i\003\141\002H\004\\\001j\004V\003\142\005\216\0028\000J\003\143\005\219\005n\005o\005\132\003\144\001x\001\217\005\252\004\\\001g\004\007\001~\000_\006-\004C\000\144\004b\003l\003\131\005\182\001\131\004\029\000J\001w\004y\001$\004:\003\140\0029\003\232\001\028\000J\001\029\000_\000\203\002\212\004Q\006~\006\188\004B\003\253\005\183\002\247\006\147\005\186\005n\005o\002\213\002H\003\141\003|\003\234\0067\000J\003\142\004\002\002\252\006+\003\143\004\003\004\021\006\194\003}\003\144\005p\000\140\004R\000J\001i\001g\006\131\001h\001j\004\020\004\005\003n\003\197\003\198\001\026\003o\000\004\0017\000h\003\237\003\238\003\240\000J\005\134\002\193\006\193\004\007\002\197\000h\001\027\004C\003;\006\196\003l\003\131\001\131\001x\004\029\001w\000\005\006\198\005\131\004:\003\140\005p\000\251\0017\001\204\005\135\000_\000/\001\012\002\247\006~\006\188\004B\004\250\003G\000J\0003\001\134\000\140\0014\000\138\001i\003\141\002\254\000\147\001j\001-\003\142\001g\004\182\001h\003\143\001\015\003)\0016\001(\003\144\000\140\004d\001\144\002H\002\198\0002\004;\000J\002\199\004\020\000_\003n\002\166\005\008\006Z\003o\000J\004_\001w\004v\003\234\003\253\006\149\005\221\001\145\006\195\006\140\005\132\006\141\001\146\000\203\003|\000J\001\147\001<\001x\004\002\004v\001\148\000\140\004\003\004\021\006\194\003}\000\141\005\132\001\132\000\140\000\142\004x\001i\006\131\003\236\001O\001j\004\005\000_\003\197\003\198\001\134\006Z\004\253\001\028\004{\001\029\000_\000\203\004w\005\200\002\164\000J\004\007\007\013\003\197\003\198\004C\000\151\006\196\003l\003\131\004n\001\144\004\029\000J\001w\006\198\007\014\004:\003\140\000h\000_\000a\001\t\000e\000_\001x\002\165\001\198\006~\006\188\004B\003\253\002\212\001\145\000J\003N\005]\005^\001\146\005\007\003\141\003|\001\147\000J\002\213\003\142\004\002\001\148\001l\003\143\004\003\004\021\006\194\003}\003\144\005\149\001g\000h\001h\006\014\000g\006\131\0005\001\018\004\020\004\005\003n\004\133\003\197\003\198\003o\001\172\000\138\000h\002\166\004n\000\139\005\147\005n\005o\006\197\004\007\0007\000\152\005\244\004C\005\138\006\196\003l\003\131\006_\001x\004\029\001\145\003:\006\198\006R\004:\003\140\006S\001\183\003*\006e\006_\000_\000\153\002\166\001\148\006~\006\188\004B\000h\000\140\002\247\006W\001i\003\200\003H\000\138\001j\003\141\005\n\000\147\005\139\000h\003\142\003:\003\000\000\140\003\143\000\183\000_\003\199\000\141\003\144\003L\006\\\000\142\000\203\000\138\007\022\005p\000J\000\139\004\020\000h\003n\004\021\006[\001w\003o\003\197\003\198\000\155\001u\001C\003\253\000\184\004\148\001\145\006\205\000\185\004p\003l\003\131\000\151\003|\000\157\0030\004\017\006P\004\002\004\142\001\152\000\140\004\003\004\021\006\194\003}\000\141\000J\005\t\006\127\000\142\003F\001g\006\131\001|\004\029\004&\004\005\004\"\001\012\004:\004{\000\140\000\179\004\011\000_\001\014\000\141\000e\004\144\000_\000\142\000h\004\007\000;\003;\000J\004C\000\151\006\196\003l\003\131\000=\001\015\004\029\0016\000\140\006\198\003n\004:\003\140\005\176\003o\001x\004s\000?\000_\002,\004\142\000\151\006~\006\188\004B\003\253\000h\000g\0017\003;\000\140\000\152\002\166\001i\003\141\003|\006c\001j\003@\003\142\004\002\000C\002\031\003\143\004\003\004\021\006\194\003}\003\144\006b\004\143\002\193\003:\000\153\002\197\006\131\003D\004~\004\020\004\005\003n\000B\000_\000_\003o\003\136\001\223\001w\004\188\006g\003@\003l\003m\000_\006\209\004\007\006k\000\152\000E\004C\002B\006\196\000J\001\145\003l\003\131\004\029\004\017\003D\006\198\000J\004:\003\140\001g\000\182\001{\004\237\001\154\000\152\000\153\000_\001\197\004\164\000g\002\164\004Z\004B\002\238\005_\000h\003|\002\198\006?\000_\003\141\002\199\001\189\006Z\000\203\003\142\000\153\000_\003}\003\143\000\183\005\017\004\239\000\140\003\144\003n\005`\006C\006D\003o\003\138\005c\005n\005o\000J\001\"\004\020\000G\003n\005\019\001x\000\181\003o\000\155\005m\000\140\003\253\000\184\001i\004\165\001\027\000\185\001j\003l\003\131\001\012\003|\000\157\000J\000h\005k\004\002\004/\003\140\000\155\004\003\004\021\006\194\003}\000_\000J\003l\003\131\002\164\004Z\004B\006\131\000J\000\157\001\015\004\005\0016\001w\000_\005\174\003\141\000\203\000_\002\239\002x\003\142\002\164\004Z\004B\003\143\005p\004\007\000h\000_\003\144\004C\006A\006\196\0044\005\173\002\212\003\024\004\029\003\022\004\020\006\198\003n\004:\003\140\002\242\003o\000L\002\213\005\250\002\193\000N\0048\002\197\003\197\003\198\003|\000J\004\020\003\253\003n\000\140\003\197\003\198\003o\000J\003\141\003\025\003}\003|\005\251\003\142\004\173\002\245\004\002\003\143\002\143\000_\004\003\004\021\003\144\003}\005\000\004h\0017\004\170\001\015\004\187\0016\001%\001x\0011\005v\004\005\001\028\005\251\001\029\000_\000\203\004\237\002\201\002\166\006d\000_\000J\000Q\000\140\006Z\000J\004\007\002\198\006n\002\210\004C\002\199\004b\005\020\002\247\000J\002\236\004\029\000J\004\017\004\"\004\231\004:\003\140\006_\005q\004\238\000J\002\248\003\253\000S\005\019\003\141\006\\\000W\000\203\003l\003\131\005\027\003|\001\"\001\231\000J\000\203\004\002\003\141\003\146\003\253\004\003\004\021\003\142\003}\004f\004h\003\143\001\027\005\029\003|\004P\003\144\001\"\001\228\004\002\004\005\005\030\003q\004\003\004\021\005!\003}\004\141\004h\006\133\003z\001g\001\027\001h\005\252\000J\004\007\006u\004\005\005\029\004C\002\193\004b\005\029\002\197\006z\006_\004\029\006\185\002\238\004\"\003n\004:\003\140\004\007\003o\003l\003\131\004C\006\001\004b\006\227\002\212\000d\005\174\004\029\000\203\005)\004\"\003\215\004:\003\140\000_\000h\002\213\003\141\002\164\004Z\004B\001\233\003\142\000\203\005\177\003\230\003\143\005+\000h\000\140\006\157\003\144\001i\002\166\000\205\003\141\001j\000h\005\255\000\140\003\142\004\017\006\200\002\198\003\143\005,\006\146\002\199\005\218\003\144\005/\000\138\000h\003:\004\020\000\139\003n\003l\003\131\004\189\003o\006[\001%\005+\001&\000\208\001w\001\028\005\029\001\029\005\216\000\203\003O\000_\005\219\005n\005o\002\164\004Z\004B\006a\004\198\001%\003\253\001+\002\247\005\240\001\028\000h\001\029\003S\000\203\001g\003|\001h\006\\\004\216\000\203\004\002\003\002\001\192\006\227\004\003\005\237\0057\003}\005:\000\140\005\238\005\241\005n\005o\000\141\004\020\000\212\003n\000\142\004\005\006\255\003o\003l\003\131\0059\006\185\0059\005\238\005\241\005n\005o\005=\001\194\006\185\004\232\004\007\006\234\006\252\000_\006\145\005p\007\030\006~\002\212\004\019\001x\000\151\006`\003\253\005\029\000\140\000\211\003\140\001i\000\214\002\213\007\031\001j\003|\000\216\000\138\000\220\000\222\004\002\000\147\000\225\000h\004\003\004\021\004/\003}\005\004\004h\000\229\003\141\005p\000_\006\191\004\020\003\142\003n\006\227\004\005\003\143\003o\006\207\000\228\001w\003\144\007\006\000\231\000\138\005p\000\138\000\233\000\139\006\201\000\139\004\007\000\237\000\239\000\241\004C\000\245\004b\000_\001g\003\253\001h\004\029\0044\000\244\004\"\001}\004:\003\140\000\140\003|\005\195\005n\005o\000\141\004\002\000\152\002\247\000\142\004\003\004\021\0048\003}\006\154\004h\006\254\007\018\006\228\006\227\000_\003\141\003\004\007\017\007\025\004\005\003\142\000\247\007\024\000\153\003\143\000\140\007\007\000\140\000\249\003\144\000\141\000\151\000\141\000\005\000\142\004\007\000\142\003l\003\131\004C\000\140\004b\001x\001i\000\252\002\166\004\029\001j\003\253\004\"\006\147\004:\003\140\000_\005\229\005n\005o\006~\003|\004\019\005p\000\254\000\151\004\002\000\151\000J\001\000\004\003\004\021\006\187\003}\000\155\001\002\001g\003\141\001h\006<\001w\006\131\003\142\007\006\006\139\006\190\003\143\001\006\000\159\001F\007\006\003\144\002\193\006\230\001\011\002\197\004\020\001;\003n\001A\001@\004\007\003o\003l\003\131\004\024\006\192\001\222\001\221\001\227\001\241\000\152\004\029\001\145\006\186\006\198\001\244\004:\003\140\000_\001\248\005p\001\247\006~\001\250\004\019\001\252\001\156\001T\002\000\002\002\007\007\000\140\000\153\002\005\001i\007\007\002\t\002\008\001j\003\141\001g\000\152\001h\000\152\003\142\002\011\006\232\000\140\003\143\002\013\002\017\002\198\001\195\003\144\000\203\002\199\001x\000\183\004\020\002\019\003n\002\021\002\025\000\153\003o\000\153\002\024\002\027\001w\002\029\003l\003\131\002 \002\"\002$\006\150\006\189\006\151\000h\006\140\000\155\006\141\002&\000\203\000\184\002*\000_\003\253\000\185\0023\002\164\0022\004\019\005\185\000\157\002A\000\140\003|\002G\001i\002F\002\138\004\002\001j\002J\002M\004\003\004\021\006\187\003}\006\140\000\155\006\141\000\155\000\203\005\183\002Q\006\131\005\186\005n\005o\006\190\004<\002P\001\145\000\161\004\020\000\163\003n\002S\003l\003m\003o\001w\002U\002Y\002[\004\007\001\158\002^\004@\004\024\006\192\002b\002a\001x\002d\002f\004\029\002\212\003\253\006\198\005\182\004:\003\140\002j\002l\002n\002r\002q\003|\002\213\005\012\002t\002v\004\002\004\136\003l\003\131\004\003\004\021\006\187\003}\002y\005\183\002{\003\141\005\186\005n\005o\006\131\003\142\005p\000_\006\190\003\143\000\140\002\164\003n\004\019\003\144\002}\003o\000\138\002\127\002\131\002\137\001\209\002\136\002\142\004\007\002\148\002\147\005h\004\024\006\192\005\144\005{\005\137\005\179\001x\004\029\005\214\001\145\006\198\005\236\004:\003\140\003\253\003l\003m\005\246\006\016\004\020\006\166\003n\006\212\001\160\003|\003o\002\215\006\216\006\235\004\002\006\239\003l\003\131\004\003\004\021\003\141\003}\005p\006\240\004\012\003\142\006\245\006\246\006\251\003\143\000\140\006\250\000_\004}\003\144\000\141\002\164\004\014\004\019\000\142\004\134\007\002\007\004\007\n\004\136\002\193\007\011\007\015\002\197\004\007\007\016\007\019\007\020\004\024\004\127\007\023\000\140\007\026\003n\001\145\004\029\007\027\003o\004\"\007#\004:\003\140\000\151\007'\003|\000\000\000\000\004\020\001\162\003n\000\000\000\138\000\000\003o\000\000\000\147\003}\000\138\000\000\000\000\000\000\000\149\000\000\003\141\002\193\000\000\000\000\002\197\003\142\000\000\000\000\003\253\003\143\000\000\000\000\000\000\000\140\003\144\003l\003\131\002\198\003|\000\000\000\000\002\199\000\000\004\002\004\026\000\000\000\000\004\003\004\021\000\138\003}\000_\000\000\001V\000\000\002\164\004\027\004B\005\206\000\000\000\000\000\000\004}\000\000\000\140\000\000\000\000\000\000\000\000\000\141\000\140\000\000\000\000\000\142\000\000\000\141\000\152\000\140\004\007\000\142\003\130\002\198\004\024\004\127\000\000\002\199\001\170\000\000\000\000\004\029\003|\004\020\004\"\003n\004:\003\140\003\253\003o\000\153\000\000\000\000\000\151\003}\003l\003\131\000\140\003|\000\151\000\000\000\000\000\141\004\002\004E\000\000\000\142\004\003\004\021\003\141\003}\000_\000\000\000\000\003\142\002\164\004\027\004B\003\143\000\000\000\000\000\000\004G\003\144\000\000\000\000\000\000\002\212\000\138\000\000\000\000\000\000\000\139\000\000\000\151\000\000\000\000\000\000\004\007\002\213\000\000\005\237\004\024\004I\000\000\003l\003\178\000\000\000\000\004\029\000\000\004\020\004K\003n\004:\003\140\000\000\003o\003l\003\131\000\000\003~\000\000\005\238\005\241\005n\005o\004J\000\000\000\000\000\152\002\212\000\000\000\000\000_\003\253\000\152\003\141\002\164\004\027\004B\000\000\003\142\002\213\000\140\003|\003\143\000\182\000\000\000\141\004\002\003\144\000\153\000\142\004\003\004\021\000\000\003}\000\153\006\006\000\000\000\140\000\000\003n\000\000\000\000\000\000\003o\002\247\004\005\000\000\000\152\000\000\000\000\004\020\000\000\003n\000\183\000\000\000\000\003o\000\151\003\006\000\154\000\000\004\007\003l\003m\005p\004C\000\000\004D\000\000\000\153\000\000\000\000\004\029\000\000\000\000\004\"\000\155\004:\003\140\003\253\000\184\000\000\000\155\000\000\000\185\000\000\000\000\000\194\002\247\003|\000\157\001g\000\000\001h\004\002\000\000\000\157\006\n\004\003\004\021\003\141\003}\003\008\000\000\000\000\003\142\000\000\000\000\000\000\003\143\000\000\000\000\000\000\004\005\003\144\000\000\003l\003\131\000\140\006\008\003n\006\011\005n\005o\003o\000\000\000\000\002\193\000\000\004\007\002\197\000\000\000_\004C\000\152\004D\002\164\004Z\004B\003|\004\029\000\000\003\253\004\"\000\000\004:\003\140\000\140\000\000\000\138\001i\003}\003|\001S\001j\000\000\000\153\004\002\000\000\000\000\000\000\004\003\004\021\000\138\003}\000\000\002\193\000\147\003\141\002\219\006\024\000\000\004\020\003\142\003n\000\000\004\005\003\143\003o\003l\003\131\000\000\003\144\000\140\001w\005p\000\000\002\198\000\000\000\000\000\000\002\199\004\007\000\000\000\000\000_\004C\000\000\004D\002\164\004Z\004B\000\000\004\029\000\155\000\140\004\"\000\000\004:\003\140\000\141\000\000\002\193\000\000\000\142\002\197\000\000\000\000\000\165\000\140\003|\005\182\000\140\000\000\000\141\000\000\002\198\000\000\000\142\000\000\002\199\003\141\003}\000\000\000\000\004\020\003\142\003n\003l\003\131\003\143\003o\000\151\005\183\000\000\003\144\005\186\005n\005o\000\000\000_\000a\0019\000e\000_\000\000\000\151\000\000\002\164\004Z\004B\001x\000\000\000\000\003\253\000\000\000\000\000\000\000\140\000\000\000\000\000\000\002\198\000\000\003|\000\000\002\199\002\173\000\000\004\002\000\000\000\000\000\000\004\003\004\021\002\212\003}\000\000\004a\000\000\000g\000\000\000\000\000\000\004\020\000\000\003n\002\213\004\005\003\141\003o\003l\003\131\000\000\000\138\000\000\000\000\000\000\001R\000\000\005p\000\000\000\000\003\148\004\007\000\000\005\146\000_\004C\000\152\004b\002\164\004\128\004B\002\212\004\029\000\000\003\253\004\"\001\145\004:\003\140\000\000\000\152\000\000\000\000\002\213\003|\005\147\005n\005o\000\153\004\002\001\164\000\000\000\000\004\003\004\021\000\138\003}\001\183\004c\000\147\003\141\000\000\000\153\000\000\004\020\003\142\003n\000\140\004\005\003\143\003o\000_\000\141\002\214\003\144\000\000\000\142\002\212\003l\003m\000\000\000\000\000\000\000\000\004\007\000\000\000\000\000\183\004C\002\213\004b\000\000\000\000\003\253\000\000\004\029\000\000\000\000\004\"\000\000\004:\003\140\004\130\003|\000\151\000\000\003l\003\129\004\002\005p\000\155\000\140\004\003\004\021\000\184\003}\000\141\004u\000\185\000\000\000\142\005\224\000\000\003\141\000\157\000\000\000\000\004\005\003\142\001\012\003l\003\131\003\143\000\000\000\140\000\000\003n\003\144\000\000\000\000\003o\000\000\000\000\004\007\000\000\000\000\000_\004C\000\151\004b\002\164\004\128\004B\001\015\004\029\0016\003\253\004\"\002\247\004:\003\140\000\000\000\140\000\000\003n\000\000\003|\000\000\003o\000\000\000\000\004\002\003\n\000\000\000\000\004\003\004\021\000\000\003}\000\000\000\000\000\152\003\141\000\000\000\000\000\000\004\020\003\142\003n\000\000\004\005\003\143\003o\003l\003\131\000\000\003\144\000\000\000_\000a\001>\000e\004\150\000\153\000\000\000\000\004\007\000\000\000\000\000_\004C\000\000\004\131\002\164\004\027\004B\005\150\004\029\000\000\000\000\004\"\000\000\004:\003\140\004\132\000\152\000\000\000\000\000\000\000\138\000\000\000\138\000\000\000\139\000\000\000\139\003|\000\000\000g\000\197\000\198\000\200\000\201\000\000\000\000\003\141\000\000\000\153\003}\004\020\003\142\003n\000\000\000\000\003\143\003o\000\000\000\000\000\000\003\144\000\000\003l\003\131\000\000\003|\000\000\000\000\000\202\000\000\000\203\000\000\000\000\000\183\000\000\000\000\000\138\003}\000_\003\253\000\147\000\000\002\164\000\000\004\019\000\000\000\140\000\000\000\140\003|\000\000\000\141\000\000\000\141\004\002\000\142\000\155\000\142\004\003\004\021\000\184\003}\000\000\000\000\000\185\000\000\000\000\000\000\000\000\000\000\000\157\000\000\001G\004\005\000\000\000\000\003\141\000\000\004\020\000\000\003n\000\000\000\000\000\151\003o\000\151\000\000\000\000\000\000\004\007\003\150\000\000\000\140\004C\000\000\004\131\000\000\000\141\000\000\000\000\004\029\000\142\003\253\004\"\000\000\004:\003\140\000\000\001g\000\000\001z\000_\003|\000\000\004\254\002\164\000\000\004\002\004\136\003l\003\131\004\003\004\021\000\000\003}\000\000\000\000\000\000\003\141\000\151\000\000\001\012\000\000\003\142\000\000\000_\004\005\003\143\006_\002\164\000\000\004\019\003\144\000_\000a\001\219\000e\000\000\000\000\000\000\000\000\003N\004\007\000\000\002\166\001\015\004C\0016\004D\000\000\000\152\000\000\000\152\004\029\000\140\000\000\004\"\001i\004:\003\140\003\253\001j\000\000\000\000\003:\004\020\000\000\003n\000\000\000\000\003|\003o\000\153\000g\000\153\004\002\000\000\003l\003\131\004\003\004\021\003\141\003}\000\000\000\000\000\000\003\142\000\000\003&\000\000\003\143\001w\000\000\000_\004}\003\144\000\152\002\164\000\000\004\019\000\000\005\014\000\000\003l\003\128\004\136\000\000\000\000\000\000\000\000\004\007\000\000\000\000\002\234\004\024\004\127\000\000\000\000\000\153\000\000\000\155\004\029\000\155\000\000\004\"\000\000\004:\003\140\005\146\000\000\000\000\000\000\000\000\004\020\000\167\003n\000\169\000\000\000\000\003o\003l\003\131\000\000\000\183\000\000\000\000\000\000\000\000\000\000\003\141\005\147\005n\005o\004\021\003\142\000\000\000_\003\253\003\143\000\140\002\164\003n\004\019\003\144\000\000\003o\000\155\003|\001x\005\016\000\184\000\000\004\002\004\136\000\185\000h\004\003\004\021\004/\003}\000\157\000\000\000\000\000\000\000\000\006c\000\000\0052\000\000\000\000\000\000\004}\002\193\000\000\004\029\002\197\004\020\004\"\003n\004:\000\000\000\000\003o\000\000\005\146\001\012\000\000\004\007\000\000\000\138\000\000\004\024\004\127\000\147\005p\000\000\000\000\000\000\004\029\0044\000\000\004\"\000\000\004:\003\140\003\253\005\147\005n\005o\001\015\000\000\0016\006h\000\000\000\000\003|\004\136\0048\000\000\000\000\004\002\001g\006\007\001h\004\003\004\021\003\141\003}\000\140\000\000\000\000\003\142\002\198\000\000\000\000\003\143\002\199\000\000\000\000\004}\003\144\003|\003l\003\131\006\008\000\140\006\011\005n\005o\000\000\000\141\006p\000\000\003}\000\142\004\007\000\000\000\000\000_\004\024\004\127\000\000\002\164\004\027\004B\000\000\004\029\000\000\003\253\004\"\005p\004:\003\140\000\000\000\000\000\138\000\000\000\140\003|\000\139\001i\000\000\000\151\004\002\001j\000\138\000\000\004\003\004\021\000\139\003}\000\000\000\000\005\146\003\141\000\000\000\000\000\000\004\020\003\142\003n\005\153\004}\003\143\003o\003l\003\131\000\000\003\144\000\000\005p\000\000\000\000\000\000\001w\005\147\005n\005o\004\007\000\000\000\000\000_\004\024\004\127\000\000\002\164\000\000\004\019\000\000\004\029\002\212\000\140\004\"\000\000\004:\003\140\000\141\000\000\000\000\000\000\000\142\000\140\002\213\000\138\000\000\000\000\000\141\000\149\000\000\000\000\000\142\002\232\000_\000a\0020\000e\000\000\003\141\000\000\000\152\000\000\004\020\003\142\003n\003l\003\131\003\143\003o\000\151\000\000\000\000\003\144\005\146\006\159\000\000\000\000\002\234\005\159\000\151\005p\000_\000\153\000\000\000\000\002\164\004\027\004B\000\000\000\000\000\000\003\253\001x\000g\000\000\005\147\005n\005o\006v\000\000\000\140\003|\004\136\000\000\000\000\000\141\004\002\000\183\000\000\000\142\004\003\004\021\002\247\003}\000\000\002\193\006\022\000\000\002\197\000\000\000\000\004\020\000\000\003n\000\000\004\005\003\012\003o\000\000\000_\000\155\000\000\000\000\000\000\000\184\003l\003m\000\151\000\185\000\000\005\182\004\007\000\000\000\000\000\157\004C\000\152\004D\000\000\000\000\000\000\000\000\004\029\000\000\003\253\004\"\000\152\004:\003\140\005p\001y\000\000\005\183\000\000\003|\005\186\005n\005o\000\153\004\002\000\000\000\140\000\000\004\003\004\021\002\198\003}\000\000\000\153\002\199\003\141\000\000\004\145\003l\003\131\003\142\000\000\005\157\004}\003\143\000\000\000\140\000\000\003n\003\144\001\"\000\000\003o\000\000\000_\003l\003\127\000\000\002\164\004\007\004B\000\000\000\000\004\024\004\127\001\027\000\000\000\000\003\253\000\152\004\029\000\155\000\000\004\"\000\000\004:\003\140\000\000\003|\000\000\001\012\000\155\000\000\004\002\005p\000\171\000\000\004\003\004\021\000\000\003}\000\153\000\000\000\000\004\020\000\173\003n\000\000\003\141\000\000\003o\000\000\004\005\003\142\001\015\000\000\0016\003\143\000\000\000\000\000_\000\140\003\144\003n\000\000\000\000\000\154\003o\004\007\000\000\000\000\005\170\004C\000\000\004D\003l\003\131\000\000\002\212\004\029\000\000\000\000\004\"\000\000\004:\003\140\000\000\004F\000\000\000\155\002\213\000_\003l\003m\000\156\002\164\000\000\004\019\003|\000_\000a\002?\000e\000\157\000\000\000\000\000\000\003\141\000\000\000\000\003}\000\000\003\142\000\000\000\000\000\000\003\143\000\000\006\007\000\000\000\000\003\144\000\000\001%\000\000\0033\001\"\000\000\001\028\000\000\001\029\004\020\000\203\003n\000\000\000\000\003\253\003o\006!\000g\006\008\001\027\006\011\005n\005o\000\000\003|\000\000\000\140\000\000\003n\004\002\003l\003\131\003o\004\003\004\021\000\000\003}\002\247\003l\003\131\000\000\003|\004\018\000\000\000\000\000\000\000_\000\000\004\147\000\000\002\164\003\014\004\019\003}\000_\003\141\000\000\000\000\002\164\000\000\004\019\000\000\000\000\000\000\004\007\000_\000\000\000\000\004C\003\152\004\149\000\000\000\000\000\000\000\000\004\029\000\000\000\000\004\"\000\000\004:\003\140\000\000\000\000\005p\000\000\004\020\000\000\003n\000\000\000\000\000\000\003o\000\000\004\020\000\000\003n\000\000\000\138\000\000\003o\003\253\000\147\003\141\000\000\000\000\000\000\000\000\003\142\000\000\000\000\003|\003\143\000\000\000_\000\000\004\002\003\144\000\000\000\000\004\003\004\021\000\000\003}\000\000\003l\003\131\001%\003|\003=\000\000\001\"\001\028\000\000\001\029\004\022\000\203\004\028\000\000\000\000\003}\000_\000\000\000\000\000\000\002\164\001\027\004\019\000\000\001\012\000\000\004\007\000\000\000\000\000\140\004\024\004\025\000\000\000\000\000\141\000\000\000\000\004\029\000\142\000\000\004\"\000\000\004:\003\140\000\000\000\000\002\193\000\000\001\015\002\197\0016\000\000\000\000\003\253\000\000\000\000\004\020\000\000\003n\000\000\000\000\003\253\003o\003|\006\027\003\141\000\151\000\000\004\002\000\000\003\142\003|\004\003\004\021\003\143\003}\004\002\003l\003\131\003\144\004\003\004\021\003\141\003}\000\138\000\000\000\000\004\022\000\149\004e\000\000\000\000\000\000\000_\000\000\004^\003\154\002\164\000\000\004\019\000\000\000\000\000\140\004\007\000\000\000\000\002\198\004\024\004\025\000\000\002\199\004\007\000\000\000\000\004\029\004\024\004`\004\"\000\000\004:\003\140\000\000\004\029\000\000\000\000\004\"\000\000\004:\003\140\001%\001g\004)\001h\004\020\001\028\003n\001\029\000\000\000\203\003o\000\140\000\000\003\141\000\152\000\000\000\141\000\000\003\142\003\253\000\142\003\141\003\143\000_\000\000\000\000\003\142\003\144\001I\003|\003\143\000\201\000\000\000\000\004\002\003\144\000\153\000\000\004\003\004\021\000\000\003}\000\000\003l\003\131\000\000\000\000\000\000\000\151\000\000\000\000\000\000\000\000\004\022\000\000\005\146\000\202\000\140\000\203\000_\001i\000\183\000\000\002\164\001j\004\019\000\000\000\000\000\000\004\007\000\000\000\000\000\138\004\024\004\025\002\212\000\139\005\147\005n\005o\004\029\000\000\000\000\004\"\000\155\004:\003\140\002\213\000\184\001\"\000\000\000\000\000\185\000\000\001w\000\000\003\253\000\000\000\157\004\020\001G\003n\000\000\000\000\001\027\003o\003|\000\000\003\141\000\000\000\000\004\002\000\000\003\142\000\000\004\003\004\021\003\143\003}\000\000\003l\003\131\003\144\000\000\004]\000\152\000\000\000\138\000\140\000\000\004^\000\149\000\000\000\141\000\000\000\000\000_\000\142\000\000\000\000\002\164\005p\004\019\000\000\000\000\000\000\004\007\000\153\000\000\000\000\004\024\004`\000\000\000\000\000\000\006\007\002\247\004\029\000\000\000\000\004\"\000\000\004:\003\140\000\000\000\151\002\193\000\000\000\000\002\218\003\016\001x\000\154\000\000\000\000\000\000\004\020\006\008\003n\006\011\005n\005o\003o\000\140\000\000\003\141\000\000\000\000\000\141\000\000\003\142\003\253\000\142\000\000\003\143\000\155\000\000\000\000\000\000\003\144\000\193\003|\000\000\000\000\000\000\000\000\004\002\003l\003\131\000\157\004\003\004\021\001%\003}\0041\003l\003\131\001\028\004q\001\029\000\151\000\203\000\140\000_\000\000\004r\002\198\002\164\000\000\004\019\002\199\000_\000\000\000\000\000\000\002\164\000\000\004\019\000\000\001\145\000\000\004\007\000\152\005p\002\193\004\024\004t\002\217\005\168\000\000\000\000\000\000\004\029\001\166\000\000\004\"\000\000\004:\003\140\000\000\000\000\000\000\000\000\004\020\000\153\003n\000\000\000\000\003\253\003o\000\000\004\020\000\000\003n\000\000\000\000\000\000\003o\003|\000\000\003\141\000\000\000\000\004\002\000\000\003\142\000\000\004\003\004\021\003\143\003}\000\000\000\000\000\000\003\144\000\000\004o\000\152\000\000\000\000\000\140\000\000\004^\004|\002\198\001g\000\000\001h\002\199\000\000\000\000\004\129\000\155\000_\000a\002D\000e\000\000\004\007\000\153\000\000\000\000\004\024\004`\002\212\000\000\000\175\000_\000\000\004\029\003l\003\131\004\"\000\000\004:\003\140\002\213\000\000\003l\003\131\000\000\006l\000\000\000\000\000\154\000\000\000_\000\000\006)\006x\002\164\000\000\004\019\000g\000_\003\253\000\000\003\141\002\164\000\000\004\019\000\140\003\142\003\253\001i\003|\003\143\000\155\001j\000\000\004\002\003\144\000\196\003|\004\003\004\021\000\000\003}\004\002\000\000\000\000\000\157\004\003\004\021\000\000\003}\004\020\000\000\003n\004}\000\000\000\000\003o\001\"\004\020\000\000\003n\004}\001w\000\000\003o\000\000\002\212\000\000\000\000\004\007\000\000\000\000\001\027\004\024\004\127\000\000\002\193\004\007\002\213\002\197\004\029\004\024\004\127\004\"\000\000\004:\003\140\000\000\004\029\003l\003\131\004\"\000\000\004:\003\140\000\000\000\000\000\000\000\000\000\000\006{\000\000\000\138\000\000\000\000\000_\000\147\000\000\003\141\002\164\000\000\004\019\000\000\003\142\000\000\000\000\003\141\003\143\000_\000\000\000\000\003\142\003\144\000\000\000\000\003\143\000\000\001g\000\000\001h\003\144\000\000\000\140\000\000\000\000\000\000\002\198\000\000\002\193\001x\002\199\002\197\003\253\000\000\000\000\004\020\000\000\003n\000\000\001\012\003\253\003o\003|\000\000\000\000\000\000\000\000\004\002\000\140\000\000\003|\004\003\004\021\000\141\003}\004\002\000\000\000\142\000\000\004\003\004\021\000\000\003}\001\015\000\000\0016\006m\000\000\000\000\000\000\001%\000\000\004\176\000\140\006m\001\028\001i\001\029\000\000\000\203\001j\000\000\004\007\000\000\002\238\000\151\004\024\006o\002\198\000\000\004\007\000\000\002\199\004\029\004\024\006o\004\"\001\145\004:\003\140\000\000\004\029\003l\003\131\004\"\000\000\004:\003\140\000\000\000\000\001w\001\168\000\000\000\000\000\000\000\138\000\000\005\146\000_\000\147\000\000\003\141\004\163\000\000\002\212\000\000\003\142\003\253\000\000\003\141\003\143\000_\005\146\000\000\003\142\003\144\002\213\003|\003\143\005\147\005n\005o\004\002\003\144\000\000\004\194\004\003\004\021\000\000\003}\000\000\000\000\000\000\000\000\005\147\005n\005o\000\000\004\197\000\000\003n\006m\000\152\000\000\003o\000\000\000\000\000\000\000\000\002\239\000\000\000\140\000\000\000\000\000\000\000\000\000\141\004\007\000\000\001W\000\142\004\024\006o\004\203\000\153\000\000\002\212\001x\004\029\002\241\000\000\004\"\000\000\004:\003\140\002\242\000\000\000\138\002\213\000\000\000\000\000\147\000\000\005p\001Y\002\247\000\203\000\000\000\151\000\183\000\138\000\000\004\240\000_\000\147\003\136\003\141\001\181\005p\003\018\005\146\003\142\000\000\002\245\000\000\003\143\000_\000\000\000\000\000\000\003\144\000\000\000\155\000\138\000\000\000\000\000\184\000\139\000\000\000\000\000\185\000\000\005\147\005n\005o\000\000\000\157\000\000\000\138\000\000\000\000\000\000\000\147\000\140\006\007\001\145\000\000\000\000\000\141\000\000\003|\000\000\000\142\000\000\000_\000\000\000\140\002\247\000\000\001\174\004\204\000\141\003}\000\000\000\000\000\142\006\008\000\000\006\011\005n\005o\002\248\000\138\000\000\004\242\000\152\000\149\000\000\000\000\000\140\000\151\000\000\000\000\000\000\000\141\000\000\000\000\000\000\000\142\000\197\001n\000\200\000\201\000\151\000\140\000\000\005p\000\153\000\000\000\141\005\166\004\207\000\000\000\142\004\243\000\000\004\230\003\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\193\000\151\000\202\000\000\000\203\000_\000\000\000\183\000\000\002\164\000\000\000\000\000\000\000\140\003\141\000\000\000\151\005p\000\141\003\142\000\138\000\000\000\142\003\143\000\147\000\000\000\000\000\000\003\144\000\000\000\155\000\000\000\000\000\000\000\184\000\000\000_\000\000\000\185\000\000\000\000\000\000\000\152\000\000\000\157\003N\001G\000\000\000\000\000\000\000\151\000_\000a\002\134\000e\000\152\000\197\002\203\000\200\000\201\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\197\003s\000\200\000\201\000\000\000\000\000\000\000\140\000\153\000\152\000\000\000\000\000\141\000\000\000\000\000\202\000\142\000\203\000\000\005\204\000\183\000\000\000g\000_\000\152\000\000\000\000\000\000\000\202\000\000\000\203\000\153\000\000\000\183\003l\003\131\000\000\000\000\000\197\003\255\000\200\000\201\000\000\000\155\000\151\000\000\000\153\000\184\000\000\000\000\000_\000\185\000\000\0060\004\163\000\000\000\155\000\157\000\152\001G\000\184\000\000\000\000\000\000\000\185\000\000\000\202\000\000\000\203\000\000\000\157\000\183\001G\000\000\000\000\000\000\000\000\004\244\000\000\000\155\000\153\000\000\000\000\003l\003\131\000\000\000\000\000\000\004\021\001\"\004\197\000\000\003n\000\177\000\155\000\000\003o\000\138\000\184\000_\000\000\000\147\000\185\004\163\001\027\000\154\000\000\000\000\000\157\000\000\001G\000\000\000\000\000_\000\000\004\203\000\000\000\000\000\000\000\000\000\138\000\152\0054\000\000\000\139\000\000\004\196\000\000\000\155\004\029\000\000\000\000\004\"\001\128\004:\000\197\004\031\000\200\000\201\004\197\000\000\003n\000\157\000\153\000\000\003o\000_\000a\002\140\000e\005\146\000\000\000\000\000\140\001\012\000\000\000\000\000\000\000\141\000\000\000\000\000\000\000\142\000\202\004\203\000\203\000\000\000\000\000\183\000\000\000\000\000\000\005\147\005n\005o\000\000\000\140\000\000\001\015\000\000\0016\000\141\000\000\000\000\000\000\000\142\000g\000\000\000\000\000\000\000\151\000\155\003|\000\000\000\000\000\184\000\000\000\000\000\000\000\185\003l\003\131\004\204\000\000\003}\000\157\000\000\001G\003l\003\131\000\000\000\000\001%\000\151\004\219\000\000\004\205\001\028\000\000\001\029\000\000\000\203\003\246\005\011\000\000\000\000\000\000\000\000\000\000\000\000\004N\000\000\000\000\000_\000\000\000\000\005p\002\164\003l\003\131\000\000\003|\000\000\004\207\000\000\000\000\004\212\000\000\004\230\003\140\000\000\004\204\000\000\003}\000\000\000\000\002\238\000\000\003n\000\000\003\246\004W\003o\000\000\002\238\004\205\003n\000\152\000\000\000\000\003o\003\141\000\000\003N\000\000\000\000\003\142\000\000\000\000\005\146\003\143\000\197\004\209\000\200\000\201\003\144\000\000\000\000\000\000\000\153\000\152\000\000\004\207\000\000\002\238\004\212\003n\004\230\003\140\000\000\003o\005\147\005n\005o\000\000\000\000\000\000\000\000\000\000\000\202\000\000\000\203\000\153\000\000\000\183\000\000\005\146\004T\001\012\000\000\003\141\003\136\000\000\000\000\000\000\003\142\000\000\000\000\002\193\003\143\000\000\002\216\000\000\000\000\003\144\000\000\000\000\000\155\005\147\005n\005o\000\184\001\015\005\209\0016\000\185\000\000\000\000\003\253\000\000\000\000\000\157\000\000\001G\003l\003\131\003\253\000\000\003|\000\000\000\155\000\000\000\000\004\002\000\000\005p\003|\004\003\000\000\000\000\003}\004\002\003l\003\131\000\187\004\003\003\246\004M\003}\000\000\000\000\000\000\004\005\000\000\000\140\004\021\003\253\000\000\002\198\000\000\004V\000\000\002\199\000\000\003\246\003\247\003|\000\000\004\007\000\000\000\000\004\002\005p\000\000\002\193\004\003\004\007\002\197\003}\000\000\002\238\000\000\003n\000\000\000\000\003\140\003o\005\146\000\000\0056\004\005\000\000\001g\003\140\001h\000\000\004\029\000\000\002\238\004\"\003n\004:\000\000\000\000\003o\000\000\004\007\003\141\000\000\005\147\005n\005o\003\142\000\000\000\000\003\141\003\143\000\000\000\000\000\000\003\142\003\144\000\000\003\140\003\143\000\000\000\000\000\000\000\000\003\144\002\238\000\000\000\000\000\000\002\198\000\000\000\000\000\000\002\199\003l\003\131\000\000\005\233\000\000\000\000\003\141\000\000\000\000\000\140\000\000\003\142\001i\003l\003\131\003\143\001j\002\212\000\000\000\000\003\144\000\000\003\246\004\001\000\000\000_\000a\002\145\000e\002\213\000\000\000\000\000\000\003\253\005p\003\246\004Y\000\000\000\000\000\000\005\231\000\000\000\000\003|\000\000\000\000\001w\000\000\004\002\000\000\000\000\003\253\004\003\000\000\000\000\003}\002\238\000\000\003n\003l\003\131\003|\003o\000\000\000\000\000g\004\002\004\005\000\000\002\238\004\003\003n\000\000\003}\000\000\003o\002\239\000\000\000\000\000\000\000\000\003\246\005$\004\007\000\000\004\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\212\003\019\003$\003\022\000\000\000\000\000\138\003\140\004\007\002\242\000\149\000\000\002\213\000\000\000\000\000\000\000\000\003l\003\131\000\000\006\007\000\000\002\238\000\000\003n\003\140\000\000\000\000\003o\003\141\001x\003\025\000\000\000\000\003\142\003l\003m\002\245\003\143\003\246\005&\000\000\006\008\003\144\006\011\005n\005o\003\141\006\031\000\000\000\138\000\000\003\142\000\000\000\147\003\253\003\143\000\000\000\000\000\000\000\000\003\144\000\140\003l\003\131\003|\000_\000\141\003\253\000\000\004\002\000\142\000\000\002\238\004\003\003n\000\000\003}\003|\003o\000\000\002\247\000\000\004\002\000\000\003\246\005(\004\003\000\000\004\005\003}\000\140\000\000\003n\000\000\002\248\000\000\003o\001\145\000\151\000\000\000\000\004\005\000\000\001\012\004\007\000\140\000\000\005p\000\000\000\000\000\141\001\176\000\000\003\253\000\142\000\000\000\000\004\007\002\238\000\000\003n\003\140\000\000\003|\003o\000\000\000\000\001\015\004\002\0016\000\000\000\000\004\003\000\000\003\140\003}\000\000\000\000\000\000\000\000\000\000\000\000\000\151\003\141\000\000\000\000\000\000\004\005\003\142\000\000\000\000\000\000\003\143\000\000\000\000\000\000\003\141\003\144\000\000\000\000\000\000\003\142\000\138\004\007\003\253\003\143\000\147\000\000\000\000\000\000\003\144\000\000\000\000\000\000\003|\000\152\000\000\000\138\000_\004\002\003\140\000\147\000\000\004\003\000\000\000\000\003}\000\000\000\000\000\000\000\000\000\000\003|\000_\000\000\000\000\000\000\000\153\004\005\000\000\000\000\000\000\003\141\000\000\003}\000\000\000\000\003\142\000\000\000\000\003\253\003\143\0063\000\000\004\007\000\000\003\144\000\000\000\140\000\152\003|\000\000\000\154\000\141\000\000\004\002\000\000\000\142\000\000\004\003\000\000\003\140\003}\000\140\000\000\000\138\001W\000\000\000\141\000\147\000\000\000\153\000\142\000\000\004\005\000\155\000\000\000\000\000\000\000\000\001\130\000_\000\000\003\141\000\000\000\151\000\000\000\000\003\142\000\157\004\007\001\201\003\143\000\203\000\138\000\000\000\183\003\144\000\147\000\000\000\151\003\141\000\000\000\000\000\000\000\000\000\000\003\140\002\193\000\000\000_\002\197\000\000\000\000\000\000\003\156\000\000\000\000\000\000\000\155\000\000\000\140\000\000\000\184\000\000\000\000\000\141\000\185\000\000\003\141\000\142\000\000\000\000\000\157\003\142\000\000\000\000\000\138\003\143\000\000\000\000\000\147\000\000\003\144\000\000\000\000\000\000\000\000\000\000\000\000\000\140\000\000\000\138\000_\000\000\000\141\000\139\000\000\000\151\000\142\000\000\000\000\000\152\000\000\002\238\000\000\000\000\000\000\002\198\000\000\000\000\000\000\002\199\000\000\000\000\000\000\000\000\000\152\000\000\001T\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\151\000\000\000\000\000\000\000\000\000\000\000\140\002\176\000\000\000\000\000\000\000\141\000\153\000\000\000\000\000\142\000\000\001\207\000\000\000\203\000\000\000\140\000\183\000\000\000\000\000\000\000\141\000\000\000\000\000\000\000\142\000\000\002\178\000\000\000\203\000\000\000\000\000\183\000\000\000\000\000\000\002\193\000\000\000\151\002\197\000\155\000\000\000\000\000\152\000\184\000\000\002\193\000\000\000\185\002\197\000\000\000\000\000\000\000\151\000\157\000\155\000\000\002\239\000\000\000\184\002\176\000\000\000\000\000\185\000\000\000\153\000\000\000\000\000\000\000\157\000\000\000\000\000\152\006\007\002\212\003\019\003\020\003\022\000\000\002\193\000\138\000\000\002\197\002\242\000\147\002\195\002\213\000\203\000\000\003\\\000\183\000\000\002\238\000\000\000\153\006\008\002\198\006\011\005n\005o\002\199\000\000\002\238\000\000\000\000\003\025\002\198\000\000\000\000\000\000\002\199\002\245\000\000\000\155\003^\000\152\000\203\000\184\000\138\000\183\002\193\000\185\000\147\002\197\000\000\000\000\000\000\000\157\000\000\000\000\000\152\000\000\003\\\000\000\000\000\002\238\000\140\000\153\000\000\002\198\000\000\000\141\000\155\002\199\000\000\000\142\000\184\000\000\000\000\000\000\000\185\000\000\000\153\000\000\000\000\002\247\000\157\003\176\000\000\000\203\000\000\005p\000\183\000\138\000\000\000\000\000\000\000\147\000\000\002\248\000\000\000\000\000\000\000\151\000\140\000\000\002\238\002\239\000\138\000\141\002\198\000\000\000\147\000\142\002\199\000\155\000\000\002\239\000\000\000\184\000\000\000\000\000\000\000\185\002\212\003\019\006r\003\022\000\138\000\157\000\155\000\000\000\147\002\242\002\212\000\000\002\213\003\026\000\000\000\000\000\000\000\151\000\000\002\242\000\189\000\000\002\213\000\000\000\000\000\140\002\239\000\000\000\000\000\000\000\141\003\025\000\000\000\000\000\142\000\000\000\000\002\245\000\000\000\000\000\140\003\028\000\000\002\212\000\000\000\141\003\026\002\245\0037\000\142\000\000\000\000\002\242\000\000\000\000\002\213\000\152\000\000\000\000\000\000\000\140\000\000\000\151\000\000\000\138\000\141\000\000\002\239\000\147\000\142\000\000\000\000\006:\002\234\003\028\000\000\000\000\000\151\000\153\000\000\002\245\002\247\003\166\000\000\002\212\003\"\003B\003\026\000\000\000\000\000\000\002\247\000\000\002\242\000\152\002\248\002\213\000\151\000\000\000\000\000\000\000\000\000\138\000\183\000\000\002\248\000\147\000\000\000\000\000\000\000\000\002\234\000\000\000\000\000\000\003\028\000\153\000\000\003!\000\000\000\140\002\245\000\000\000\000\002\247\000\141\000\155\000\000\000\000\000\142\000\184\003J\000\000\000\000\000\185\000\000\000\000\000\000\002\248\000\152\000\157\000\183\003\219\000\000\000\000\000\000\003Q\000\138\000\000\000\000\000\000\000\147\000\000\000\000\000\152\000\000\002\234\000\151\000\140\003\031\000\000\000\153\000\000\000\141\000\155\002\247\000\138\000\142\000\184\000\000\000\147\002\234\000\185\000\000\000\152\000\000\000\153\000\000\000\157\002\248\003\221\000\138\000\000\000\000\000\000\000\147\000\183\000\000\000\000\000\000\000\000\000\182\000\000\000\000\000\000\000\151\000\153\000\000\000\000\000\000\000\000\000\183\000\000\000\140\000\000\000\000\000\000\000\000\000\141\000\155\000\138\000\000\000\142\000\184\000\147\000\000\000\000\000\185\000\000\000\000\000\000\000\183\000\140\000\157\000\155\003\223\000\000\000\141\000\184\000\000\000\000\000\142\000\185\000\000\000\152\000\000\000\000\000\140\000\157\000\000\000\151\000\000\000\141\000\000\000\155\000\138\000\142\000\000\000\184\000\147\000\000\000\182\000\185\000\000\000\000\000\000\000\153\000\000\000\157\000\151\000\000\000\000\000\000\000\000\000\138\000\000\000\140\000\000\000\147\000\000\000\000\000\141\000\152\000\000\000\151\000\142\000\000\000\000\000\000\000\000\000\000\000\183\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\182\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\000\000\140\000\000\000\151\000\155\000\000\000\141\000\000\000\184\000\000\000\142\000\000\000\185\000\000\000\000\000\000\000\000\000\152\000\157\000\183\000\140\000\000\000\000\000\000\000\000\000\141\003l\003m\004-\000\142\001g\000\000\001h\000\000\000\182\000\000\000\152\000\000\000\151\000\153\000\000\000\000\000\155\0046\000\000\000\000\000\184\000\000\000\000\000\000\000\185\000\152\000\000\002\234\000\000\000\000\000\157\000\151\000\153\000\000\000\000\000\000\000\000\000\000\000\183\000\000\000\000\000\000\002\234\000\000\000\000\000\000\004>\000\153\000\000\000\138\000\000\000\138\000\000\000\147\000\152\000\147\000\140\000\183\003n\000\000\000\140\000\155\003o\001i\000\000\000\184\000\000\001j\000\000\000\185\000\000\002\234\000\183\000\000\000\000\000\157\000\153\000\000\000\000\000\000\000\155\004\168\000\000\000\000\000\184\000\000\000\000\000\138\000\185\000\152\000\000\000\147\000\000\000\000\000\157\000\155\000\000\001w\000\000\000\184\004\180\000\183\000\000\000\185\000\000\000\140\002\234\000\140\000\152\000\157\000\141\000\153\000\141\000\000\000\142\000\000\000\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\155\002\234\000\000\000\000\000\184\000\000\000\153\000\000\000\185\000\000\000\000\000\000\000\183\000\000\000\157\000\000\000\000\000\000\000\151\000\140\000\151\000\000\000\000\000\138\000\141\000\000\000\000\000\147\000\142\000\000\000\000\000\183\000\000\000\000\003|\000\155\000\000\000\000\000\138\000\184\000\000\000\000\000\147\000\185\000\000\000\000\003}\000\000\000\000\000\157\001x\000\000\000\000\000\000\000\155\000\000\000\151\000\000\000\184\000\138\000\000\000\000\000\185\000\147\000\000\000\000\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\140\000\000\000\000\000\000\000\000\000\141\000\000\000\000\004\185\000\142\004\192\000\000\000\000\000\000\000\000\000\140\000\152\000\000\000\152\000\000\000\141\000\000\000\000\000\000\000\142\003l\003m\000\000\000\000\000\000\000\000\000\000\000\000\002\234\003\141\002\234\000\140\000\151\000\153\001\145\000\153\000\141\000\000\000\000\000\000\000\142\004\201\000\000\003\158\000\000\000\000\000\000\000\151\001\178\000\152\000\138\000\000\000\000\000\000\000\147\000\000\003l\003m\000\183\000\000\000\183\000\000\000\000\000\000\006N\000\000\002\234\000\000\000\151\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\140\000\000\003n\000\000\000\000\000\155\003o\000\155\000\000\000\184\000\000\000\184\000\138\000\185\000\000\000\185\000\147\000\000\000\000\000\157\000\183\000\157\000\000\000\000\000\000\004\223\006\174\000\000\000\138\000\000\000\140\000\000\000\147\000\152\000\000\000\141\000\140\000\000\003n\000\142\004\228\000\000\003o\000\155\000\000\000\000\000\000\000\184\000\152\000\000\002\234\000\185\000\000\000\000\000\000\000\153\000\000\000\157\000\000\000\000\000\000\004\235\000\000\000\000\000\000\002\234\000\000\000\151\000\140\000\152\000\153\000\000\000\138\000\141\000\000\000\000\000\147\000\142\000\000\000\000\000\183\000\000\000\000\000\000\000\140\000\000\002\234\000\000\000\000\000\141\000\000\000\153\000\000\000\142\000\000\000\183\000\000\000\000\000\000\000\000\000\000\000\000\003|\000\155\000\000\000\151\000\000\000\184\000\138\000\000\000\000\000\185\000\147\000\000\003}\000\138\000\183\000\157\000\155\000\147\000\000\000\151\000\184\000\000\000\000\000\000\000\185\000\000\000\140\000\000\000\000\000\000\000\157\000\141\000\000\000\000\000\000\000\142\003|\000\155\000\000\000\138\000\000\000\184\000\152\000\147\000\000\000\185\000\000\000\000\003}\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006O\000\000\000\000\000\140\000\151\000\153\000\000\000\000\000\141\000\000\000\140\000\000\000\142\000\138\000\000\000\141\000\000\000\147\000\000\000\142\003\141\000\152\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\138\000\183\000\000\000\000\000\147\003\160\000\000\000\140\000\152\006O\000\000\000\151\000\141\000\000\000\153\000\000\000\142\000\000\000\151\000\000\000\000\000\000\000\000\000\000\000\155\001K\000\000\003\141\000\184\000\000\000\153\000\000\000\185\000\000\000\000\000\000\000\000\000\000\000\157\000\183\000\140\003\162\000\000\000\000\000\151\000\141\000\000\000\000\000\000\000\142\000\000\000\000\000\152\000\000\000\000\000\183\000\140\000\000\000\000\000\138\000\000\000\141\000\155\000\147\000\000\000\142\000\184\000\000\000\000\001q\000\185\000\000\000\000\000\000\000\153\000\000\000\157\000\151\000\155\000\000\000\000\000\000\000\184\000\000\000\000\000\138\000\185\000\000\000\152\000\147\000\000\000\000\000\157\000\151\000\000\000\152\000\000\000\000\000\000\000\183\000\000\000\000\000\000\000\000\000\000\001\138\000\000\000\000\000\000\000\000\000\153\000\000\001\185\000\000\000\000\000\140\000\000\000\153\000\000\000\138\000\141\000\152\000\155\000\147\000\142\002\193\000\184\000\000\002\197\000\000\000\185\000\000\000\000\000\000\000\000\000\183\000\157\000\000\002\155\000\000\000\000\000\140\000\183\000\153\000\000\000\000\000\141\000\000\000\000\000\000\000\142\000\000\000\151\000\000\000\152\000\000\000\000\000\138\000\155\000\000\000\138\000\147\000\184\000\000\000\147\000\155\000\185\000\000\000\183\000\184\000\152\002\159\000\157\000\185\000\000\000\140\000\153\000\000\000\151\000\157\000\141\002\238\000\000\000\000\000\142\002\198\000\000\002\206\000\000\002\199\000\000\000\155\000\153\000\000\000\000\000\184\000\000\000\000\000\000\000\185\000\138\000\183\000\000\000\000\000\147\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\151\000\140\000\000\000\000\000\140\000\183\000\141\000\000\000\000\000\141\000\142\000\000\000\155\000\142\000\138\000\000\000\184\000\152\000\147\000\000\000\185\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\155\000\000\000\000\000\000\000\184\000\000\002\221\000\000\000\185\000\000\000\151\000\153\000\000\000\151\000\157\000\152\000\140\000\000\000\000\000\000\000\000\000\141\000\000\000\000\000\000\000\142\002\239\000\000\000\000\000\000\000\000\000\000\002\223\000\000\000\000\000\000\000\183\000\153\000\000\000\000\000\000\000\000\000\140\002\212\000\000\000\000\003\029\000\141\000\000\000\152\000\138\000\142\002\242\000\151\000\147\002\213\000\000\000\138\000\000\000\155\000\000\000\147\000\183\000\184\000\000\000\000\003v\000\185\000\000\000\000\000\000\000\153\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\151\002\245\000\000\000\000\000\000\000\000\000\155\000\000\000\152\000\000\000\184\000\152\000\000\000\000\000\185\000\000\000\000\000\183\000\000\000\000\000\157\000\000\000\000\000\000\000\000\003\181\000\000\000\140\003\186\000\000\000\153\000\000\000\141\000\153\000\140\000\000\000\142\000\000\003 \000\141\000\155\000\000\000\000\000\142\000\184\002\247\000\138\000\000\000\185\000\000\000\147\000\152\000\000\000\138\000\157\000\183\000\000\000\147\000\183\002\248\000\000\000\000\000\000\000\000\000\151\000\000\000\138\000\000\003\190\000\000\000\147\000\151\000\000\000\153\000\000\000\000\000\000\000\152\000\155\000\000\000\000\000\155\000\184\000\000\000\000\000\184\000\185\000\000\000\000\000\185\000\000\000\000\000\157\000\000\003\211\000\157\000\000\000\000\000\183\000\153\000\000\000\000\000\140\000\000\000\000\000\000\000\000\000\141\000\000\000\140\000\000\000\142\000\138\000\000\000\141\000\000\000\147\000\000\000\142\000\000\000\000\000\155\000\140\000\000\000\183\000\184\000\000\000\141\000\000\000\185\000\000\000\142\000\000\000\000\000\000\000\157\000\000\000\000\000\138\000\151\000\000\000\152\000\147\000\000\000\000\000\000\000\151\000\155\000\152\000\000\000\000\000\184\000\000\000\000\000\000\000\185\000\138\000\000\003\250\000\151\000\147\000\157\000\000\000\153\000\000\004\156\000\000\000\000\000\140\000\000\000\153\000\000\000\000\000\141\000\000\000\000\000\000\000\142\000\000\003l\003m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\183\000\000\000\000\000\000\000\000\000\000\000\140\000\183\000\000\000\000\000\000\000\141\000\000\000\000\000\000\000\142\002\193\000\151\000\000\002\197\000\000\000\000\000\138\000\155\000\140\000\000\000\147\000\184\000\152\000\141\000\155\000\185\000\138\000\142\000\184\000\152\000\149\000\157\000\185\000\000\000\000\000\000\000\000\000\151\000\157\005\002\000\000\000\140\000\152\003n\000\153\000\000\005\022\003o\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\151\000\000\000\000\000\000\005\024\000\000\000\000\000\000\000\000\000\153\000\000\002\238\000\000\000\000\000\183\002\198\000\000\000\140\000\000\002\199\000\000\000\183\000\141\000\000\000\000\000\000\000\142\000\140\003l\003m\000\000\000\000\000\141\000\152\000\183\000\000\000\142\000\155\000\000\000\000\000\000\000\184\000\000\000\000\000\155\000\185\000\000\000\000\000\184\000\138\005\026\000\157\000\185\000\149\000\151\000\153\000\000\000\155\000\157\000\152\000\000\000\184\000\000\000\000\000\151\000\185\000\000\000\000\000\000\000\000\000\000\000\157\003l\003m\000\000\000\000\005 \000\152\000\000\000\138\000\183\000\153\000\000\000\139\000\140\000\000\003n\000\000\003|\000\000\003o\000\000\000\000\000\000\005.\000\000\002\239\000\000\000\000\000\153\003}\000\000\000\000\000\155\000\000\000\140\000\183\000\184\000\000\000\000\000\141\000\185\000\000\002\212\000\142\000\000\002\244\000\157\003l\003m\000\000\000\000\002\242\000\000\000\183\002\213\000\000\000\000\000\140\000\155\003n\000\152\000\000\000\184\003o\000\140\000\000\000\185\000\000\000\000\000\141\000\152\000\151\000\157\000\142\000\000\000\000\000\155\005<\000\000\002\245\000\184\000\000\000\153\000\000\000\185\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\153\000\000\000\000\000\000\003\141\000\000\000\000\000\000\000\000\000\151\000\000\000\140\000\000\003n\000\000\000\183\000\000\003o\003\164\000\000\000\000\000\000\000\000\003|\000\000\000\154\000\000\000\000\000\000\000\000\000\000\002\247\000\000\000\000\000\000\003}\000\000\000\000\000\155\000\000\000\000\000\000\000\184\000\000\000\000\002\248\000\185\000\000\000\155\000\000\000\000\000\000\000\157\003\133\000\000\000\000\000\152\000\000\000\000\000\000\000\000\000\000\000\157\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\000\153\003}\000\000\000\000\000\000\000\000\000\000\000\000\000\152\000\000\000\000\000\000\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\141\000\154\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\003|\000\000\000\000\003\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003}\000\155\000\000\000\000\000\000\000\000\003\135\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\003\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\155\000\000\000\000\000\000\003\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\141\000\000\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\174")) + ((16, "\000\193\000l\000\000\000\000\000\000\000G\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\025\000\000\001C\000\182\000\000\001\019\000\197\000\000\000\000\000\000\000\139\000\000\000[\000\252\000\000\000\000\001t\000\000\001\166\000\000\000\000\000\000\001\206\000\000\002\018\000\000\000\000\000\000\000\000\003@\000\000\003R\003\134\000\000\000\000\004\132\000\000\004\172\000\000\000\000\000\000\005\166\000\000\005\182\000\000\005\208\000\000\006\000\006(\000\000\000\000\006J\000\000\006\200\000\000\000\000\000\000\000\000\007f\000\000\007n\000\000\000\000\007\218\000\000\008\018\000\000\000\000\000\000\008\026\000\000\000\160\008P\000\011\000\000\000\000\000\000\0072\002@\002\240\000\000\000\000\008\170\000\000\000\236\000\000\000\168\000\247\000\023\000\000\000\000\013\196\000\000\002\246\000\000\0028\004\128\000\160\011\002\000\160\003\148\031<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\226\011\002\000\000\000\000\017\002\000\000\0188\000\000\001^\000\000\000\000\000\000\000\000\002R\000\000\018\144\000\000\000\000\014\156\000\000\023\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n,\000\000\011@\000\000\011D\000\000\015\144\000\000\019\236\000\000\019\240\000\000\023*\000\000\023>\000\000\028`\000\000!\030\000\000\006\026\000\000\006D\000\000\000\000\000\000\000\000\000\000#P\000\000)2\000\000)J\000\000\027v\000\000\000\000\028\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\008\228\000\000\000\000\t\"\000\000\t\132\t\202\000\000\000\000\t\208\000\000\t\218\000\000\000\000\000\000\t\222\000\000\t\224\000\000\000\000\t\230\000\000\t\246\n\016\000\000\000\000\n\024\000\000\n \000\000\000\000\000\000\n*\000\000\n,\000\000\n.\000\000\n2\nB\000\000\000\000\n\130\000\000\n\144\000\000\003\014\n\176\000\000\n\210\000\000\n\220\000\000\n\232\000\000\000\000\000\000\011\000\000\000\011\004\0056\000\000\011\014\000\000\000\194\006\154\000\000\002\216\000\000\004\006\000\000\000\000\007F\000\000\000\000\001\017\003z\000\000\000\000\000\000\000\000\003>\000\000\003P\000\000\008\168\000\000\002\026\000\000\000\000\000\000\000\000\000\000\000\000\008\208\000\000\000\000\000\000\000\000\000\209\000\000\000\000\000\000\000\000\000\000\000\000\0001\003\152\017\172\000\000\011\020\000\000\011\024\019\142\000\000\011\026\000\000\000\000\004\190\000\000\000\000\000\000\000\000\000\000\026\152\000\0000\148\000\000\000\000\000\000\003\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\144\000\000\000\000\000\000\000\000\000\000\000\000\006\160\031<\000\000\007\142\000\000\020\216\022\190\000\000\000\000\000\000\004@\000\000 2\000\000\000\0000\230\000\000\000\000\000\000\005\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\128\000\000&\208\000\000\000\000\000\000\000\000\000\199\000\000\000\00012\000\000\000\000\000\000\000n\000s\000\000\000\000\000\000\000\000\000\000\000\000\0006\000\000\004\144\000\000\005\158\000\000\n~\000\000\011^\000\000\012\016\000\000\012\146\000\000\016\142\000\000\027\210\000\000\0302\000\000\014\144\000\000\004\012\000\000\031n\000\000%\172\000\000+\150\000\000\000\000\000\000\000\000\000\000\000\1711\170\000\000\000:\000\000\000\000\000}\001\132\000\000\001\028\000\000\000\000\000\000\005\190\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\000\000\000\000\001\028\000\000\000\000\000\000\011(\020\254\000\000\011*\000\000\000\000\000\000\000\000\000\000\011,\000\000\000\000\000\129\007\166\000\000\008H\000\000\000\000\000\000\000}\000\000\012\206\001\196\011.\000\000\000\000\011:\000\000\011B\011F\000\000\000\000\011J\000\000\011N\000\000\000\000\000\000\011T\000\000\011V\000\000\000\000\011^\000\000\011d\011f\000\000\000\000\011v\000\000\011~\000\000\000\000\000\000\011\128\000\000\011\146\000\000\011\150\000\000\011\152\011\160\000\000\000\000\011\162\000\000\011\166\000\000\005\218\011\172\000\000\011\174\000\000\011\176\000\000\011\192\000\000\000\000\000\000\011\198\000\000\006\020\000\000\000\000\011\206\023\164\000\000\011\210\000\000\000\000\000`\000\000\000\000\003J\000\000\000\000\000\000\000\000\000\000\006&\025\134\000\000\011\218\000\000\011\224\030\"\000\000\011\228\000\000\000\000\012\236\011\236\000\000\000\000\011\238\000\000\012\004\012\018\000\000\000\000\012\030\000\000\012(\000\000\000\000\000\000\012*\000\000\012,\000\000\000\000\0122\000\000\012:\012<\000\000\000\000\012@\000\000\012B\000\000\000\000\000\000\012R\000\000\012T\000\000\012V\000\000\012X\012Z\000\000\000\000\012b\000\000\012d\000\000\007\008\012v\000\000\012z\000\000\012\154\000\000\012\160\000\000\000\000\000\000\012\162\000\000\012\164\"\028\000\000\012\168\000\000\000\000\007x#d\000\000\012\170\000\000\012\174&\028\000\000\012\176\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\212\000\000#\240\000\0002H\000\000\000\000\000Z\000\000\000\000\001\188\000\214\000\000\000\000\020H%\136\000\000\017$\017\030\000\000\000\000((\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029\028((\000\000\029\184\000\000$\240\0120(\156\000\000\016\214\000\000\000\000\000\000\007\168\000\000 \214\000\000\000\0002\130\000\000\000\000\000\000\007\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\156\000\0002\182\000\000\000\000\000\000(\242\007:\000\000\000\000\000\000\022~\000\000\000\000\000\000\000\000\007\206\000\000\000\000\000\000\031\132\000\000\000\0006\188\000\000\000\157\000\000\000\000\000\000\000\025\000\000\001\248\000\000\002\140\000\000\0042\000\000\008\146\000\000\t\164\000\000\014R\000\000\014\170\000\000\017\128\000\000\022\\\000\000\024@\000\000\027*\000\000\031\008\000\000\000\000\000\000)\246\000\000*8*\138\000\000*\2243h+<\000\000\000\000+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\004R\000\000\000\000\000\000\000\000\005z\000\000\004\216\000\000\000\000\024<\000\000\000\000\000\000+f\000\000\000\000\000\000\000\000\000\000\0258\000\000\000\000\000\000\000\000+\200\000\000\000\000\000\000\000\000\004\004\004r\000\000,$\000\000\000\000\000\000\000\000\008\176\000\000,\134\000\000\000\000\000\000\000\000\000~\000\000\007|\000\000\015\178\006t(\214\000\000\000\000\000\000\013F\000\000\000\000\000\000\000\000\000\000\000\000\018\246(\214\000\000\021\170\000\000\024\234\013\248\000\000\000\000\000\000\0080\000\000 \240\000\000\000\0002\222\000\000\000\000\000\000\008@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0006\128\000\0006\220\000\000\000\000\000\000\001 \000\000\000\000\000\000\000\000\000\000\000\000\007b\000\000\016T\000\000\018\190\000\000\024h\000\000\025\152\000\000'\n\000\000/\228\000\0001\186\000\0002\238\000\0003>\000\000,\200\000\000\000&\000\0004v\000\0006z\000\0007\016\000\000),\000\000\000\000\000\0003l\000\000\000\000\000\000\004 \000\0003\132\000\000\000\000\000\0004\026\000\000\000\000\0010\000\000\024\200\000!\005\026\000\000\005:\000\000\013\144\002\n\008\014\000\000\000\000\000\000\000\000\000\000\000\000\000\0004\\\000\000$<$\000\008\142\000\000\000\000\000\000-\022\000\000-$\000\000-^\000\000%$%H\002\154\000\144\008\170\000\000\000\000\000\000\002>\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\000\000\000\000\000\0004\134\000\000\000\000\000\000\000\000!<\000\000&\n\000\000\000\000\000\000\000\000\000\000\000\000\014\024\000\000\000\000\005\188\000\000\000\000\000\000\025v\002\164\000\000\026\016\000\000\000\000\008\176\000\000\002\196\000\000\000\000\014\198\000\000\026\206\000\000\000\000!\254\000\000\000\000\000\000\006\204\000\000\000\000\005\002\000\000\000\000\0266\000\000\000\000\000\000-|\000\000\000\000\000\000\027\222\000\000\000\000\000\000\000\000-\212\000\000\000\000\000\000\000\000\004>\011\144\000\000-\226\000\000\000\000\000\000\000\000\000\000\000\000\015N\000\000\000\000\002\238\000\000\015\204\000\000\006\204\000\000\000\000\001\130\tD\000\000\003\006\000\000\000\000\000\000\000\000\001 \000\000&$\000\000\026 \003H\027h\000\000\003h\000\000\016\192\000\000\017>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\254\028&\005\024\028\192\000\000\000\000\000\000\005\154\000\000\017\180\000\000\004\"\000\000\000\000\t\192\004\246\029n\000\000\006\136\000\000\0182\029~\000\000\000\000\019&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\190\0082\000\000\0064\000\000\000\000\000\000\000\000\006V\000\000\019\164\000\000\000\000\000\000\"\1644\172\000\000\000\000\000\000 \024\000\000\000\000\000\000\000\000\0070\006`\000\000\000\000.:\000\000\000\000\002\236\000\000\007\024\000\000\000\000\030>\000\000\000\000\000\000.\136\000\000\000\000\000\000\000\000.\194\000\000\000\000\006\236\008\150\000\000\000\000.\220\000\000\000\000\006\206#\006\000\000\008\194\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\000}\000\000\000\000\008\224\000\000\000\000\"n\000\000\000\000\000\000/\144\000\000\000\000\000\000\000\0000\016\000\000\000\000\008\182\t(\000\000\000\0000@\000\000\000\000\008.\000\000\000\000\000\000\000\000\001 \000}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002t\000\000\020,\000\000\000\000\000\0004\176\000\000\t\194\000\000\000\000\000\000\003\154\000\000\005\004\000\000\000\000\006\192\020\238\000\000\021v\000\000\000\000\000\000\008\008\000\0005$\00885:\000\0005|\000\000\000\000\000\000\008l\000\0005\208\008t\000\000\000\000&\128\008\204&\230\000\000'B\000\000\000\000\000\000\t\020\000\0005\240\t\026\000\000\000\000\020\190\t\132!\192\000\000$\018\000\000\000\000\000\000\t\136\000\0006>\t\184\000\000\000\000\000\000\000?\000\000\000\000\000\000\007v\000\000\000\000\000\000\000\000\000\000\000\000\005\008\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002X\000\000\000\000\003\026\000\000\000\000\013h\000\000\000\000\000\000\000\000\007\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\013l\000\000\000\000\013B\000\000\000%\000\000\000\000\000\134\000\000\0052\012\246\002\156\000\000\000\000\003\236\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\252\018\016\000\000\000\000\005\\\000\000\000\000\000\000\021\156\000\000\000\000\0224\023\014\000\000\000\000\000\000\000\000\023\172\027\254\000w\000\000\031\246\000\000\000\000\000\000\000\000\000\000\000\000\008*\000\000\000\000\006\164\000\000\000\000\012\190\000\000\000\000\003n\000\000\000\000\012\194\000\000\000w\000\000\000\000\000\000\000\000\011\n \020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0138 \196\000\000\000\000\000\000\000\000#L\000\000\000\000\003\022\000\000\013z\000\000\000\000\000\000\t\238\000\000\000\186\000\000\000\000\000\000\017X\000\000\000\000\015l$N\011~\000\000$\152\000\000\000\000\000\000\000\000\013>\000\000\000\000\000\000\n4\000\000\001\170\013\016\004\016\000\000\000\000\000\000\008|\008J\000\000\000\000\000\000\000\000\002D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\132\000\000\000\000\016^\000\000\000\029\013\142\003\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\025\144\000\000\000\000\0248%b\000\000\000\000\000\000\000\000\0026\000\000\005\008\011\198\000\000\028\202\000\000\000\000\000\000\000\000\000\000\000\146!\012\000\000\000\000&\176\000\000\000\000\000\000\000\000\nV\000\000)*\000\000\000\000\000\000\000\000\007D\000\000\000\000\000\000\006\242\000\000\000\000\001\160\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\144\000\000\000\000\000\000\005\028\000\000\000\000\000\000\000\000\000\000\000\004\004\150\007\150\008\220\000\000\005\186\005\212\t\004\t\134\000\000\000\000\000\000\000\000\000\000\000\000\006b\021\244\000\000\030d\007X\000\000\000\000\008\248\000\000\022\232\000\000)\226\000\000\000\000\008\160\023f\000\000\030t\000\000\008\176\031\"\000\000\000\000\000\000\004\242\005\186\000\000\000\000\000\000\000\000\0088\000\000\011<\000\000\000\157\011z\000\000\000\000\000\000\003>\000\000\003P\000\000\t\002\000\000\000\000\0032\000\000\000\000\000\000\000\000\n8\000\000\000\000\t\238\000\000\023\220\000\000\020\236\013L\000\000\000\000\000\000\000\000\000\000\000G\000\000\000\000\000\000\000\000\000\0000\236\000\000\000R\000\000\000\000\000\000\000\000\000\000\001\148\000\000\n\182\t\136\011\200\000\000\002\170\012F\000\000\n\146\000\000\003\164\000\000\004D\000\000\005>\000\000\020\236\000\000\000\000\000\000\000\000\000\000\005\222\000\000\n\162\000\000\006\216\000\000\020\236\013\174\000\000\004\222\000\000\013\160\012\138\000\000\tH\000\000\n\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\168\000\000\011\020\000\000\000\000\000\000\000\000\000\000\000\000\013\166\012\158\000\000\000\000\012\196\000\000\000\000\012\166\t\218\013\226\000\000\013\232\000\000\000\000\t\186\011P\000\000\012\220\000\000\000\000\013\018\000\000\000\000\000\000\000\000\000\000\000\000\013\222\012\204\000\000\000\000\000\000\012\238\012\212\n\166\n\156\012\240\013&\000\000\000\000\012\222\n\176\n\170\012\252\0138\000\000\000\000\n\138\000\000\000\000\000\000\000\000\014\008\000\000\000\000\000\000\014\016\000\000\000\000"), (16, "\003r\003\137\005\202\005\203\002\193\000\138\005E\002\197\0017\000\147\003@\005\170\005t\005u\000\007\000\018\000_\006\023\003r\003\137\002\164\004`\004H\001.\005\130\006\130\000\025\000_\000a\001\225\000e\006\131\005\204\001\186\000_\003r\003s\000\005\006\132\001\212\004\025\000\017\005\205\001g\001\140\001h\005\131\006\024\001B\006\025\006\174\006\175\005\134\005t\005u\0010\004\026\001\192\003t\000\013\000\140\000\140\003u\001\188\002\198\000\024\000\141\000g\002\199\0026\000\142\001g\000J\001~\004\026\005v\003t\000_\006\026\002\246\003u\002\164\006\150\001\210\000\016\000\017\001\143\001\194\006\027\002:\001\234\000\140\001\237\003t\000\028\006-\000\138\003u\000\151\000\140\000\147\005z\001i\000\004\006\179\002=\001j\001\141\001\236\005\133\001\236\004\143\000_\003\142\001/\001\181\005v\003T\000 \006\013\0029\000h\006\134\000_\0045\006\182\000\005\000\140\006\183\000_\001i\005\131\001\013\002\245\001j\005{\001w\005\134\005t\005u\006\135\006\014\001\213\006\017\005t\005u\001/\001\186\004\003\001\141\000_\000f\000\140\000e\005\202\005\203\000J\000\141\003\130\002\166\006V\000\142\002\212\004\008\001w\004\231\004\003\004\t\004\027\000g\003\131\004\145\004n\006\151\002\213\000\152\003\130\001\187\0065\000J\006\187\004\008\004\\\000K\005\226\004\t\004\027\006\136\003\131\000\151\000g\000\138\000\182\003\130\005\205\000\139\006\137\000\153\004\013\001\012\006\162\005v\004I\003[\004h\003\131\004\253\005v\0068\004#\001\179\001\181\004\127\001x\004@\003\146\004\013\005\146\003r\003\137\004\030\006\164\000\183\001\015\005\011\0016\000_\004#\003\237\004\027\006\166\006\188\004@\003\146\000_\005|\006V\003\147\006\132\006\189\004\025\001x\003\148\002\247\006\008\000\155\003\149\000\140\0024\000\184\003\174\003\150\000\141\000\185\000_\003\147\000\142\002\250\002=\000\157\003\148\001\192\001\186\005\015\003\149\001\142\000\152\000h\002\193\003\150\004#\002\197\003\147\004(\004\026\004@\003t\003r\003\137\003\238\003u\001\145\002;\001\183\000\151\006\208\003\150\001\144\000\153\000\031\000h\001\193\003\145\000_\002\165\001\150\000\008\002\164\004`\004H\001g\000_\001\203\002H\001\214\006-\006\t\004W\001\189\001\145\000\203\001\215\006;\000\183\001\146\002=\006\n\006\011\001\147\001\229\005\013\000\203\001\012\001\148\000\140\001\015\001E\0016\002\198\006\013\006N\006O\002\199\004\026\002\167\003t\000\155\004Y\006\209\003u\000\184\006\004\002\193\005h\000\185\002\197\001\015\006S\0016\000\"\000\157\006\014\0031\006\017\005t\005u\000\140\003r\003\137\001i\000J\000\152\006\001\001j\004\022\005f\004\003\001\"\005\002\000J\005i\005t\005u\000_\000$\004\023\003\130\006\132\006\194\004H\004\029\004\008\001\027\000\153\005\137\004\t\004\027\006\210\003\131\004o\003\142\004\023\001\181\001w\000(\001g\006\137\001~\000\140\004\254\006\212\004N\002\198\006V\006-\000J\002\199\001\213\000_\000a\000b\000e\004\023\004\026\002=\003t\004\013\005v\006.\003u\004\030\006\214\001\191\005\000\000\203\004\003\002\212\004#\000*\006\205\006\216\001Q\004@\003\146\005v\003\130\000J\005p\002\213\005\221\004\008\000_\0026\003\239\004\t\004\027\003@\003\131\000g\004q\0033\000\140\003L\005q\001i\003\147\002H\004b\001j\004\\\003\148\005\222\0028\000J\003\149\005\225\005t\005u\005\138\003\150\001x\001\217\006\002\004b\001g\004\013\001~\000_\0063\004I\000\144\004h\003r\003\137\005\188\001\131\004#\000J\001w\004\127\001$\004@\003\146\0029\003\238\001\028\000J\001\029\000_\000\203\002\212\004W\006\132\006\194\004H\004\003\005\189\002\247\006\153\005\192\005t\005u\002\213\002H\003\147\003\130\003\240\006=\000J\003\148\004\008\002\252\0061\003\149\004\t\004\027\006\200\003\131\003\150\005v\000\140\004X\000J\001i\001g\006\137\001h\001j\004\026\004\011\003t\003\203\003\204\001\026\003u\000\004\0017\000h\003\243\003\244\003\246\000J\005\140\002\193\006\199\004\013\002\197\000h\001\027\004I\003A\006\202\003r\003\137\001\131\001x\004#\001w\000\005\006\204\005\137\004@\003\146\005v\000\251\0017\001\204\005\141\000_\000/\001\012\002\247\006\132\006\194\004H\005\000\003M\000J\0003\001\134\000\140\0014\000\138\001i\003\147\002\254\000\147\001j\001-\003\148\001g\004\188\001h\003\149\001\015\003/\0016\001(\003\150\000\140\004j\001\144\002H\002\198\0002\004A\000J\002\199\004\026\000_\003t\002\166\005\014\006`\003u\000J\004e\001w\004|\003\240\004\003\006\155\005\227\001\145\006\201\006\146\005\138\006\147\001\146\000\203\003\130\000J\001\147\001<\001x\004\008\004|\001\148\000\140\004\t\004\027\006\200\003\131\000\141\005\138\001\132\000\140\000\142\004~\001i\006\137\003\242\001O\001j\004\011\000_\003\203\003\204\001\134\006`\005\003\001\028\004\129\001\029\000_\000\203\004}\005\206\002\164\000J\004\013\007\019\003\203\003\204\004I\000\151\006\202\003r\003\137\004t\001\144\004#\000J\001w\006\204\007\020\004@\003\146\000h\000_\000a\001\t\000e\000_\001x\002\165\001\198\006\132\006\194\004H\004\003\002\212\001\145\000J\003T\005c\005d\001\146\005\013\003\147\003\130\001\147\000J\002\213\003\148\004\008\001\148\001l\003\149\004\t\004\027\006\200\003\131\003\150\005\155\001g\000h\001h\006\020\000g\006\137\0005\001\018\004\026\004\011\003t\004\139\003\203\003\204\003u\001\172\000\138\000h\002\166\004t\000\139\005\153\005t\005u\006\203\004\013\0007\000\152\005\250\004I\005\144\006\202\003r\003\137\006e\001x\004#\001\145\003@\006\204\006X\004@\003\146\006Y\001\183\0030\006k\006e\000_\000\153\002\166\001\148\006\132\006\194\004H\000h\000\140\002\247\006]\001i\003\206\003N\000\138\001j\003\147\005\016\000\147\005\145\000h\003\148\003@\003\000\000\140\003\149\000\183\000_\003\205\000\141\003\150\003R\006b\000\142\000\203\000\138\007\028\005v\000J\000\139\004\026\000h\003t\004\027\006a\001w\003u\003\203\003\204\000\155\001u\001C\004\003\000\184\004\154\001\145\006\211\000\185\004v\003r\003\137\000\151\003\130\000\157\0036\004\023\006V\004\008\004\148\001\152\000\140\004\t\004\027\006\200\003\131\000\141\000J\005\015\006\133\000\142\003L\001g\006\137\001|\004#\004,\004\011\004(\001\012\004@\004\129\000\140\000\179\004\017\000_\001\014\000\141\000e\004\150\000_\000\142\000h\004\013\000;\003A\000J\004I\000\151\006\202\003r\003\137\000=\001\015\004#\0016\000\140\006\204\003t\004@\003\146\005\182\003u\001x\004y\000?\000_\002,\004\148\000\151\006\132\006\194\004H\004\003\000h\000g\0017\003A\000\140\000\152\002\166\001i\003\147\003\130\006i\001j\003F\003\148\004\008\000C\002\031\003\149\004\t\004\027\006\200\003\131\003\150\006h\004\149\002\193\003@\000\153\002\197\006\137\003J\004\132\004\026\004\011\003t\000B\000_\000_\003u\003\142\001\223\001w\004\194\006m\003F\003r\003s\000_\006\215\004\013\006q\000\152\000E\004I\002B\006\202\000J\001\145\003r\003\137\004#\004\023\003J\006\204\000J\004@\003\146\001g\000\182\001{\004\243\001\154\000\152\000\153\000_\001\197\004\170\000g\002\164\004`\004H\002\238\005e\000h\003\130\002\198\006E\000_\003\147\002\199\001\189\006`\000\203\003\148\000\153\000_\003\131\003\149\000\183\005\023\004\245\000\140\003\150\003t\005f\006I\006J\003u\003\144\005i\005t\005u\000J\001\"\004\026\000G\003t\005\025\001x\000\181\003u\000\155\005s\000\140\004\003\000\184\001i\004\171\001\027\000\185\001j\003r\003\137\001\012\003\130\000\157\000J\000h\005q\004\008\0045\003\146\000\155\004\t\004\027\006\200\003\131\000_\000J\003r\003\137\002\164\004`\004H\006\137\000J\000\157\001\015\004\011\0016\001w\000_\005\180\003\147\000\203\000_\002\239\002x\003\148\002\164\004`\004H\003\149\005v\004\013\000h\000_\003\150\004I\006G\006\202\004:\005\179\002\212\003\019\004#\003\020\004\026\006\204\003t\004@\003\146\002\242\003u\000L\002\213\006\000\002\193\000N\004>\002\197\003\203\003\204\003\130\000J\004\026\004\003\003t\000\140\003\203\003\204\003u\000J\003\147\003\023\003\131\003\130\006\001\003\148\004\179\002\245\004\008\003\149\002\143\000_\004\t\004\027\003\150\003\131\005\006\004n\0017\004\176\001\015\004\193\0016\001%\001x\0011\005|\004\011\001\028\006\001\001\029\000_\000\203\004\243\002\201\002\166\006j\000_\000J\000Q\000\140\006`\000J\004\013\002\198\006t\002\210\004I\002\199\004h\005\026\002\247\000J\002\237\004#\000J\004\023\004(\004\237\004@\003\146\006e\005w\004\244\000J\002\248\004\003\000S\005\025\003\147\006b\000W\000\203\003r\003\137\005!\003\130\001\"\001\231\000J\000\203\004\008\003\147\003\152\004\003\004\t\004\027\003\148\003\131\004l\004n\003\149\001\027\005#\003\130\004V\003\150\001\"\001\228\004\008\004\011\005$\003w\004\t\004\027\005'\003\131\004\147\004n\006\139\003\128\001g\001\027\001h\006\002\000J\004\013\006{\004\011\005#\004I\002\193\004h\005#\002\197\006\128\006e\004#\006\191\002\238\004(\003t\004@\003\146\004\013\003u\003r\003\137\004I\006\007\004h\006\233\002\212\000d\005\180\004#\000\203\005/\004(\003\221\004@\003\146\000_\000h\002\213\003\147\002\164\004`\004H\001\233\003\148\000\203\005\183\003\236\003\149\0051\000h\000\140\006\163\003\150\001i\002\166\000\205\003\147\001j\000h\006\005\000\140\003\148\004\023\006\206\002\198\003\149\0052\006\152\002\199\005\224\003\150\0055\000\138\000h\003@\004\026\000\139\003t\003r\003\137\004\195\003u\006a\001%\0051\001&\000\208\001w\001\028\005#\001\029\005\222\000\203\003U\000_\005\225\005t\005u\002\164\004`\004H\006g\004\204\001%\004\003\001+\002\247\005\246\001\028\000h\001\029\003Y\000\203\001g\003\130\001h\006b\004\222\000\203\004\008\003\002\001\192\006\233\004\t\005\243\005=\003\131\005@\000\140\005\244\005\247\005t\005u\000\141\004\026\000\212\003t\000\142\004\011\007\005\003u\003r\003\137\005?\006\191\005?\005\244\005\247\005t\005u\005C\001\194\006\191\004\238\004\013\006\240\007\002\000_\006\151\005v\007$\006\132\002\212\004\025\001x\000\151\006f\004\003\005#\000\140\000\211\003\146\001i\000\214\002\213\007%\001j\003\130\000\216\000\138\000\220\000\222\004\008\000\147\000\225\000h\004\t\004\027\0045\003\131\005\n\004n\000\229\003\147\005v\000_\006\197\004\026\003\148\003t\006\233\004\011\003\149\003u\006\213\000\228\001w\003\150\007\012\000\231\000\138\005v\000\138\000\233\000\139\006\207\000\139\004\013\000\237\000\239\000\241\004I\000\245\004h\000_\001g\004\003\001h\004#\004:\000\244\004(\001}\004@\003\146\000\140\003\130\005\201\005t\005u\000\141\004\008\000\152\002\247\000\142\004\t\004\027\004>\003\131\006\160\004n\007\004\007\024\006\234\006\233\000_\003\147\003\004\007\023\007\031\004\011\003\148\000\247\007\030\000\153\003\149\000\140\007\013\000\140\000\249\003\150\000\141\000\151\000\141\000\005\000\142\004\013\000\142\003r\003\137\004I\000\140\004h\001x\001i\000\252\002\166\004#\001j\004\003\004(\006\153\004@\003\146\000_\005\235\005t\005u\006\132\003\130\004\025\005v\000\254\000\151\004\008\000\151\000J\001\000\004\t\004\027\006\193\003\131\000\155\001\002\001g\003\147\001h\006B\001w\006\137\003\148\007\012\006\145\006\196\003\149\001\006\000\159\001F\007\012\003\150\002\193\006\236\001\011\002\197\004\026\001;\003t\001A\001@\004\013\003u\003r\003\137\004\030\006\198\001\222\001\221\001\227\001\241\000\152\004#\001\145\006\192\006\204\001\244\004@\003\146\000_\001\248\005v\001\247\006\132\001\250\004\025\001\252\001\156\001T\002\000\002\002\007\013\000\140\000\153\002\005\001i\007\013\002\t\002\008\001j\003\147\001g\000\152\001h\000\152\003\148\002\011\006\238\000\140\003\149\002\013\002\017\002\198\001\195\003\150\000\203\002\199\001x\000\183\004\026\002\019\003t\002\021\002\025\000\153\003u\000\153\002\024\002\027\001w\002\029\003r\003\137\002 \002\"\002$\006\156\006\195\006\157\000h\006\146\000\155\006\147\002&\000\203\000\184\002*\000_\004\003\000\185\0023\002\164\0022\004\025\005\191\000\157\002A\000\140\003\130\002G\001i\002F\002\138\004\008\001j\002J\002M\004\t\004\027\006\193\003\131\006\146\000\155\006\147\000\155\000\203\005\189\002Q\006\137\005\192\005t\005u\006\196\004B\002P\001\145\000\161\004\026\000\163\003t\002S\003r\003s\003u\001w\002U\002Y\002[\004\013\001\158\002^\004F\004\030\006\198\002b\002a\001x\002d\002f\004#\002\212\004\003\006\204\005\188\004@\003\146\002j\002l\002n\002r\002q\003\130\002\213\005\018\002t\002v\004\008\004\142\003r\003\137\004\t\004\027\006\193\003\131\002y\005\189\002{\003\147\005\192\005t\005u\006\137\003\148\005v\000_\006\196\003\149\000\140\002\164\003t\004\025\003\150\002}\003u\000\138\002\127\002\131\002\137\001\209\002\136\002\142\004\013\002\148\002\147\005n\004\030\006\198\005\150\005\129\005\143\005\185\001x\004#\005\220\001\145\006\204\005\242\004@\003\146\004\003\003r\003s\005\252\006\022\004\026\006\172\003t\006\218\001\160\003\130\003u\002\215\006\222\006\241\004\008\006\245\003r\003\137\004\t\004\027\003\147\003\131\005v\006\246\004\018\003\148\006\251\006\252\007\001\003\149\000\140\007\000\000_\004\131\003\150\000\141\002\164\004\020\004\025\000\142\004\140\007\008\007\n\007\016\004\142\002\193\007\017\007\021\002\197\004\013\007\022\007\025\007\026\004\030\004\133\007\029\000\140\007 \003t\001\145\004#\007!\003u\004(\007)\004@\003\146\000\151\007-\003\130\000\000\000\000\004\026\001\162\003t\000\000\000\138\000\000\003u\000\000\000\147\003\131\000\138\000\000\000\000\000\000\000\149\000\000\003\147\002\193\000\000\000\000\002\197\003\148\000\000\000\000\004\003\003\149\000\000\000\000\000\000\000\140\003\150\003r\003\137\002\198\003\130\000\000\000\000\002\199\000\000\004\008\004 \000\000\000\000\004\t\004\027\000\138\003\131\000_\000\000\001V\000\000\002\164\004!\004H\005\212\000\000\000\000\000\000\004\131\000\000\000\140\000\000\000\000\000\000\000\000\000\141\000\140\000\000\000\000\000\142\000\000\000\141\000\152\000\140\004\013\000\142\003\136\002\198\004\030\004\133\000\000\002\199\001\170\000\000\000\000\004#\003\130\004\026\004(\003t\004@\003\146\004\003\003u\000\153\000\000\000\000\000\151\003\131\003r\003\137\000\140\003\130\000\151\000\000\000\000\000\141\004\008\004K\000\000\000\142\004\t\004\027\003\147\003\131\000_\000\000\000\000\003\148\002\164\004!\004H\003\149\000\000\000\000\000\000\004M\003\150\000\000\000\000\000\000\002\212\000\138\000\000\000\000\000\000\000\139\000\000\000\151\000\000\000\000\000\000\004\013\002\213\000\000\005\243\004\030\004O\000\000\003r\003\184\000\000\000\000\004#\000\000\004\026\004Q\003t\004@\003\146\000\000\003u\003r\003\137\000\000\003\132\000\000\005\244\005\247\005t\005u\004P\000\000\000\000\000\152\002\212\000\000\000\000\000_\004\003\000\152\003\147\002\164\004!\004H\000\000\003\148\002\213\000\140\003\130\003\149\000\182\000\000\000\141\004\008\003\150\000\153\000\142\004\t\004\027\000\000\003\131\000\153\006\012\000\000\000\140\000\000\003t\000\000\000\000\000\000\003u\002\247\004\011\000\000\000\152\000\000\000\000\004\026\000\000\003t\000\183\000\000\000\000\003u\000\151\003\006\000\154\000\000\004\013\003r\003s\005v\004I\000\000\004J\000\000\000\153\000\000\000\000\004#\000\000\000\000\004(\000\155\004@\003\146\004\003\000\184\000\000\000\155\000\000\000\185\000\000\000\000\000\194\002\247\003\130\000\157\001g\000\000\001h\004\008\000\000\000\157\006\016\004\t\004\027\003\147\003\131\003\008\000\000\000\000\003\148\000\000\000\000\000\000\003\149\000\000\000\000\000\000\004\011\003\150\000\000\003r\003\137\000\140\006\014\003t\006\017\005t\005u\003u\000\000\000\000\002\193\000\000\004\013\002\197\000\000\000_\004I\000\152\004J\002\164\004`\004H\003\130\004#\000\000\004\003\004(\000\000\004@\003\146\000\140\000\000\000\138\001i\003\131\003\130\001S\001j\000\000\000\153\004\008\000\000\000\000\000\000\004\t\004\027\000\138\003\131\000\000\002\193\000\147\003\147\002\219\006\030\000\000\004\026\003\148\003t\000\000\004\011\003\149\003u\003r\003\137\000\000\003\150\000\140\001w\005v\000\000\002\198\000\000\000\000\000\000\002\199\004\013\000\000\000\000\000_\004I\000\000\004J\002\164\004`\004H\000\000\004#\000\155\000\140\004(\000\000\004@\003\146\000\141\000\000\002\193\000\000\000\142\002\197\000\000\000\000\000\165\000\140\003\130\005\188\000\140\000\000\000\141\000\000\002\198\000\000\000\142\000\000\002\199\003\147\003\131\000\000\000\000\004\026\003\148\003t\003r\003\137\003\149\003u\000\151\005\189\000\000\003\150\005\192\005t\005u\000\000\000_\000a\0019\000e\000_\000\000\000\151\000\000\002\164\004`\004H\001x\000\000\000\000\004\003\000\000\000\000\000\000\000\140\000\000\000\000\000\000\002\198\000\000\003\130\000\000\002\199\002\173\000\000\004\008\000\000\000\000\000\000\004\t\004\027\002\212\003\131\000\000\004g\000\000\000g\000\000\000\000\000\000\004\026\000\000\003t\002\213\004\011\003\147\003u\003r\003\137\000\000\000\138\000\000\000\000\000\000\001R\000\000\005v\000\000\000\000\003\154\004\013\000\000\005\152\000_\004I\000\152\004h\002\164\004\134\004H\002\212\004#\000\000\004\003\004(\001\145\004@\003\146\000\000\000\152\000\000\000\000\002\213\003\130\005\153\005t\005u\000\153\004\008\001\164\000\000\000\000\004\t\004\027\000\138\003\131\001\183\004i\000\147\003\147\000\000\000\153\000\000\004\026\003\148\003t\000\140\004\011\003\149\003u\000_\000\141\002\214\003\150\000\000\000\142\002\212\003r\003s\000\000\000\000\000\000\000\000\004\013\000\000\000\000\000\183\004I\002\213\004h\000\000\000\000\004\003\000\000\004#\000\000\000\000\004(\000\000\004@\003\146\004\136\003\130\000\151\000\000\003r\003\135\004\008\005v\000\155\000\140\004\t\004\027\000\184\003\131\000\141\004{\000\185\000\000\000\142\005\230\000\000\003\147\000\157\000\000\000\000\004\011\003\148\001\012\003r\003\137\003\149\000\000\000\140\000\000\003t\003\150\000\000\000\000\003u\000\000\000\000\004\013\000\000\000\000\000_\004I\000\151\004h\002\164\004\134\004H\001\015\004#\0016\004\003\004(\002\247\004@\003\146\000\000\000\140\000\000\003t\000\000\003\130\000\000\003u\000\000\000\000\004\008\003\n\000\000\000\000\004\t\004\027\000\000\003\131\000\000\000\000\000\152\003\147\000\000\000\000\000\000\004\026\003\148\003t\000\000\004\011\003\149\003u\003r\003\137\000\000\003\150\000\000\000_\000a\001>\000e\004\156\000\153\000\000\000\000\004\013\000\000\000\000\000_\004I\000\000\004\137\002\164\004!\004H\005\156\004#\000\000\000\000\004(\000\000\004@\003\146\004\138\000\152\000\000\000\000\000\000\000\138\000\000\000\138\000\000\000\139\000\000\000\139\003\130\000\000\000g\000\197\000\198\000\200\000\201\000\000\000\000\003\147\000\000\000\153\003\131\004\026\003\148\003t\000\000\000\000\003\149\003u\000\000\000\000\000\000\003\150\000\000\003r\003\137\000\000\003\130\000\000\000\000\000\202\000\000\000\203\000\000\000\000\000\183\000\000\000\000\000\138\003\131\000_\004\003\000\147\000\000\002\164\000\000\004\025\000\000\000\140\000\000\000\140\003\130\000\000\000\141\000\000\000\141\004\008\000\142\000\155\000\142\004\t\004\027\000\184\003\131\000\000\000\000\000\185\000\000\000\000\000\000\000\000\000\000\000\157\000\000\001G\004\011\000\000\000\000\003\147\000\000\004\026\000\000\003t\000\000\000\000\000\151\003u\000\151\000\000\000\000\000\000\004\013\003\156\000\000\000\140\004I\000\000\004\137\000\000\000\141\000\000\000\000\004#\000\142\004\003\004(\000\000\004@\003\146\000\000\001g\000\000\001z\000_\003\130\000\000\005\004\002\164\000\000\004\008\004\142\003r\003\137\004\t\004\027\000\000\003\131\000\000\000\000\000\000\003\147\000\151\000\000\001\012\000\000\003\148\000\000\000_\004\011\003\149\006e\002\164\000\000\004\025\003\150\000_\000a\001\219\000e\000\000\000\000\000\000\000\000\003T\004\013\000\000\002\166\001\015\004I\0016\004J\000\000\000\152\000\000\000\152\004#\000\140\000\000\004(\001i\004@\003\146\004\003\001j\000\000\000\000\003@\004\026\000\000\003t\000\000\000\000\003\130\003u\000\153\000g\000\153\004\008\000\000\003r\003\137\004\t\004\027\003\147\003\131\000\000\000\000\000\000\003\148\000\000\003,\000\000\003\149\001w\000\000\000_\004\131\003\150\000\152\002\164\000\000\004\025\000\000\005\020\000\000\003r\003\134\004\142\000\000\000\000\000\000\000\000\004\013\000\000\000\000\002\235\004\030\004\133\000\000\000\000\000\153\000\000\000\155\004#\000\155\000\000\004(\000\000\004@\003\146\005\152\000\000\000\000\000\000\000\000\004\026\000\167\003t\000\169\000\000\000\000\003u\003r\003\137\000\000\000\183\000\000\000\000\000\000\000\000\000\000\003\147\005\153\005t\005u\004\027\003\148\000\000\000_\004\003\003\149\000\140\002\164\003t\004\025\003\150\000\000\003u\000\155\003\130\001x\005\022\000\184\000\000\004\008\004\142\000\185\000h\004\t\004\027\0045\003\131\000\157\000\000\000\000\000\000\000\000\006i\000\000\0058\000\000\000\000\000\000\004\131\002\193\000\000\004#\002\197\004\026\004(\003t\004@\000\000\000\000\003u\000\000\005\152\001\012\000\000\004\013\000\000\000\138\000\000\004\030\004\133\000\147\005v\000\000\000\000\000\000\004#\004:\000\000\004(\000\000\004@\003\146\004\003\005\153\005t\005u\001\015\000\000\0016\006n\000\000\000\000\003\130\004\142\004>\000\000\000\000\004\008\001g\006\013\001h\004\t\004\027\003\147\003\131\000\140\000\000\000\000\003\148\002\198\000\000\000\000\003\149\002\199\000\000\000\000\004\131\003\150\003\130\003r\003\137\006\014\000\140\006\017\005t\005u\000\000\000\141\006v\000\000\003\131\000\142\004\013\000\000\000\000\000_\004\030\004\133\000\000\002\164\004!\004H\000\000\004#\000\000\004\003\004(\005v\004@\003\146\000\000\000\000\000\138\000\000\000\140\003\130\000\139\001i\000\000\000\151\004\008\001j\000\138\000\000\004\t\004\027\000\139\003\131\000\000\000\000\005\152\003\147\000\000\000\000\000\000\004\026\003\148\003t\005\159\004\131\003\149\003u\003r\003\137\000\000\003\150\000\000\005v\000\000\000\000\000\000\001w\005\153\005t\005u\004\013\000\000\000\000\000_\004\030\004\133\000\000\002\164\000\000\004\025\000\000\004#\002\212\000\140\004(\000\000\004@\003\146\000\141\000\000\000\000\000\000\000\142\000\140\002\213\000\138\000\000\000\000\000\141\000\149\000\000\000\000\000\142\002\233\000_\000a\0020\000e\000\000\003\147\000\000\000\152\000\000\004\026\003\148\003t\003r\003\137\003\149\003u\000\151\000\000\000\000\003\150\005\152\006\165\000\000\000\000\002\235\005\165\000\151\005v\000_\000\153\000\000\000\000\002\164\004!\004H\000\000\000\000\000\000\004\003\001x\000g\000\000\005\153\005t\005u\006|\000\000\000\140\003\130\004\142\000\000\000\000\000\141\004\008\000\183\000\000\000\142\004\t\004\027\002\247\003\131\000\000\002\193\006\028\000\000\002\197\000\000\000\000\004\026\000\000\003t\000\000\004\011\003\012\003u\000\000\000_\000\155\000\000\000\000\000\000\000\184\003r\003s\000\151\000\185\000\000\005\188\004\013\000\000\000\000\000\157\004I\000\152\004J\000\000\000\000\000\000\000\000\004#\000\000\004\003\004(\000\152\004@\003\146\005v\001y\000\000\005\189\000\000\003\130\005\192\005t\005u\000\153\004\008\000\000\000\140\000\000\004\t\004\027\002\198\003\131\000\000\000\153\002\199\003\147\000\000\004\151\003r\003\137\003\148\000\000\005\163\004\131\003\149\000\000\000\140\000\000\003t\003\150\001\"\000\000\003u\000\000\000_\003r\003\133\000\000\002\164\004\013\004H\000\000\000\000\004\030\004\133\001\027\000\000\000\000\004\003\000\152\004#\000\155\000\000\004(\000\000\004@\003\146\000\000\003\130\000\000\001\012\000\155\000\000\004\008\005v\000\171\000\000\004\t\004\027\000\000\003\131\000\153\000\000\000\000\004\026\000\173\003t\000\000\003\147\000\000\003u\000\000\004\011\003\148\001\015\000\000\0016\003\149\000\000\000\000\000_\000\140\003\150\003t\000\000\000\000\000\154\003u\004\013\000\000\000\000\005\176\004I\000\000\004J\003r\003\137\000\000\002\212\004#\000\000\000\000\004(\000\000\004@\003\146\000\000\004L\000\000\000\155\002\213\000_\003r\003s\000\156\002\164\000\000\004\025\003\130\000_\000a\002?\000e\000\157\000\000\000\000\000\000\003\147\000\000\000\000\003\131\000\000\003\148\000\000\000\000\000\000\003\149\000\000\006\013\000\000\000\000\003\150\000\000\001%\000\000\0039\001\"\000\000\001\028\000\000\001\029\004\026\000\203\003t\000\000\000\000\004\003\003u\006'\000g\006\014\001\027\006\017\005t\005u\000\000\003\130\000\000\000\140\000\000\003t\004\008\003r\003\137\003u\004\t\004\027\000\000\003\131\002\247\003r\003\137\000\000\003\130\004\024\000\000\000\000\000\000\000_\000\000\004\153\000\000\002\164\003\014\004\025\003\131\000_\003\147\000\000\000\000\002\164\000\000\004\025\000\000\000\000\000\000\004\013\000_\000\000\000\000\004I\003\158\004\155\000\000\000\000\000\000\000\000\004#\000\000\000\000\004(\000\000\004@\003\146\000\000\000\000\005v\000\000\004\026\000\000\003t\000\000\000\000\000\000\003u\000\000\004\026\000\000\003t\000\000\000\138\000\000\003u\004\003\000\147\003\147\000\000\000\000\000\000\000\000\003\148\000\000\000\000\003\130\003\149\000\000\000_\000\000\004\008\003\150\000\000\000\000\004\t\004\027\000\000\003\131\000\000\003r\003\137\001%\003\130\003C\000\000\001\"\001\028\000\000\001\029\004\028\000\203\004\"\000\000\000\000\003\131\000_\000\000\000\000\000\000\002\164\001\027\004\025\000\000\001\012\000\000\004\013\000\000\000\000\000\140\004\030\004\031\000\000\000\000\000\141\000\000\000\000\004#\000\142\000\000\004(\000\000\004@\003\146\000\000\000\000\002\193\000\000\001\015\002\197\0016\000\000\000\000\004\003\000\000\000\000\004\026\000\000\003t\000\000\000\000\004\003\003u\003\130\006!\003\147\000\151\000\000\004\008\000\000\003\148\003\130\004\t\004\027\003\149\003\131\004\008\003r\003\137\003\150\004\t\004\027\003\147\003\131\000\138\000\000\000\000\004\028\000\149\004k\000\000\000\000\000\000\000_\000\000\004d\003\160\002\164\000\000\004\025\000\000\000\000\000\140\004\013\000\000\000\000\002\198\004\030\004\031\000\000\002\199\004\013\000\000\000\000\004#\004\030\004f\004(\000\000\004@\003\146\000\000\004#\000\000\000\000\004(\000\000\004@\003\146\001%\001g\004/\001h\004\026\001\028\003t\001\029\000\000\000\203\003u\000\140\000\000\003\147\000\152\000\000\000\141\000\000\003\148\004\003\000\142\003\147\003\149\000_\000\000\000\000\003\148\003\150\001I\003\130\003\149\000\201\000\000\000\000\004\008\003\150\000\153\000\000\004\t\004\027\000\000\003\131\000\000\003r\003\137\000\000\000\000\000\000\000\151\000\000\000\000\000\000\000\000\004\028\000\000\005\152\000\202\000\140\000\203\000_\001i\000\183\000\000\002\164\001j\004\025\000\000\000\000\000\000\004\013\000\000\000\000\000\138\004\030\004\031\002\212\000\139\005\153\005t\005u\004#\000\000\000\000\004(\000\155\004@\003\146\002\213\000\184\001\"\000\000\000\000\000\185\000\000\001w\000\000\004\003\000\000\000\157\004\026\001G\003t\000\000\000\000\001\027\003u\003\130\000\000\003\147\000\000\000\000\004\008\000\000\003\148\000\000\004\t\004\027\003\149\003\131\000\000\003r\003\137\003\150\000\000\004c\000\152\000\000\000\138\000\140\000\000\004d\000\149\000\000\000\141\000\000\000\000\000_\000\142\000\000\000\000\002\164\005v\004\025\000\000\000\000\000\000\004\013\000\153\000\000\000\000\004\030\004f\000\000\000\000\000\000\006\013\002\247\004#\000\000\000\000\004(\000\000\004@\003\146\000\000\000\151\002\193\000\000\000\000\002\218\003\016\001x\000\154\000\000\000\000\000\000\004\026\006\014\003t\006\017\005t\005u\003u\000\140\000\000\003\147\000\000\000\000\000\141\000\000\003\148\004\003\000\142\000\000\003\149\000\155\000\000\000\000\000\000\003\150\000\193\003\130\000\000\000\000\000\000\000\000\004\008\003r\003\137\000\157\004\t\004\027\001%\003\131\0047\003r\003\137\001\028\004w\001\029\000\151\000\203\000\140\000_\000\000\004x\002\198\002\164\000\000\004\025\002\199\000_\000\000\000\000\000\000\002\164\000\000\004\025\000\000\001\145\000\000\004\013\000\152\005v\002\193\004\030\004z\002\217\005\174\000\000\000\000\000\000\004#\001\166\000\000\004(\000\000\004@\003\146\000\000\000\000\000\000\000\000\004\026\000\153\003t\000\000\000\000\004\003\003u\000\000\004\026\000\000\003t\000\000\000\000\000\000\003u\003\130\000\000\003\147\000\000\000\000\004\008\000\000\003\148\000\000\004\t\004\027\003\149\003\131\000\000\000\000\000\000\003\150\000\000\004u\000\152\000\000\000\000\000\140\000\000\004d\004\130\002\198\001g\000\000\001h\002\199\000\000\000\000\004\135\000\155\000_\000a\002D\000e\000\000\004\013\000\153\000\000\000\000\004\030\004f\002\212\000\000\000\175\000_\000\000\004#\003r\003\137\004(\000\000\004@\003\146\002\213\000\000\003r\003\137\000\000\006r\000\000\000\000\000\154\000\000\000_\000\000\006/\006~\002\164\000\000\004\025\000g\000_\004\003\000\000\003\147\002\164\000\000\004\025\000\140\003\148\004\003\001i\003\130\003\149\000\155\001j\000\000\004\008\003\150\000\196\003\130\004\t\004\027\000\000\003\131\004\008\000\000\000\000\000\157\004\t\004\027\000\000\003\131\004\026\000\000\003t\004\131\000\000\000\000\003u\001\"\004\026\000\000\003t\004\131\001w\000\000\003u\000\000\002\212\000\000\000\000\004\013\000\000\000\000\001\027\004\030\004\133\000\000\002\193\004\013\002\213\002\197\004#\004\030\004\133\004(\000\000\004@\003\146\000\000\004#\003r\003\137\004(\000\000\004@\003\146\000\000\000\000\000\000\000\000\000\000\006\129\000\000\000\138\000\000\000\000\000_\000\147\000\000\003\147\002\164\000\000\004\025\000\000\003\148\000\000\000\000\003\147\003\149\000_\000\000\000\000\003\148\003\150\000\000\000\000\003\149\000\000\001g\000\000\001h\003\150\000\000\000\140\000\000\000\000\000\000\002\198\000\000\002\193\001x\002\199\002\197\004\003\000\000\000\000\004\026\000\000\003t\000\000\001\012\004\003\003u\003\130\000\000\000\000\000\000\000\000\004\008\000\140\000\000\003\130\004\t\004\027\000\141\003\131\004\008\000\000\000\142\000\000\004\t\004\027\000\000\003\131\001\015\000\000\0016\006s\000\000\000\000\000\000\001%\000\000\004\182\000\140\006s\001\028\001i\001\029\000\000\000\203\001j\000\000\004\013\000\000\002\238\000\151\004\030\006u\002\198\000\000\004\013\000\000\002\199\004#\004\030\006u\004(\001\145\004@\003\146\000\000\004#\003r\003\137\004(\000\000\004@\003\146\000\000\000\000\001w\001\168\000\000\000\000\000\000\000\138\000\000\005\152\000_\000\147\000\000\003\147\004\169\000\000\002\212\000\000\003\148\004\003\000\000\003\147\003\149\000_\005\152\000\000\003\148\003\150\002\213\003\130\003\149\005\153\005t\005u\004\008\003\150\000\000\004\200\004\t\004\027\000\000\003\131\000\000\000\000\000\000\000\000\005\153\005t\005u\000\000\004\203\000\000\003t\006s\000\152\000\000\003u\000\000\000\000\000\000\000\000\002\239\000\000\000\140\000\000\000\000\000\000\000\000\000\141\004\013\000\000\001W\000\142\004\030\006u\004\209\000\153\000\000\002\212\001x\004#\002\241\000\000\004(\000\000\004@\003\146\002\242\000\000\000\138\002\213\000\000\000\000\000\147\000\000\005v\001Y\002\247\000\203\000\000\000\151\000\183\000\138\000\000\004\246\000_\000\147\003\142\003\147\001\181\005v\003\018\005\152\003\148\000\000\002\245\000\000\003\149\000_\000\000\000\000\000\000\003\150\000\000\000\155\000\138\000\000\000\000\000\184\000\139\000\000\000\000\000\185\000\000\005\153\005t\005u\000\000\000\157\000\000\000\138\000\000\000\000\000\000\000\147\000\140\006\013\001\145\000\000\000\000\000\141\000\000\003\130\000\000\000\142\000\000\000_\000\000\000\140\002\247\000\000\001\174\004\210\000\141\003\131\000\000\000\000\000\142\006\014\000\000\006\017\005t\005u\002\248\000\138\000\000\004\248\000\152\000\149\000\000\000\000\000\140\000\151\000\000\000\000\000\000\000\141\000\000\000\000\000\000\000\142\000\197\001n\000\200\000\201\000\151\000\140\000\000\005v\000\153\000\000\000\141\005\172\004\213\000\000\000\142\004\249\000\000\004\236\003\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\199\000\151\000\202\000\000\000\203\000_\000\000\000\183\000\000\002\164\000\000\000\000\000\000\000\140\003\147\000\000\000\151\005v\000\141\003\148\000\138\000\000\000\142\003\149\000\147\000\000\000\000\000\000\003\150\000\000\000\155\000\000\000\000\000\000\000\184\000\000\000_\000\000\000\185\000\000\000\000\000\000\000\152\000\000\000\157\003T\001G\000\000\000\000\000\000\000\151\000_\000a\002\134\000e\000\152\000\197\002\203\000\200\000\201\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\197\003y\000\200\000\201\000\000\000\000\000\000\000\140\000\153\000\152\000\000\000\000\000\141\000\000\000\000\000\202\000\142\000\203\000\000\005\210\000\183\000\000\000g\000_\000\152\000\000\000\000\000\000\000\202\000\000\000\203\000\153\000\000\000\183\003r\003\137\000\000\000\000\000\197\004\005\000\200\000\201\000\000\000\155\000\151\000\000\000\153\000\184\000\000\000\000\000_\000\185\000\000\0066\004\169\000\000\000\155\000\157\000\152\001G\000\184\000\000\000\000\000\000\000\185\000\000\000\202\000\000\000\203\000\000\000\157\000\183\001G\000\000\000\000\000\000\000\000\004\250\000\000\000\155\000\153\000\000\000\000\003r\003\137\000\000\000\000\000\000\004\027\001\"\004\203\000\000\003t\000\177\000\155\000\000\003u\000\138\000\184\000_\000\000\000\147\000\185\004\169\001\027\000\154\000\000\000\000\000\157\000\000\001G\000\000\000\000\000_\000\000\004\209\000\000\000\000\000\000\000\000\000\138\000\152\005:\000\000\000\139\000\000\004\202\000\000\000\155\004#\000\000\000\000\004(\001\128\004@\000\197\004%\000\200\000\201\004\203\000\000\003t\000\157\000\153\000\000\003u\000_\000a\002\140\000e\005\152\000\000\000\000\000\140\001\012\000\000\000\000\000\000\000\141\000\000\000\000\000\000\000\142\000\202\004\209\000\203\000\000\000\000\000\183\000\000\000\000\000\000\005\153\005t\005u\000\000\000\140\000\000\001\015\000\000\0016\000\141\000\000\000\000\000\000\000\142\000g\000\000\000\000\000\000\000\151\000\155\003\130\000\000\000\000\000\184\000\000\000\000\000\000\000\185\003r\003\137\004\210\000\000\003\131\000\157\000\000\001G\003r\003\137\000\000\000\000\001%\000\151\004\225\000\000\004\211\001\028\000\000\001\029\000\000\000\203\003\252\005\017\000\000\000\000\000\000\000\000\000\000\000\000\004T\000\000\000\000\000_\000\000\000\000\005v\002\164\003r\003\137\000\000\003\130\000\000\004\213\000\000\000\000\004\218\000\000\004\236\003\146\000\000\004\210\000\000\003\131\000\000\000\000\002\238\000\000\003t\000\000\003\252\004]\003u\000\000\002\238\004\211\003t\000\152\000\000\000\000\003u\003\147\000\000\003T\000\000\000\000\003\148\000\000\000\000\005\152\003\149\000\197\004\215\000\200\000\201\003\150\000\000\000\000\000\000\000\153\000\152\000\000\004\213\000\000\002\238\004\218\003t\004\236\003\146\000\000\003u\005\153\005t\005u\000\000\000\000\000\000\000\000\000\000\000\202\000\000\000\203\000\153\000\000\000\183\000\000\005\152\004Z\001\012\000\000\003\147\003\142\000\000\000\000\000\000\003\148\000\000\000\000\002\193\003\149\000\000\002\216\000\000\000\000\003\150\000\000\000\000\000\155\005\153\005t\005u\000\184\001\015\005\215\0016\000\185\000\000\000\000\004\003\000\000\000\000\000\157\000\000\001G\003r\003\137\004\003\000\000\003\130\000\000\000\155\000\000\000\000\004\008\000\000\005v\003\130\004\t\000\000\000\000\003\131\004\008\003r\003\137\000\187\004\t\003\252\004S\003\131\000\000\000\000\000\000\004\011\000\000\000\140\004\027\004\003\000\000\002\198\000\000\004\\\000\000\002\199\000\000\003\252\003\253\003\130\000\000\004\013\000\000\000\000\004\008\005v\000\000\002\193\004\t\004\013\002\197\003\131\000\000\002\238\000\000\003t\000\000\000\000\003\146\003u\005\152\000\000\005<\004\011\000\000\001g\003\146\001h\000\000\004#\000\000\002\238\004(\003t\004@\000\000\000\000\003u\000\000\004\013\003\147\000\000\005\153\005t\005u\003\148\000\000\000\000\003\147\003\149\000\000\000\000\000\000\003\148\003\150\000\000\003\146\003\149\000\000\000\000\000\000\000\000\003\150\002\238\000\000\000\000\000\000\002\198\000\000\000\000\000\000\002\199\003r\003\137\000\000\005\239\000\000\000\000\003\147\000\000\000\000\000\140\000\000\003\148\001i\003r\003\137\003\149\001j\002\212\000\000\000\000\003\150\000\000\003\252\004\007\000\000\000_\000a\002\145\000e\002\213\000\000\000\000\000\000\004\003\005v\003\252\004_\000\000\000\000\000\000\005\237\000\000\000\000\003\130\000\000\000\000\001w\000\000\004\008\000\000\000\000\004\003\004\t\000\000\000\000\003\131\002\238\000\000\003t\003r\003\137\003\130\003u\000\000\000\000\000g\004\008\004\011\000\000\002\238\004\t\003t\000\000\003\131\000\000\003u\002\239\000\000\000\000\000\000\000\000\003\252\005*\004\013\000\000\004\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\212\003&\003*\003\020\000\000\000\000\000\138\003\146\004\013\002\242\000\149\000\000\002\213\000\000\000\000\000\000\000\000\003r\003\137\000\000\006\013\000\000\002\238\000\000\003t\003\146\000\000\000\000\003u\003\147\001x\003\023\000\000\000\000\003\148\003r\003s\002\245\003\149\003\252\005,\000\000\006\014\003\150\006\017\005t\005u\003\147\006%\000\000\000\138\000\000\003\148\000\000\000\147\004\003\003\149\000\000\000\000\000\000\000\000\003\150\000\140\003r\003\137\003\130\000_\000\141\004\003\000\000\004\008\000\142\000\000\002\238\004\t\003t\000\000\003\131\003\130\003u\000\000\002\247\000\000\004\008\000\000\003\252\005.\004\t\000\000\004\011\003\131\000\140\000\000\003t\000\000\002\248\000\000\003u\001\145\000\151\000\000\000\000\004\011\000\000\001\012\004\013\000\140\000\000\005v\000\000\000\000\000\141\001\176\000\000\004\003\000\142\000\000\000\000\004\013\002\238\000\000\003t\003\146\000\000\003\130\003u\000\000\000\000\001\015\004\008\0016\000\000\000\000\004\t\000\000\003\146\003\131\000\000\000\000\000\000\000\000\000\000\000\000\000\151\003\147\000\000\000\000\000\000\004\011\003\148\000\000\000\000\000\000\003\149\000\000\000\000\000\000\003\147\003\150\000\000\000\000\000\000\003\148\000\138\004\013\004\003\003\149\000\147\000\000\000\000\000\000\003\150\000\000\000\000\000\000\003\130\000\152\000\000\000\138\000_\004\008\003\146\000\147\000\000\004\t\000\000\000\000\003\131\000\000\000\000\000\000\000\000\000\000\003\130\000_\000\000\000\000\000\000\000\153\004\011\000\000\000\000\000\000\003\147\000\000\003\131\000\000\000\000\003\148\000\000\000\000\004\003\003\149\0069\000\000\004\013\000\000\003\150\000\000\000\140\000\152\003\130\000\000\000\154\000\141\000\000\004\008\000\000\000\142\000\000\004\t\000\000\003\146\003\131\000\140\000\000\000\138\001W\000\000\000\141\000\147\000\000\000\153\000\142\000\000\004\011\000\155\000\000\000\000\000\000\000\000\001\130\000_\000\000\003\147\000\000\000\151\000\000\000\000\003\148\000\157\004\013\001\201\003\149\000\203\000\138\000\000\000\183\003\150\000\147\000\000\000\151\003\147\000\000\000\000\000\000\000\000\000\000\003\146\002\193\000\000\000_\002\197\000\000\000\000\000\000\003\162\000\000\000\000\000\000\000\155\000\000\000\140\000\000\000\184\000\000\000\000\000\141\000\185\000\000\003\147\000\142\000\000\000\000\000\157\003\148\000\000\000\000\000\138\003\149\000\000\000\138\000\147\000\000\003\150\000\139\000\000\000\000\000\000\000\000\000\000\000\140\000\000\000\138\000_\000\000\000\141\000\139\000\000\000\151\000\142\000\000\000\000\000\152\000\000\002\238\000\000\006\013\000\000\002\198\000\000\000\000\000\000\002\199\000\000\000\000\000\000\000\000\000\152\000\000\001T\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\151\006\014\000\000\006\017\005t\005u\000\140\002\176\000\000\000\140\000\000\000\141\000\153\000\000\000\141\000\142\000\000\001\207\000\142\000\203\000\000\000\140\000\183\000\000\000\000\000\000\000\141\000\000\000\000\000\000\000\142\000\000\002\178\000\000\000\203\000\000\000\000\000\183\000\000\000\000\000\000\002\193\000\000\000\151\002\197\000\155\000\151\000\000\000\152\000\184\000\000\002\193\000\000\000\185\002\197\000\000\000\000\000\000\000\151\000\157\000\155\000\000\002\239\000\000\000\184\002\176\000\000\005v\000\185\000\000\000\153\000\000\000\000\000\000\000\157\000\000\000\000\000\152\000\000\002\212\003&\003'\003\020\000\000\002\193\000\000\000\000\002\197\002\242\000\000\002\195\002\213\000\203\000\000\003b\000\183\000\000\002\238\000\000\000\153\000\000\002\198\000\000\000\000\000\000\002\199\000\000\002\238\000\000\000\000\003\023\002\198\000\000\000\000\000\000\002\199\002\245\000\000\000\155\003d\000\152\000\203\000\184\000\152\000\183\002\193\000\185\000\000\002\197\000\000\000\000\000\000\000\157\000\000\000\000\000\152\000\000\003b\000\000\000\000\002\238\000\000\000\153\000\000\002\198\000\153\000\000\000\155\002\199\000\000\000\000\000\184\000\000\000\000\000\000\000\185\000\000\000\153\000\000\000\000\002\247\000\157\003\182\000\000\000\203\000\000\000\000\000\183\002\193\000\000\000\000\002\197\006@\000\000\002\248\000\000\000\000\000\000\000\000\000\000\000\000\002\238\002\239\000\000\000\000\002\198\000\000\000\000\000\000\002\199\000\155\000\000\002\239\000\155\000\184\000\000\000\000\000\000\000\185\002\212\003&\006x\003\020\000\000\000\157\000\155\000\000\000\189\002\242\002\212\003\022\002\213\003\020\000\000\002\193\000\000\000\000\002\197\002\242\000\191\000\000\002\213\000\000\000\000\002\238\002\239\000\000\000\000\002\198\000\000\003\023\000\000\002\199\000\000\000\000\000\138\002\245\000\000\000\000\000\147\003\023\002\193\002\212\000\000\002\197\003\025\002\245\000\000\000\000\000\000\000\000\002\242\000\000\000\000\002\213\000\000\000\000\000\000\000\000\001g\000\000\001h\000\000\000\000\000\000\000\000\002\239\000\000\000\000\000\000\002\238\000\000\000\000\003\027\002\198\000\000\000\000\000\000\002\199\002\245\002\247\000\000\000\000\002\212\000\138\000\000\003\025\000\000\000\147\000\000\002\247\000\140\002\242\000\000\002\248\002\213\000\141\002\238\000\000\000\000\000\142\002\198\000\000\000\000\002\248\002\199\000\000\000\000\000\000\002\239\000\000\000\000\000\000\000\000\003\027\000\140\000\000\003$\001i\000\000\002\245\000\000\001j\002\247\000\000\000\000\002\212\000\000\000\151\003\025\000\138\000\000\000\000\000\000\000\147\002\242\000\000\002\248\002\213\000\000\000\140\000\000\000\000\000\000\000\000\000\141\000\000\000\000\000\000\000\142\000\000\000\000\001w\000\000\000\000\002\239\000\000\003\027\003#\000\000\000\000\000\000\000\000\002\245\002\247\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\212\000\000\000\000\003\025\000\000\000\151\002\248\000\138\000\000\002\242\002\239\000\147\002\213\000\000\000\140\000\000\000\000\000\000\000\000\000\141\000\000\000\000\000\000\000\142\000\000\003=\000\000\002\212\000\000\003\"\003\025\003\027\000\000\000\152\000\000\002\247\002\242\002\245\000\000\002\213\000\138\000\000\000\000\000\000\000\147\000\000\000\000\000\000\000\000\002\248\002\235\000\151\000\000\000\000\000\000\000\153\000\000\001x\003\027\000\000\000\000\000\000\000\000\000\140\002\245\000\000\000\000\000\000\000\141\000\000\000\000\000\000\000\142\000\000\003H\003\029\000\000\000\000\000\000\000\138\000\183\002\247\000\152\000\147\000\000\000\000\000\138\000\000\000\000\000\000\000\147\000\000\000\000\000\000\000\000\002\248\000\140\000\000\000\000\002\235\000\151\000\141\003 \000\155\000\153\000\142\000\000\000\184\002\247\000\000\000\000\000\185\000\000\000\000\000\000\000\138\000\000\000\157\003\172\000\147\003P\000\000\002\248\000\000\000\000\001\145\000\000\000\000\000\152\000\183\000\138\000\000\000\000\000\151\000\147\000\140\000\000\000\000\000\000\001\178\000\141\000\000\000\140\000\000\000\142\002\235\000\000\000\141\000\000\000\000\000\153\000\142\000\155\000\000\000\000\000\000\000\184\003\225\000\000\000\000\000\185\000\000\000\000\000\000\003\227\000\000\000\157\000\000\000\000\003W\000\000\000\140\000\151\000\000\000\138\000\183\000\141\000\152\000\147\000\151\000\142\000\138\000\000\000\000\000\000\000\147\000\140\000\000\000\000\000\000\000\000\000\141\000\000\003\229\002\235\000\142\000\000\000\000\000\155\000\153\000\000\000\000\000\184\000\000\000\000\000\000\000\185\000\000\000\151\000\000\000\152\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\151\000\183\000\138\000\000\000\182\000\000\000\147\000\140\000\000\000\153\000\000\000\000\000\141\000\000\000\140\000\000\000\142\000\000\000\000\000\141\000\000\000\000\000\000\000\142\000\155\000\000\000\152\000\000\000\184\000\000\000\000\000\000\000\185\000\152\000\183\000\000\000\000\000\000\000\157\000\000\000\000\000\138\000\000\000\182\000\151\000\147\000\000\000\000\000\153\000\000\000\182\000\151\000\000\000\000\000\000\000\153\000\000\000\155\000\140\000\000\000\000\000\184\000\152\000\141\000\000\000\185\000\000\000\142\000\000\0043\000\138\000\157\000\000\000\183\000\147\000\000\000\000\000\152\000\000\000\182\000\183\000\000\000\000\000\138\000\153\000\000\000\000\000\147\000\000\000\000\000\000\000\000\000\000\000\000\002\235\000\151\000\155\000\140\000\000\000\153\000\184\000\000\000\141\000\155\000\185\000\000\000\142\000\184\000\000\000\183\000\157\000\185\000\000\004<\000\000\000\000\000\000\000\157\000\000\000\000\004D\000\152\000\000\000\000\000\183\000\000\000\140\000\000\000\152\000\000\000\000\000\141\000\155\000\000\000\151\000\142\000\184\000\000\002\235\000\140\000\185\000\000\000\000\000\153\000\141\002\235\000\157\000\155\000\142\000\000\000\153\000\184\000\000\000\000\000\000\000\185\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\151\004\174\000\000\000\138\000\000\000\183\000\000\000\147\000\000\000\152\000\138\000\000\000\183\000\151\000\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\235\000\000\000\155\000\000\000\000\000\153\000\184\000\000\000\000\000\155\000\185\000\000\000\000\000\184\004\186\000\000\000\157\000\185\000\000\000\000\000\000\000\000\000\152\000\157\000\000\000\000\003r\003s\000\000\000\000\000\183\000\000\000\000\000\140\000\000\000\000\000\000\000\000\000\141\002\235\000\140\000\000\000\142\004\191\000\153\000\141\000\000\000\000\000\138\000\142\000\000\000\152\000\147\000\155\000\000\000\000\004\198\000\184\000\000\000\000\000\000\000\185\000\000\000\000\000\152\000\000\000\000\000\157\002\235\000\183\000\151\000\000\000\138\000\153\000\000\000\000\000\147\000\151\000\000\000\000\000\000\002\235\000\140\000\000\003t\000\000\000\153\000\000\003u\000\000\000\000\000\000\000\155\000\000\000\000\000\000\000\184\000\000\000\183\000\000\000\185\000\000\000\000\000\000\000\140\000\000\000\157\000\000\000\000\000\141\000\000\000\183\000\138\000\142\000\138\000\000\000\147\000\000\000\147\000\000\000\000\000\155\000\000\000\000\000\000\000\184\006T\000\000\000\140\000\185\000\000\000\000\000\000\000\141\000\155\000\157\000\000\000\142\000\184\004\207\000\000\000\151\000\185\000\000\000\000\000\000\004\229\000\152\000\157\000\000\000\000\000\000\000\000\000\000\000\152\000\138\000\000\000\000\000\138\000\147\000\000\000\000\000\147\000\000\002\235\000\151\000\000\000\000\000\140\000\153\000\140\002\235\006\180\000\141\000\000\000\141\000\153\000\142\000\000\000\142\000\000\000\000\000\000\000\000\003\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\138\000\183\000\000\003\131\000\147\000\000\000\000\000\000\000\183\000\000\000\000\000\000\000\151\000\000\000\151\000\000\000\000\004\234\000\140\000\000\000\000\000\140\000\000\000\141\000\155\000\152\000\141\000\142\000\184\000\000\000\142\000\155\000\185\000\000\000\000\000\184\000\000\000\000\000\157\000\185\000\000\004\241\002\235\000\000\000\000\000\157\000\000\000\153\000\000\000\152\000\000\000\000\000\000\000\000\000\000\000\151\000\140\000\000\000\151\000\000\000\138\000\141\000\000\000\000\000\147\000\142\002\235\000\000\003r\003s\003\147\000\153\000\183\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\138\000\000\000\000\003\164\000\147\000\000\000\000\000\000\000\152\000\000\000\152\000\000\000\151\000\000\000\155\000\183\000\000\000\000\000\184\000\000\000\000\000\000\000\185\000\000\000\000\006U\000\000\001K\000\157\000\000\000\153\000\000\000\153\000\000\000\000\000\140\000\000\000\000\000\155\000\000\000\141\000\000\000\184\000\140\000\142\003t\000\185\000\000\000\000\003u\000\000\000\152\000\157\000\000\000\152\000\183\000\140\000\183\000\138\000\000\000\000\000\141\000\147\000\000\000\000\000\142\000\000\000\000\001q\000\000\000\000\006U\000\151\000\153\000\000\000\000\000\153\000\000\000\155\000\000\000\155\000\000\000\184\000\000\000\184\000\000\000\185\000\138\000\185\000\152\000\000\000\147\000\157\000\151\000\157\000\000\000\000\000\000\000\183\000\000\000\138\000\183\000\000\000\000\000\147\000\000\001\138\000\000\000\000\000\000\000\000\000\153\000\000\000\138\000\140\000\000\000\000\000\147\000\000\000\141\000\000\000\155\000\000\000\142\000\155\000\184\000\000\000\000\000\184\000\185\000\000\000\000\000\185\000\138\000\000\000\157\000\183\000\147\000\157\000\000\000\000\003r\003s\000\140\000\000\003\130\000\000\000\000\000\141\000\152\000\000\000\151\000\142\000\000\000\000\000\000\000\140\003\131\000\000\000\155\000\000\000\141\000\000\000\184\000\000\000\142\001\185\000\185\000\000\000\140\000\152\000\153\000\000\000\157\000\141\000\000\000\000\000\000\000\142\000\000\000\151\003r\003s\000\000\000\000\000\000\000\000\002\155\000\000\000\140\000\000\000\000\000\153\000\151\000\141\000\000\000\183\000\140\000\142\003t\000\000\000\000\002\193\003u\000\138\002\197\000\151\000\000\000\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\138\000\183\000\000\000\155\000\147\000\000\000\000\000\184\003\147\000\000\000\151\000\185\000\152\000\000\000\000\000\000\000\000\000\157\000\000\000\000\000\000\000\140\003\166\003t\000\155\000\000\000\000\003u\000\184\002\159\000\000\000\000\000\185\000\000\000\153\000\000\000\000\000\000\000\157\000\000\000\000\000\152\002\238\000\000\000\140\000\000\002\198\000\000\000\000\000\141\002\199\000\000\000\000\000\142\000\152\000\000\000\140\000\000\002\206\000\183\000\000\000\141\000\000\000\153\000\000\000\142\000\000\000\152\000\000\000\000\000\000\002\221\000\000\000\000\000\000\000\138\000\153\000\000\000\000\000\147\000\000\000\151\000\155\003\130\002\223\000\000\000\184\000\152\000\183\000\153\000\185\000\000\000\000\000\151\000\000\003\131\000\157\000\000\000\000\000\000\000\000\000\183\000\000\000\000\003|\000\000\000\000\000\000\000\138\000\153\000\000\000\155\000\147\000\000\000\183\000\184\000\000\000\000\000\000\000\185\000\000\003r\003s\003\130\000\155\000\157\000\000\002\239\000\184\000\138\000\000\000\140\000\185\000\147\000\183\003\131\000\141\000\155\000\157\000\000\000\142\000\184\000\000\000\000\002\212\000\185\000\000\003\030\000\138\000\000\000\138\000\157\000\147\002\242\000\147\000\000\002\213\000\155\000\152\000\000\000\000\000\184\003\147\000\000\000\140\000\185\000\000\000\000\000\151\000\141\000\152\000\157\000\000\000\142\000\000\003\187\003\168\000\140\000\000\003t\000\153\002\245\000\000\003u\000\000\000\140\000\000\003\192\000\000\000\000\000\141\000\000\000\153\000\000\000\142\000\000\000\000\000\000\000\000\000\000\000\000\000\151\003\147\000\000\000\140\000\183\000\140\000\000\000\138\000\141\000\000\000\141\000\147\000\142\000\000\000\142\003\170\000\183\003!\000\138\000\000\000\000\000\151\000\147\000\000\002\247\000\000\000\000\000\155\000\000\000\000\000\000\000\184\000\000\000\000\000\000\000\185\000\000\000\000\002\248\000\155\000\151\000\157\000\151\000\184\000\152\000\000\000\000\000\185\000\000\000\000\000\000\000\138\000\000\000\157\000\000\000\147\000\000\000\000\000\000\000\000\000\000\003\196\000\000\000\140\000\000\000\000\000\153\000\000\000\141\000\000\000\000\000\000\000\142\000\000\000\140\000\000\000\000\000\152\003\130\000\141\000\000\000\000\000\000\000\142\000\000\000\000\000\000\000\000\000\000\000\000\003\131\000\183\000\000\000\138\003\217\000\000\000\000\000\147\000\152\000\153\000\151\000\000\000\000\000\000\000\000\000\000\000\000\000\140\000\000\000\138\000\000\000\151\000\141\000\147\000\155\004\000\000\142\000\152\000\184\000\152\000\153\000\000\000\185\000\000\000\183\000\000\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\004\162\000\000\005\008\000\000\000\000\000\153\000\000\000\153\000\000\000\000\000\151\000\183\000\000\000\155\000\138\000\140\000\000\000\184\000\147\000\000\000\141\000\185\000\000\003\147\000\142\000\000\000\000\000\157\000\000\000\000\000\183\000\140\000\183\000\000\000\155\000\000\000\141\003\176\000\184\000\000\000\142\000\000\000\185\000\152\003r\003s\000\000\000\138\000\157\000\000\000\000\000\149\000\151\000\155\000\152\000\155\000\000\000\184\000\000\000\184\005\028\000\185\000\000\000\185\000\000\000\153\000\000\000\157\000\151\000\157\000\140\005\030\000\000\000\000\000\000\000\141\000\153\002\193\000\000\000\142\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\152\000\000\000\000\000\183\000\000\000\000\000\138\000\000\000\000\000\000\000\149\000\000\000\000\000\140\000\183\003t\000\140\005 \000\000\003u\000\151\000\141\000\153\000\000\000\000\000\142\000\155\000\000\000\000\000\000\000\184\000\000\003r\003s\000\185\000\000\000\000\000\155\000\000\000\000\000\157\000\184\000\152\000\000\000\000\000\185\002\238\000\183\000\000\000\000\002\198\000\157\000\000\000\151\002\199\000\000\000\000\000\000\000\152\005&\000\000\000\000\000\140\000\000\000\153\000\000\000\000\000\141\000\000\000\000\000\155\000\142\000\000\000\000\000\184\0054\000\000\000\000\000\185\000\000\000\153\000\000\000\000\000\000\000\157\000\000\000\000\000\000\000\140\000\183\003t\000\000\000\000\000\000\003u\000\000\000\000\000\152\000\000\000\151\000\000\000\000\000\000\000\000\000\000\000\183\000\000\000\000\000\000\000\000\000\000\000\000\000\155\000\000\005B\003\130\000\184\000\000\000\000\000\153\000\185\000\000\000\000\000\000\000\000\000\000\000\157\003\131\000\155\000\000\000\152\002\239\000\184\000\000\000\000\000\000\000\185\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\183\000\000\000\000\000\000\002\212\000\000\000\000\002\244\000\153\000\000\000\000\000\000\000\000\002\242\000\000\000\000\002\213\000\000\000\000\000\000\000\000\000\000\000\000\000\155\000\000\000\000\000\000\000\184\000\000\000\000\000\000\000\185\000\152\000\154\000\000\000\000\000\000\000\157\000\000\000\000\000\000\002\245\000\000\000\000\000\000\000\000\003\130\000\000\000\000\000\000\003\147\000\000\000\000\000\000\000\153\000\000\000\155\000\000\003\131\000\000\000\000\003\139\000\000\000\000\003\178\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\154\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\000\000\000\000\000\000\000\000\002\248\000\000\000\000\000\155\000\000\000\000\000\000\000\000\003\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\147\000\000\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\180")) let semantic_action = [| @@ -1566,7 +1566,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_aexpr = -# 1952 "parser_cocci_menhir.mly" +# 1936 "parser_cocci_menhir.mly" ( Ast0.set_arg_exp _1 ) # 1572 "parser_cocci_menhir.ml" in @@ -1587,14 +1587,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 89 "parser_cocci_menhir.mly" +# 69 "parser_cocci_menhir.mly" (Parse_aux.list_info) # 1593 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_aexpr = -# 1954 "parser_cocci_menhir.mly" +# 1938 "parser_cocci_menhir.mly" ( let (nm,lenname,pure,clt) = _1 in let nm = P.clt2mcode nm clt in let lenname = @@ -1624,7 +1624,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_aexpr = -# 1962 "parser_cocci_menhir.mly" +# 1946 "parser_cocci_menhir.mly" ( Ast0.set_arg_exp(Ast0.wrap(Ast0.TypeExp(_1))) ) # 1630 "parser_cocci_menhir.ml" in @@ -1646,7 +1646,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_any_strict = -# 2006 "parser_cocci_menhir.mly" +# 1990 "parser_cocci_menhir.mly" ( Ast.WhenAny ) # 1652 "parser_cocci_menhir.ml" in @@ -1668,7 +1668,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_any_strict = -# 2007 "parser_cocci_menhir.mly" +# 1991 "parser_cocci_menhir.mly" ( Ast.WhenStrict ) # 1674 "parser_cocci_menhir.ml" in @@ -1690,7 +1690,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_any_strict = -# 2008 "parser_cocci_menhir.mly" +# 1992 "parser_cocci_menhir.mly" ( Ast.WhenForall ) # 1696 "parser_cocci_menhir.ml" in @@ -1712,7 +1712,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_any_strict = -# 2009 "parser_cocci_menhir.mly" +# 1993 "parser_cocci_menhir.mly" ( Ast.WhenExists ) # 1718 "parser_cocci_menhir.ml" in @@ -1736,7 +1736,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1313 "parser_cocci_menhir.mly" +# 1297 "parser_cocci_menhir.mly" ( _1 ) # 1742 "parser_cocci_menhir.ml" in @@ -1768,7 +1768,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 1774 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -1776,7 +1776,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1315 "parser_cocci_menhir.mly" +# 1299 "parser_cocci_menhir.mly" ( P.arith_op Ast.Mul _1 _2 _3 ) # 1782 "parser_cocci_menhir.ml" in @@ -1808,7 +1808,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 120 "parser_cocci_menhir.mly" +# 100 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 1814 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -1816,7 +1816,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1317 "parser_cocci_menhir.mly" +# 1301 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) # 1822 "parser_cocci_menhir.ml" in @@ -1848,7 +1848,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 121 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 1854 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -1856,7 +1856,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1319 "parser_cocci_menhir.mly" +# 1303 "parser_cocci_menhir.mly" ( P.arith_op Ast.Plus _1 _2 _3 ) # 1862 "parser_cocci_menhir.ml" in @@ -1888,7 +1888,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 121 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 1894 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -1896,7 +1896,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1321 "parser_cocci_menhir.mly" +# 1305 "parser_cocci_menhir.mly" ( P.arith_op Ast.Minus _1 _2 _3 ) # 1902 "parser_cocci_menhir.ml" in @@ -1928,7 +1928,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 119 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 1934 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -1936,7 +1936,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1323 "parser_cocci_menhir.mly" +# 1307 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) # 1942 "parser_cocci_menhir.ml" in @@ -1968,7 +1968,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 118 "parser_cocci_menhir.mly" +# 98 "parser_cocci_menhir.mly" (Ast_cocci.logicalOp * Data.clt) # 1974 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -1976,7 +1976,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1325 "parser_cocci_menhir.mly" +# 1309 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) # 1982 "parser_cocci_menhir.ml" in @@ -2008,7 +2008,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 117 "parser_cocci_menhir.mly" +# 97 "parser_cocci_menhir.mly" (Data.clt) # 2014 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2016,7 +2016,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1327 "parser_cocci_menhir.mly" +# 1311 "parser_cocci_menhir.mly" ( P.logic_op Ast.Eq _1 _2 _3 ) # 2022 "parser_cocci_menhir.ml" in @@ -2048,7 +2048,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 117 "parser_cocci_menhir.mly" +# 97 "parser_cocci_menhir.mly" (Data.clt) # 2054 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2056,7 +2056,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1329 "parser_cocci_menhir.mly" +# 1313 "parser_cocci_menhir.mly" ( P.logic_op Ast.NotEq _1 _2 _3 ) # 2062 "parser_cocci_menhir.ml" in @@ -2088,7 +2088,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 116 "parser_cocci_menhir.mly" +# 96 "parser_cocci_menhir.mly" (Data.clt) # 2094 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2096,7 +2096,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1331 "parser_cocci_menhir.mly" +# 1315 "parser_cocci_menhir.mly" ( P.arith_op Ast.And _1 _2 _3 ) # 2102 "parser_cocci_menhir.ml" in @@ -2128,7 +2128,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 114 "parser_cocci_menhir.mly" +# 94 "parser_cocci_menhir.mly" (Data.clt) # 2134 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2136,7 +2136,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1333 "parser_cocci_menhir.mly" +# 1317 "parser_cocci_menhir.mly" ( P.arith_op Ast.Or _1 _2 _3 ) # 2142 "parser_cocci_menhir.ml" in @@ -2168,7 +2168,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 115 "parser_cocci_menhir.mly" +# 95 "parser_cocci_menhir.mly" (Data.clt) # 2174 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2176,7 +2176,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1335 "parser_cocci_menhir.mly" +# 1319 "parser_cocci_menhir.mly" ( P.arith_op Ast.Xor _1 _2 _3 ) # 2182 "parser_cocci_menhir.ml" in @@ -2208,7 +2208,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 113 "parser_cocci_menhir.mly" +# 93 "parser_cocci_menhir.mly" (Data.clt) # 2214 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2216,7 +2216,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1337 "parser_cocci_menhir.mly" +# 1321 "parser_cocci_menhir.mly" ( P.logic_op Ast.AndLog _1 _2 _3 ) # 2222 "parser_cocci_menhir.ml" in @@ -2248,7 +2248,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic _3 in let _2 : ( -# 112 "parser_cocci_menhir.mly" +# 92 "parser_cocci_menhir.mly" (Data.clt) # 2254 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2256,7 +2256,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_dot_expressions_ = -# 1339 "parser_cocci_menhir.mly" +# 1323 "parser_cocci_menhir.mly" ( P.logic_op Ast.OrLog _1 _2 _3 ) # 2262 "parser_cocci_menhir.ml" in @@ -2280,7 +2280,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1313 "parser_cocci_menhir.mly" +# 1297 "parser_cocci_menhir.mly" ( _1 ) # 2286 "parser_cocci_menhir.ml" in @@ -2312,7 +2312,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 2318 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2320,7 +2320,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1315 "parser_cocci_menhir.mly" +# 1299 "parser_cocci_menhir.mly" ( P.arith_op Ast.Mul _1 _2 _3 ) # 2326 "parser_cocci_menhir.ml" in @@ -2352,7 +2352,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 120 "parser_cocci_menhir.mly" +# 100 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 2358 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2360,7 +2360,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1317 "parser_cocci_menhir.mly" +# 1301 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) # 2366 "parser_cocci_menhir.ml" in @@ -2392,7 +2392,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 121 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 2398 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2400,7 +2400,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1319 "parser_cocci_menhir.mly" +# 1303 "parser_cocci_menhir.mly" ( P.arith_op Ast.Plus _1 _2 _3 ) # 2406 "parser_cocci_menhir.ml" in @@ -2432,7 +2432,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 121 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 2438 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2440,7 +2440,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1321 "parser_cocci_menhir.mly" +# 1305 "parser_cocci_menhir.mly" ( P.arith_op Ast.Minus _1 _2 _3 ) # 2446 "parser_cocci_menhir.ml" in @@ -2472,7 +2472,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 119 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 2478 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2480,7 +2480,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1323 "parser_cocci_menhir.mly" +# 1307 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) # 2486 "parser_cocci_menhir.ml" in @@ -2512,7 +2512,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 118 "parser_cocci_menhir.mly" +# 98 "parser_cocci_menhir.mly" (Ast_cocci.logicalOp * Data.clt) # 2518 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2520,7 +2520,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1325 "parser_cocci_menhir.mly" +# 1309 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) # 2526 "parser_cocci_menhir.ml" in @@ -2552,7 +2552,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 117 "parser_cocci_menhir.mly" +# 97 "parser_cocci_menhir.mly" (Data.clt) # 2558 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2560,7 +2560,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1327 "parser_cocci_menhir.mly" +# 1311 "parser_cocci_menhir.mly" ( P.logic_op Ast.Eq _1 _2 _3 ) # 2566 "parser_cocci_menhir.ml" in @@ -2592,7 +2592,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 117 "parser_cocci_menhir.mly" +# 97 "parser_cocci_menhir.mly" (Data.clt) # 2598 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2600,7 +2600,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1329 "parser_cocci_menhir.mly" +# 1313 "parser_cocci_menhir.mly" ( P.logic_op Ast.NotEq _1 _2 _3 ) # 2606 "parser_cocci_menhir.ml" in @@ -2632,7 +2632,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 116 "parser_cocci_menhir.mly" +# 96 "parser_cocci_menhir.mly" (Data.clt) # 2638 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2640,7 +2640,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1331 "parser_cocci_menhir.mly" +# 1315 "parser_cocci_menhir.mly" ( P.arith_op Ast.And _1 _2 _3 ) # 2646 "parser_cocci_menhir.ml" in @@ -2672,7 +2672,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 114 "parser_cocci_menhir.mly" +# 94 "parser_cocci_menhir.mly" (Data.clt) # 2678 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2680,7 +2680,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1333 "parser_cocci_menhir.mly" +# 1317 "parser_cocci_menhir.mly" ( P.arith_op Ast.Or _1 _2 _3 ) # 2686 "parser_cocci_menhir.ml" in @@ -2712,7 +2712,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 115 "parser_cocci_menhir.mly" +# 95 "parser_cocci_menhir.mly" (Data.clt) # 2718 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2720,7 +2720,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1335 "parser_cocci_menhir.mly" +# 1319 "parser_cocci_menhir.mly" ( P.arith_op Ast.Xor _1 _2 _3 ) # 2726 "parser_cocci_menhir.ml" in @@ -2752,7 +2752,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 113 "parser_cocci_menhir.mly" +# 93 "parser_cocci_menhir.mly" (Data.clt) # 2758 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2760,7 +2760,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1337 "parser_cocci_menhir.mly" +# 1321 "parser_cocci_menhir.mly" ( P.logic_op Ast.AndLog _1 _2 _3 ) # 2766 "parser_cocci_menhir.ml" in @@ -2792,7 +2792,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_invalid_ = Obj.magic _3 in let _2 : ( -# 112 "parser_cocci_menhir.mly" +# 92 "parser_cocci_menhir.mly" (Data.clt) # 2798 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2800,7 +2800,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_invalid_ = -# 1339 "parser_cocci_menhir.mly" +# 1323 "parser_cocci_menhir.mly" ( P.logic_op Ast.OrLog _1 _2 _3 ) # 2806 "parser_cocci_menhir.ml" in @@ -2824,7 +2824,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1313 "parser_cocci_menhir.mly" +# 1297 "parser_cocci_menhir.mly" ( _1 ) # 2830 "parser_cocci_menhir.ml" in @@ -2856,7 +2856,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 2862 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2864,7 +2864,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1315 "parser_cocci_menhir.mly" +# 1299 "parser_cocci_menhir.mly" ( P.arith_op Ast.Mul _1 _2 _3 ) # 2870 "parser_cocci_menhir.ml" in @@ -2896,7 +2896,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 120 "parser_cocci_menhir.mly" +# 100 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 2902 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2904,7 +2904,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1317 "parser_cocci_menhir.mly" +# 1301 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) # 2910 "parser_cocci_menhir.ml" in @@ -2936,7 +2936,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 121 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 2942 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2944,7 +2944,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1319 "parser_cocci_menhir.mly" +# 1303 "parser_cocci_menhir.mly" ( P.arith_op Ast.Plus _1 _2 _3 ) # 2950 "parser_cocci_menhir.ml" in @@ -2976,7 +2976,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 121 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 2982 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -2984,7 +2984,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1321 "parser_cocci_menhir.mly" +# 1305 "parser_cocci_menhir.mly" ( P.arith_op Ast.Minus _1 _2 _3 ) # 2990 "parser_cocci_menhir.ml" in @@ -3016,7 +3016,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 119 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 3022 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3024,7 +3024,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1323 "parser_cocci_menhir.mly" +# 1307 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) # 3030 "parser_cocci_menhir.ml" in @@ -3056,7 +3056,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 118 "parser_cocci_menhir.mly" +# 98 "parser_cocci_menhir.mly" (Ast_cocci.logicalOp * Data.clt) # 3062 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3064,7 +3064,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1325 "parser_cocci_menhir.mly" +# 1309 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) # 3070 "parser_cocci_menhir.ml" in @@ -3096,7 +3096,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 117 "parser_cocci_menhir.mly" +# 97 "parser_cocci_menhir.mly" (Data.clt) # 3102 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3104,7 +3104,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1327 "parser_cocci_menhir.mly" +# 1311 "parser_cocci_menhir.mly" ( P.logic_op Ast.Eq _1 _2 _3 ) # 3110 "parser_cocci_menhir.ml" in @@ -3136,7 +3136,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 117 "parser_cocci_menhir.mly" +# 97 "parser_cocci_menhir.mly" (Data.clt) # 3142 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3144,7 +3144,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1329 "parser_cocci_menhir.mly" +# 1313 "parser_cocci_menhir.mly" ( P.logic_op Ast.NotEq _1 _2 _3 ) # 3150 "parser_cocci_menhir.ml" in @@ -3176,7 +3176,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 116 "parser_cocci_menhir.mly" +# 96 "parser_cocci_menhir.mly" (Data.clt) # 3182 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3184,7 +3184,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1331 "parser_cocci_menhir.mly" +# 1315 "parser_cocci_menhir.mly" ( P.arith_op Ast.And _1 _2 _3 ) # 3190 "parser_cocci_menhir.ml" in @@ -3216,7 +3216,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 114 "parser_cocci_menhir.mly" +# 94 "parser_cocci_menhir.mly" (Data.clt) # 3222 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3224,7 +3224,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1333 "parser_cocci_menhir.mly" +# 1317 "parser_cocci_menhir.mly" ( P.arith_op Ast.Or _1 _2 _3 ) # 3230 "parser_cocci_menhir.ml" in @@ -3256,7 +3256,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 115 "parser_cocci_menhir.mly" +# 95 "parser_cocci_menhir.mly" (Data.clt) # 3262 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3264,7 +3264,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1335 "parser_cocci_menhir.mly" +# 1319 "parser_cocci_menhir.mly" ( P.arith_op Ast.Xor _1 _2 _3 ) # 3270 "parser_cocci_menhir.ml" in @@ -3296,7 +3296,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 113 "parser_cocci_menhir.mly" +# 93 "parser_cocci_menhir.mly" (Data.clt) # 3302 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3304,7 +3304,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1337 "parser_cocci_menhir.mly" +# 1321 "parser_cocci_menhir.mly" ( P.logic_op Ast.AndLog _1 _2 _3 ) # 3310 "parser_cocci_menhir.ml" in @@ -3336,7 +3336,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic _3 in let _2 : ( -# 112 "parser_cocci_menhir.mly" +# 92 "parser_cocci_menhir.mly" (Data.clt) # 3342 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3344,7 +3344,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_eexpr_nest_expressions_ = -# 1339 "parser_cocci_menhir.mly" +# 1323 "parser_cocci_menhir.mly" ( P.logic_op Ast.OrLog _1 _2 _3 ) # 3350 "parser_cocci_menhir.ml" in @@ -3368,7 +3368,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1313 "parser_cocci_menhir.mly" +# 1297 "parser_cocci_menhir.mly" ( _1 ) # 3374 "parser_cocci_menhir.ml" in @@ -3400,7 +3400,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) # 3406 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3408,7 +3408,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1315 "parser_cocci_menhir.mly" +# 1299 "parser_cocci_menhir.mly" ( P.arith_op Ast.Mul _1 _2 _3 ) # 3414 "parser_cocci_menhir.ml" in @@ -3440,7 +3440,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 120 "parser_cocci_menhir.mly" +# 100 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 3446 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3448,7 +3448,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1317 "parser_cocci_menhir.mly" +# 1301 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) # 3454 "parser_cocci_menhir.ml" in @@ -3480,7 +3480,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 121 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 3486 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3488,7 +3488,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1319 "parser_cocci_menhir.mly" +# 1303 "parser_cocci_menhir.mly" ( P.arith_op Ast.Plus _1 _2 _3 ) # 3494 "parser_cocci_menhir.ml" in @@ -3520,7 +3520,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 121 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) # 3526 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3528,7 +3528,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1321 "parser_cocci_menhir.mly" +# 1305 "parser_cocci_menhir.mly" ( P.arith_op Ast.Minus _1 _2 _3 ) # 3534 "parser_cocci_menhir.ml" in @@ -3560,7 +3560,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 119 "parser_cocci_menhir.mly" +# 99 "parser_cocci_menhir.mly" (Ast_cocci.arithOp * Data.clt) # 3566 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3568,7 +3568,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1323 "parser_cocci_menhir.mly" +# 1307 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.arith_op op _1 clt _3 ) # 3574 "parser_cocci_menhir.ml" in @@ -3600,7 +3600,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 118 "parser_cocci_menhir.mly" +# 98 "parser_cocci_menhir.mly" (Ast_cocci.logicalOp * Data.clt) # 3606 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3608,7 +3608,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1325 "parser_cocci_menhir.mly" +# 1309 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in P.logic_op op _1 clt _3 ) # 3614 "parser_cocci_menhir.ml" in @@ -3640,7 +3640,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 117 "parser_cocci_menhir.mly" +# 97 "parser_cocci_menhir.mly" (Data.clt) # 3646 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3648,7 +3648,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1327 "parser_cocci_menhir.mly" +# 1311 "parser_cocci_menhir.mly" ( P.logic_op Ast.Eq _1 _2 _3 ) # 3654 "parser_cocci_menhir.ml" in @@ -3680,7 +3680,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 117 "parser_cocci_menhir.mly" +# 97 "parser_cocci_menhir.mly" (Data.clt) # 3686 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3688,7 +3688,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1329 "parser_cocci_menhir.mly" +# 1313 "parser_cocci_menhir.mly" ( P.logic_op Ast.NotEq _1 _2 _3 ) # 3694 "parser_cocci_menhir.ml" in @@ -3720,7 +3720,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 116 "parser_cocci_menhir.mly" +# 96 "parser_cocci_menhir.mly" (Data.clt) # 3726 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3728,7 +3728,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1331 "parser_cocci_menhir.mly" +# 1315 "parser_cocci_menhir.mly" ( P.arith_op Ast.And _1 _2 _3 ) # 3734 "parser_cocci_menhir.ml" in @@ -3760,7 +3760,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 114 "parser_cocci_menhir.mly" +# 94 "parser_cocci_menhir.mly" (Data.clt) # 3766 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3768,7 +3768,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1333 "parser_cocci_menhir.mly" +# 1317 "parser_cocci_menhir.mly" ( P.arith_op Ast.Or _1 _2 _3 ) # 3774 "parser_cocci_menhir.ml" in @@ -3800,7 +3800,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 115 "parser_cocci_menhir.mly" +# 95 "parser_cocci_menhir.mly" (Data.clt) # 3806 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3808,7 +3808,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1335 "parser_cocci_menhir.mly" +# 1319 "parser_cocci_menhir.mly" ( P.arith_op Ast.Xor _1 _2 _3 ) # 3814 "parser_cocci_menhir.ml" in @@ -3840,7 +3840,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 113 "parser_cocci_menhir.mly" +# 93 "parser_cocci_menhir.mly" (Data.clt) # 3846 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3848,7 +3848,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1337 "parser_cocci_menhir.mly" +# 1321 "parser_cocci_menhir.mly" ( P.logic_op Ast.AndLog _1 _2 _3 ) # 3854 "parser_cocci_menhir.ml" in @@ -3880,7 +3880,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_arith_expr_expr_invalid_ = Obj.magic _3 in let _2 : ( -# 112 "parser_cocci_menhir.mly" +# 92 "parser_cocci_menhir.mly" (Data.clt) # 3886 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -3888,7 +3888,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_arith_expr_expr_invalid_ = -# 1339 "parser_cocci_menhir.mly" +# 1323 "parser_cocci_menhir.mly" ( P.logic_op Ast.OrLog _1 _2 _3 ) # 3894 "parser_cocci_menhir.ml" in @@ -3910,7 +3910,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arity = -# 519 "parser_cocci_menhir.mly" +# 499 "parser_cocci_menhir.mly" ( Ast.UNIQUE ) # 3916 "parser_cocci_menhir.ml" in @@ -3932,7 +3932,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arity = -# 520 "parser_cocci_menhir.mly" +# 500 "parser_cocci_menhir.mly" ( Ast.OPT ) # 3938 "parser_cocci_menhir.ml" in @@ -3954,7 +3954,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_arity = -# 521 "parser_cocci_menhir.mly" +# 501 "parser_cocci_menhir.mly" ( Ast.MULTI ) # 3960 "parser_cocci_menhir.ml" in @@ -3971,7 +3971,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_arity = -# 522 "parser_cocci_menhir.mly" +# 502 "parser_cocci_menhir.mly" ( Ast.NONE ) # 3977 "parser_cocci_menhir.ml" in @@ -4002,20 +4002,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let r : ( -# 125 "parser_cocci_menhir.mly" +# 105 "parser_cocci_menhir.mly" (Data.clt) # 4008 "parser_cocci_menhir.ml" ) = Obj.magic r in let i : 'tv_option_eexpr_ = Obj.magic i in let l : ( -# 125 "parser_cocci_menhir.mly" +# 105 "parser_cocci_menhir.mly" (Data.clt) # 4014 "parser_cocci_menhir.ml" ) = Obj.magic l in let _startpos = _startpos_l_ in let _endpos = _endpos_r_ in let _v : 'tv_array_dec = -# 1120 "parser_cocci_menhir.mly" +# 1100 "parser_cocci_menhir.mly" ( (l,i,r) ) # 4021 "parser_cocci_menhir.ml" in @@ -4039,7 +4039,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_assign_expr_eexpr_dot_expressions_ = -# 1285 "parser_cocci_menhir.mly" +# 1269 "parser_cocci_menhir.mly" ( _1 ) # 4045 "parser_cocci_menhir.ml" in @@ -4071,7 +4071,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 131 "parser_cocci_menhir.mly" +# 111 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) # 4077 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -4079,7 +4079,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_eexpr_dot_expressions_ = -# 1287 "parser_cocci_menhir.mly" +# 1271 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt, Ast0.set_arg_exp _3,false)) ) @@ -4113,7 +4113,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) # 4119 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -4121,7 +4121,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_eexpr_dot_expressions_ = -# 1291 "parser_cocci_menhir.mly" +# 1275 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Assignment (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) ) @@ -4147,7 +4147,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_assign_expr_eexpr_nest_expressions_ = -# 1285 "parser_cocci_menhir.mly" +# 1269 "parser_cocci_menhir.mly" ( _1 ) # 4153 "parser_cocci_menhir.ml" in @@ -4179,7 +4179,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 131 "parser_cocci_menhir.mly" +# 111 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) # 4185 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -4187,7 +4187,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_eexpr_nest_expressions_ = -# 1287 "parser_cocci_menhir.mly" +# 1271 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt, Ast0.set_arg_exp _3,false)) ) @@ -4221,7 +4221,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) # 4227 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -4229,7 +4229,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_eexpr_nest_expressions_ = -# 1291 "parser_cocci_menhir.mly" +# 1275 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Assignment (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) ) @@ -4255,7 +4255,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_assign_expr_expr_invalid_ = -# 1285 "parser_cocci_menhir.mly" +# 1269 "parser_cocci_menhir.mly" ( _1 ) # 4261 "parser_cocci_menhir.ml" in @@ -4287,7 +4287,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 131 "parser_cocci_menhir.mly" +# 111 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) # 4293 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -4295,7 +4295,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_expr_invalid_ = -# 1287 "parser_cocci_menhir.mly" +# 1271 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt, Ast0.set_arg_exp _3,false)) ) @@ -4329,7 +4329,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) # 4335 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -4337,7 +4337,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_expr_invalid_ = -# 1291 "parser_cocci_menhir.mly" +# 1275 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Assignment (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) ) @@ -4363,7 +4363,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_assign_expr_bis = -# 1296 "parser_cocci_menhir.mly" +# 1280 "parser_cocci_menhir.mly" ( _1 ) # 4369 "parser_cocci_menhir.ml" in @@ -4395,7 +4395,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 131 "parser_cocci_menhir.mly" +# 111 "parser_cocci_menhir.mly" (Ast_cocci.assignOp * Data.clt) # 4401 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -4403,7 +4403,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_bis = -# 1298 "parser_cocci_menhir.mly" +# 1282 "parser_cocci_menhir.mly" ( let (op,clt) = _2 in Ast0.wrap(Ast0.Assignment(_1,P.clt2mcode op clt, Ast0.set_arg_exp _3,false)) ) @@ -4437,7 +4437,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_assign_expr_bis = Obj.magic _3 in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) # 4443 "parser_cocci_menhir.ml" ) = Obj.magic _2 in @@ -4445,7 +4445,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_assign_expr_bis = -# 1302 "parser_cocci_menhir.mly" +# 1286 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Assignment (_1,P.clt2mcode Ast.SimpleAssign _2,Ast0.set_arg_exp _3,false)) ) @@ -4471,7 +4471,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_basic_expr_eexpr_dot_expressions_ = -# 1282 "parser_cocci_menhir.mly" +# 1266 "parser_cocci_menhir.mly" ( _1 ) # 4477 "parser_cocci_menhir.ml" in @@ -4495,7 +4495,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_basic_expr_eexpr_nest_expressions_ = -# 1282 "parser_cocci_menhir.mly" +# 1266 "parser_cocci_menhir.mly" ( _1 ) # 4501 "parser_cocci_menhir.ml" in @@ -4519,7 +4519,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_basic_expr_expr_invalid_ = -# 1282 "parser_cocci_menhir.mly" +# 1266 "parser_cocci_menhir.mly" ( _1 ) # 4525 "parser_cocci_menhir.ml" in @@ -4551,19 +4551,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_fun_start = Obj.magic _3 in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) # 4557 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) # 4562 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_case_line = -# 984 "parser_cocci_menhir.mly" +# 964 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Default(P.clt2mcode "default" _1,P.clt2mcode ":" _2,_3)) ) # 4570 "parser_cocci_menhir.ml" @@ -4601,20 +4601,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _4 : 'tv_fun_start = Obj.magic _4 in let _3 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) # 4607 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) # 4613 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_case_line = -# 987 "parser_cocci_menhir.mly" +# 967 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Case(P.clt2mcode "case" _1,_2,P.clt2mcode ":" _3,_4)) ) # 4620 "parser_cocci_menhir.ml" in @@ -4638,7 +4638,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cast_expr_eexpr_dot_expressions_ = -# 1342 "parser_cocci_menhir.mly" +# 1326 "parser_cocci_menhir.mly" ( _1 ) # 4644 "parser_cocci_menhir.ml" in @@ -4675,20 +4675,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let e : 'tv_cast_expr_eexpr_dot_expressions_ = Obj.magic e in let rp : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) # 4681 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) # 4687 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_e_ in let _v : 'tv_cast_expr_eexpr_dot_expressions_ = -# 1344 "parser_cocci_menhir.mly" +# 1328 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t, P.clt2mcode ")" rp, e)) ) # 4695 "parser_cocci_menhir.ml" @@ -4713,7 +4713,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cast_expr_eexpr_invalid_ = -# 1342 "parser_cocci_menhir.mly" +# 1326 "parser_cocci_menhir.mly" ( _1 ) # 4719 "parser_cocci_menhir.ml" in @@ -4750,20 +4750,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let e : 'tv_cast_expr_eexpr_invalid_ = Obj.magic e in let rp : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) # 4756 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) # 4762 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_e_ in let _v : 'tv_cast_expr_eexpr_invalid_ = -# 1344 "parser_cocci_menhir.mly" +# 1328 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t, P.clt2mcode ")" rp, e)) ) # 4770 "parser_cocci_menhir.ml" @@ -4788,7 +4788,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cast_expr_eexpr_nest_expressions_ = -# 1342 "parser_cocci_menhir.mly" +# 1326 "parser_cocci_menhir.mly" ( _1 ) # 4794 "parser_cocci_menhir.ml" in @@ -4825,20 +4825,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let e : 'tv_cast_expr_eexpr_nest_expressions_ = Obj.magic e in let rp : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) # 4831 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) # 4837 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_e_ in let _v : 'tv_cast_expr_eexpr_nest_expressions_ = -# 1344 "parser_cocci_menhir.mly" +# 1328 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t, P.clt2mcode ")" rp, e)) ) # 4845 "parser_cocci_menhir.ml" @@ -4863,7 +4863,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cast_expr_expr_invalid_ = -# 1342 "parser_cocci_menhir.mly" +# 1326 "parser_cocci_menhir.mly" ( _1 ) # 4869 "parser_cocci_menhir.ml" in @@ -4900,20 +4900,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let e : 'tv_cast_expr_expr_invalid_ = Obj.magic e in let rp : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) # 4906 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) # 4912 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_e_ in let _v : 'tv_cast_expr_expr_invalid_ = -# 1344 "parser_cocci_menhir.mly" +# 1328 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Cast (P.clt2mcode "(" lp, t, P.clt2mcode ")" rp, e)) ) # 4920 "parser_cocci_menhir.ml" @@ -4942,7 +4942,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_choose_iso = -# 260 "parser_cocci_menhir.mly" +# 240 "parser_cocci_menhir.mly" ( List.map P.id2name _2 ) # 4948 "parser_cocci_menhir.ml" in @@ -4968,19 +4968,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 4974 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) # 4979 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_comma_decls_TEllipsis_decl_ = -# 1747 "parser_cocci_menhir.mly" +# 1731 "parser_cocci_menhir.mly" ( function dot_builder -> [Ast0.wrap(Ast0.PComma(P.clt2mcode "," _1)); dot_builder _2] ) @@ -5009,14 +5009,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_one_dec_decl_ = Obj.magic _2 in let _1 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) # 5015 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_comma_decls_TEllipsis_decl_ = -# 1751 "parser_cocci_menhir.mly" +# 1735 "parser_cocci_menhir.mly" ( function dot_builder -> [Ast0.wrap(Ast0.PComma(P.clt2mcode "," _1)); _2] ) # 5023 "parser_cocci_menhir.ml" @@ -5043,19 +5043,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) # 5049 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) # 5054 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_comma_decls_TEllipsis_name_opt_decl_ = -# 1747 "parser_cocci_menhir.mly" +# 1731 "parser_cocci_menhir.mly" ( function dot_builder -> [Ast0.wrap(Ast0.PComma(P.clt2mcode "," _1)); dot_builder _2] ) @@ -5084,14 +5084,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_one_dec_name_opt_decl_ = Obj.magic _2 in let _1 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) # 5090 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_comma_decls_TEllipsis_name_opt_decl_ = -# 1751 "parser_cocci_menhir.mly" +# 1735 "parser_cocci_menhir.mly" ( function dot_builder -> [Ast0.wrap(Ast0.PComma(P.clt2mcode "," _1)); _2] ) # 5098 "parser_cocci_menhir.ml" @@ -5109,7 +5109,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = -# 1173 "parser_cocci_menhir.mly" +# 1155 "parser_cocci_menhir.mly" ( [] ) # 5115 "parser_cocci_menhir.ml" in @@ -5139,7 +5139,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_d_ in let _endpos = _endpos_r_ in let _v : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = -# 1175 "parser_cocci_menhir.mly" +# 1157 "parser_cocci_menhir.mly" ( (function dot_builder -> [dot_builder d])::r ) # 5145 "parser_cocci_menhir.ml" in @@ -5150,6 +5150,34 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (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.semv = r; + MenhirLib.EngineTypes.startp = _startpos_r_; + MenhirLib.EngineTypes.endp = _endpos_r_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let r : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = Obj.magic r in + let _startpos = _startpos__1_ in + let _endpos = _endpos_r_ in + let _v : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = +# 1158 "parser_cocci_menhir.mly" + ( r ) +# 5173 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + 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 { @@ -5171,18 +5199,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = Obj.magic r in let c : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 5177 "parser_cocci_menhir.ml" +# 5205 "parser_cocci_menhir.ml" ) = Obj.magic c in let i : 'tv_initialize2 = Obj.magic i in let _startpos = _startpos_i_ in let _endpos = _endpos_r_ in let _v : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = -# 1177 "parser_cocci_menhir.mly" +# 1160 "parser_cocci_menhir.mly" ( (function dot_builder -> [i; Ast0.wrap(Ast0.IComma(P.clt2mcode "," c))]):: r ) -# 5186 "parser_cocci_menhir.ml" +# 5214 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5197,9 +5225,37 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_comma_initializers2_edots_when_TEllipsis_initialize__ = -# 1181 "parser_cocci_menhir.mly" +# 1164 "parser_cocci_menhir.mly" ( [] ) -# 5203 "parser_cocci_menhir.ml" +# 5231 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + 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.semv = r; + MenhirLib.EngineTypes.startp = _startpos_r_; + MenhirLib.EngineTypes.endp = _endpos_r_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let r : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = Obj.magic r in + let _startpos = _startpos__1_ in + let _endpos = _endpos_r_ in + let _v : 'tv_comma_initializers2_edots_when_TEllipsis_initialize__ = +# 1165 "parser_cocci_menhir.mly" + ( r ) +# 5259 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5229,18 +5285,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_comma_initializers_edots_when_TEllipsis_initialize__ = Obj.magic r in let c : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 5235 "parser_cocci_menhir.ml" +# 5291 "parser_cocci_menhir.ml" ) = Obj.magic c in let i : 'tv_initialize2 = Obj.magic i in let _startpos = _startpos_i_ in let _endpos = _endpos_r_ in let _v : 'tv_comma_initializers2_edots_when_TEllipsis_initialize__ = -# 1183 "parser_cocci_menhir.mly" +# 1167 "parser_cocci_menhir.mly" ( (function dot_builder -> [i; Ast0.wrap(Ast0.IComma(P.clt2mcode "," c))]):: r ) -# 5244 "parser_cocci_menhir.ml" +# 5300 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5262,9 +5318,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_any_strict_ = -# 1984 "parser_cocci_menhir.mly" +# 1968 "parser_cocci_menhir.mly" ( _1 ) -# 5268 "parser_cocci_menhir.ml" +# 5324 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5286,9 +5342,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_ctype_ = -# 1984 "parser_cocci_menhir.mly" +# 1968 "parser_cocci_menhir.mly" ( _1 ) -# 5292 "parser_cocci_menhir.ml" +# 5348 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5310,9 +5366,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_d_ident_ = -# 1984 "parser_cocci_menhir.mly" +# 1968 "parser_cocci_menhir.mly" ( _1 ) -# 5316 "parser_cocci_menhir.ml" +# 5372 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5334,9 +5390,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_ident_or_const_ = -# 1984 "parser_cocci_menhir.mly" +# 1968 "parser_cocci_menhir.mly" ( _1 ) -# 5340 "parser_cocci_menhir.ml" +# 5396 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5358,9 +5414,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_meta_ident_ = -# 1984 "parser_cocci_menhir.mly" +# 1968 "parser_cocci_menhir.mly" ( _1 ) -# 5364 "parser_cocci_menhir.ml" +# 5420 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5382,9 +5438,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_pure_ident_ = -# 1984 "parser_cocci_menhir.mly" +# 1968 "parser_cocci_menhir.mly" ( _1 ) -# 5388 "parser_cocci_menhir.ml" +# 5444 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5406,9 +5462,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_pure_ident_or_meta_ident_ = -# 1984 "parser_cocci_menhir.mly" +# 1968 "parser_cocci_menhir.mly" ( _1 ) -# 5412 "parser_cocci_menhir.ml" +# 5468 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5430,9 +5486,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = -# 1984 "parser_cocci_menhir.mly" +# 1968 "parser_cocci_menhir.mly" ( _1 ) -# 5436 "parser_cocci_menhir.ml" +# 5492 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5454,9 +5510,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = -# 1984 "parser_cocci_menhir.mly" +# 1968 "parser_cocci_menhir.mly" ( _1 ) -# 5460 "parser_cocci_menhir.ml" +# 5516 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5478,9 +5534,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = -# 1984 "parser_cocci_menhir.mly" +# 1968 "parser_cocci_menhir.mly" ( _1 ) -# 5484 "parser_cocci_menhir.ml" +# 5540 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5502,9 +5558,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid__ = -# 1984 "parser_cocci_menhir.mly" +# 1968 "parser_cocci_menhir.mly" ( _1 ) -# 5508 "parser_cocci_menhir.ml" +# 5564 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5526,9 +5582,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_seed_ = -# 1984 "parser_cocci_menhir.mly" +# 1968 "parser_cocci_menhir.mly" ( _1 ) -# 5532 "parser_cocci_menhir.ml" +# 5588 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5550,9 +5606,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_pure_ident_or_meta_ident_with_x_eq_not_pos__ = -# 1984 "parser_cocci_menhir.mly" +# 1968 "parser_cocci_menhir.mly" ( _1 ) -# 5556 "parser_cocci_menhir.ml" +# 5612 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5574,9 +5630,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_comma_list_typedef_ident_ = -# 1984 "parser_cocci_menhir.mly" +# 1968 "parser_cocci_menhir.mly" ( _1 ) -# 5580 "parser_cocci_menhir.ml" +# 5636 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5598,9 +5654,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cond_expr_eexpr_dot_expressions_ = -# 1307 "parser_cocci_menhir.mly" +# 1291 "parser_cocci_menhir.mly" ( _1 ) -# 5604 "parser_cocci_menhir.ml" +# 5660 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5640,24 +5696,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_cond_expr_eexpr_dot_expressions_ = Obj.magic r in let dd : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 5646 "parser_cocci_menhir.ml" +# 5702 "parser_cocci_menhir.ml" ) = Obj.magic dd in let t : 'tv_option_eexpr_ = Obj.magic t in let w : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 5652 "parser_cocci_menhir.ml" +# 5708 "parser_cocci_menhir.ml" ) = Obj.magic w in let l : 'tv_arith_expr_eexpr_dot_expressions_ = Obj.magic l in let _startpos = _startpos_l_ in let _endpos = _endpos_r_ in let _v : 'tv_cond_expr_eexpr_dot_expressions_ = -# 1309 "parser_cocci_menhir.mly" +# 1293 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t, P.clt2mcode ":" dd, r)) ) -# 5661 "parser_cocci_menhir.ml" +# 5717 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5679,9 +5735,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cond_expr_eexpr_nest_expressions_ = -# 1307 "parser_cocci_menhir.mly" +# 1291 "parser_cocci_menhir.mly" ( _1 ) -# 5685 "parser_cocci_menhir.ml" +# 5741 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5721,24 +5777,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_cond_expr_eexpr_nest_expressions_ = Obj.magic r in let dd : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 5727 "parser_cocci_menhir.ml" +# 5783 "parser_cocci_menhir.ml" ) = Obj.magic dd in let t : 'tv_option_eexpr_ = Obj.magic t in let w : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 5733 "parser_cocci_menhir.ml" +# 5789 "parser_cocci_menhir.ml" ) = Obj.magic w in let l : 'tv_arith_expr_eexpr_nest_expressions_ = Obj.magic l in let _startpos = _startpos_l_ in let _endpos = _endpos_r_ in let _v : 'tv_cond_expr_eexpr_nest_expressions_ = -# 1309 "parser_cocci_menhir.mly" +# 1293 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t, P.clt2mcode ":" dd, r)) ) -# 5742 "parser_cocci_menhir.ml" +# 5798 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5760,9 +5816,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_cond_expr_expr_invalid_ = -# 1307 "parser_cocci_menhir.mly" +# 1291 "parser_cocci_menhir.mly" ( _1 ) -# 5766 "parser_cocci_menhir.ml" +# 5822 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5802,24 +5858,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_cond_expr_expr_invalid_ = Obj.magic r in let dd : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 5808 "parser_cocci_menhir.ml" +# 5864 "parser_cocci_menhir.ml" ) = Obj.magic dd in let t : 'tv_option_eexpr_ = Obj.magic t in let w : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 5814 "parser_cocci_menhir.ml" +# 5870 "parser_cocci_menhir.ml" ) = Obj.magic w in let l : 'tv_arith_expr_expr_invalid_ = Obj.magic l in let _startpos = _startpos_l_ in let _endpos = _endpos_r_ in let _v : 'tv_cond_expr_expr_invalid_ = -# 1309 "parser_cocci_menhir.mly" +# 1293 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.CondExpr (l, P.clt2mcode "?" w, t, P.clt2mcode ":" dd, r)) ) -# 5823 "parser_cocci_menhir.ml" +# 5879 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5838,16 +5894,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 76 "parser_cocci_menhir.mly" +# 56 "parser_cocci_menhir.mly" (Data.clt) -# 5844 "parser_cocci_menhir.ml" +# 5900 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_const_vol = -# 893 "parser_cocci_menhir.mly" +# 873 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Const _1 ) -# 5851 "parser_cocci_menhir.ml" +# 5907 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5866,16 +5922,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 76 "parser_cocci_menhir.mly" +# 56 "parser_cocci_menhir.mly" (Data.clt) -# 5872 "parser_cocci_menhir.ml" +# 5928 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_const_vol = -# 894 "parser_cocci_menhir.mly" +# 874 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Volatile _1 ) -# 5879 "parser_cocci_menhir.ml" +# 5935 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5890,9 +5946,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_continue_struct_decl_list = -# 643 "parser_cocci_menhir.mly" +# 623 "parser_cocci_menhir.mly" ( [] ) -# 5896 "parser_cocci_menhir.ml" +# 5952 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5920,9 +5976,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_continue_struct_decl_list = -# 644 "parser_cocci_menhir.mly" +# 624 "parser_cocci_menhir.mly" ( _1@_2 ) -# 5926 "parser_cocci_menhir.ml" +# 5982 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5944,9 +6000,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_continue_struct_decl_list = -# 645 "parser_cocci_menhir.mly" +# 625 "parser_cocci_menhir.mly" ( _1 ) -# 5950 "parser_cocci_menhir.ml" +# 6006 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -5976,14 +6032,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 5982 "parser_cocci_menhir.ml" +# 6038 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 5987 "parser_cocci_menhir.ml" +# 6043 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -5993,28 +6049,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 529 "parser_cocci_menhir.mly" +# 509 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 5999 "parser_cocci_menhir.ml" +# 6055 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 6005 "parser_cocci_menhir.ml" +# 6061 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 6012 "parser_cocci_menhir.ml" +# 6068 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 6018 "parser_cocci_menhir.ml" +# 6074 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6044,14 +6100,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 6050 "parser_cocci_menhir.ml" +# 6106 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 6055 "parser_cocci_menhir.ml" +# 6111 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -6061,28 +6117,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 531 "parser_cocci_menhir.mly" +# 511 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 6067 "parser_cocci_menhir.ml" +# 6123 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 6073 "parser_cocci_menhir.ml" +# 6129 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 6080 "parser_cocci_menhir.ml" +# 6136 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 6086 "parser_cocci_menhir.ml" +# 6142 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6112,14 +6168,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 6118 "parser_cocci_menhir.ml" +# 6174 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 6123 "parser_cocci_menhir.ml" +# 6179 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -6129,28 +6185,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 533 "parser_cocci_menhir.mly" +# 513 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 6135 "parser_cocci_menhir.ml" +# 6191 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 6141 "parser_cocci_menhir.ml" +# 6197 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 6148 "parser_cocci_menhir.ml" +# 6204 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 6154 "parser_cocci_menhir.ml" +# 6210 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6180,14 +6236,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 6186 "parser_cocci_menhir.ml" +# 6242 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 6191 "parser_cocci_menhir.ml" +# 6247 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -6197,29 +6253,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 535 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 6204 "parser_cocci_menhir.ml" +# 6260 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 6210 "parser_cocci_menhir.ml" +# 6266 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 6217 "parser_cocci_menhir.ml" +# 6273 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 6223 "parser_cocci_menhir.ml" +# 6279 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6258,19 +6314,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 6264 "parser_cocci_menhir.ml" +# 6320 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 6269 "parser_cocci_menhir.ml" +# 6325 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 6274 "parser_cocci_menhir.ml" +# 6330 "parser_cocci_menhir.ml" ) = Obj.magic r1 in let _startpos = _startpos_r1_ in let _endpos = _endpos_m_ in @@ -6282,33 +6338,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 538 "parser_cocci_menhir.mly" +# 518 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), Ast0.Impure (*will be ignored*))) ) -# 6293 "parser_cocci_menhir.ml" +# 6349 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 6299 "parser_cocci_menhir.ml" +# 6355 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 6306 "parser_cocci_menhir.ml" +# 6362 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 6312 "parser_cocci_menhir.ml" +# 6368 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6338,14 +6394,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 6344 "parser_cocci_menhir.ml" +# 6400 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 6349 "parser_cocci_menhir.ml" +# 6405 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -6355,28 +6411,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 545 "parser_cocci_menhir.mly" +# 525 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) -# 6361 "parser_cocci_menhir.ml" +# 6417 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 6367 "parser_cocci_menhir.ml" +# 6423 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 6374 "parser_cocci_menhir.ml" +# 6430 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 6380 "parser_cocci_menhir.ml" +# 6436 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6411,19 +6467,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 6417 "parser_cocci_menhir.ml" +# 6473 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 6422 "parser_cocci_menhir.ml" +# 6478 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 6427 "parser_cocci_menhir.ml" +# 6483 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -6435,31 +6491,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 547 "parser_cocci_menhir.mly" +# 527 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 6444 "parser_cocci_menhir.ml" +# 6500 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 6450 "parser_cocci_menhir.ml" +# 6506 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 6457 "parser_cocci_menhir.ml" +# 6513 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 6463 "parser_cocci_menhir.ml" +# 6519 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6489,14 +6545,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 6495 "parser_cocci_menhir.ml" +# 6551 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 6500 "parser_cocci_menhir.ml" +# 6556 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -6506,28 +6562,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 529 "parser_cocci_menhir.mly" +# 509 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 6512 "parser_cocci_menhir.ml" +# 6568 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 6518 "parser_cocci_menhir.ml" +# 6574 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 6525 "parser_cocci_menhir.ml" +# 6581 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 6531 "parser_cocci_menhir.ml" +# 6587 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6557,14 +6613,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 6563 "parser_cocci_menhir.ml" +# 6619 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 6568 "parser_cocci_menhir.ml" +# 6624 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -6574,28 +6630,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 531 "parser_cocci_menhir.mly" +# 511 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 6580 "parser_cocci_menhir.ml" +# 6636 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 6586 "parser_cocci_menhir.ml" +# 6642 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 6593 "parser_cocci_menhir.ml" +# 6649 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 6599 "parser_cocci_menhir.ml" +# 6655 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6625,14 +6681,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 6631 "parser_cocci_menhir.ml" +# 6687 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 6636 "parser_cocci_menhir.ml" +# 6692 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -6642,28 +6698,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 533 "parser_cocci_menhir.mly" +# 513 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 6648 "parser_cocci_menhir.ml" +# 6704 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 6654 "parser_cocci_menhir.ml" +# 6710 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 6661 "parser_cocci_menhir.ml" +# 6717 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 6667 "parser_cocci_menhir.ml" +# 6723 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6693,14 +6749,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 6699 "parser_cocci_menhir.ml" +# 6755 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 6704 "parser_cocci_menhir.ml" +# 6760 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -6710,29 +6766,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 535 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 6717 "parser_cocci_menhir.ml" +# 6773 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 6723 "parser_cocci_menhir.ml" +# 6779 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 6730 "parser_cocci_menhir.ml" +# 6786 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 6736 "parser_cocci_menhir.ml" +# 6792 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6771,19 +6827,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 6777 "parser_cocci_menhir.ml" +# 6833 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 6782 "parser_cocci_menhir.ml" +# 6838 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 6787 "parser_cocci_menhir.ml" +# 6843 "parser_cocci_menhir.ml" ) = Obj.magic r1 in let _startpos = _startpos_r1_ in let _endpos = _endpos_m_ in @@ -6795,33 +6851,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 538 "parser_cocci_menhir.mly" +# 518 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), Ast0.Impure (*will be ignored*))) ) -# 6806 "parser_cocci_menhir.ml" +# 6862 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 6812 "parser_cocci_menhir.ml" +# 6868 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 6819 "parser_cocci_menhir.ml" +# 6875 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 6825 "parser_cocci_menhir.ml" +# 6881 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6851,14 +6907,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 6857 "parser_cocci_menhir.ml" +# 6913 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 6862 "parser_cocci_menhir.ml" +# 6918 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -6868,28 +6924,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 545 "parser_cocci_menhir.mly" +# 525 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) -# 6874 "parser_cocci_menhir.ml" +# 6930 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 6880 "parser_cocci_menhir.ml" +# 6936 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 6887 "parser_cocci_menhir.ml" +# 6943 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 6893 "parser_cocci_menhir.ml" +# 6949 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6924,19 +6980,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 6930 "parser_cocci_menhir.ml" +# 6986 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 6935 "parser_cocci_menhir.ml" +# 6991 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 6940 "parser_cocci_menhir.ml" +# 6996 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -6948,31 +7004,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 547 "parser_cocci_menhir.mly" +# 527 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 6957 "parser_cocci_menhir.ml" +# 7013 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 6963 "parser_cocci_menhir.ml" +# 7019 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 6970 "parser_cocci_menhir.ml" +# 7026 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 6976 "parser_cocci_menhir.ml" +# 7032 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -6997,9 +7053,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 7003 "parser_cocci_menhir.ml" +# 7059 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -7008,28 +7064,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 529 "parser_cocci_menhir.mly" +# 509 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 7014 "parser_cocci_menhir.ml" +# 7070 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 7020 "parser_cocci_menhir.ml" +# 7076 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7027 "parser_cocci_menhir.ml" +# 7083 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7033 "parser_cocci_menhir.ml" +# 7089 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7054,9 +7110,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 7060 "parser_cocci_menhir.ml" +# 7116 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -7065,28 +7121,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 531 "parser_cocci_menhir.mly" +# 511 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 7071 "parser_cocci_menhir.ml" +# 7127 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 7077 "parser_cocci_menhir.ml" +# 7133 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7084 "parser_cocci_menhir.ml" +# 7140 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7090 "parser_cocci_menhir.ml" +# 7146 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7111,9 +7167,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 7117 "parser_cocci_menhir.ml" +# 7173 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -7122,28 +7178,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 533 "parser_cocci_menhir.mly" +# 513 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 7128 "parser_cocci_menhir.ml" +# 7184 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 7134 "parser_cocci_menhir.ml" +# 7190 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7141 "parser_cocci_menhir.ml" +# 7197 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7147 "parser_cocci_menhir.ml" +# 7203 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7168,9 +7224,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 7174 "parser_cocci_menhir.ml" +# 7230 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let _startpos = _startpos_p00_ in let _endpos = _endpos_m_ in @@ -7179,29 +7235,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 535 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 7186 "parser_cocci_menhir.ml" +# 7242 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 7192 "parser_cocci_menhir.ml" +# 7248 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7199 "parser_cocci_menhir.ml" +# 7255 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7205 "parser_cocci_menhir.ml" +# 7261 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7235,14 +7291,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 7241 "parser_cocci_menhir.ml" +# 7297 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 7246 "parser_cocci_menhir.ml" +# 7302 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let _startpos = _startpos_r00_ in let _endpos = _endpos_m_ in @@ -7253,33 +7309,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 538 "parser_cocci_menhir.mly" +# 518 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), Ast0.Impure (*will be ignored*))) ) -# 7264 "parser_cocci_menhir.ml" +# 7320 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 7270 "parser_cocci_menhir.ml" +# 7326 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7277 "parser_cocci_menhir.ml" +# 7333 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7283 "parser_cocci_menhir.ml" +# 7339 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7304,9 +7360,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 7310 "parser_cocci_menhir.ml" +# 7366 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -7315,28 +7371,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 545 "parser_cocci_menhir.mly" +# 525 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) -# 7321 "parser_cocci_menhir.ml" +# 7377 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 7327 "parser_cocci_menhir.ml" +# 7383 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7334 "parser_cocci_menhir.ml" +# 7390 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7340 "parser_cocci_menhir.ml" +# 7396 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7366,14 +7422,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 7372 "parser_cocci_menhir.ml" +# 7428 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 7377 "parser_cocci_menhir.ml" +# 7433 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let _startpos = _startpos_ty100_ in let _endpos = _endpos_m_ in @@ -7384,31 +7440,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 547 "parser_cocci_menhir.mly" +# 527 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 7393 "parser_cocci_menhir.ml" +# 7449 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 7399 "parser_cocci_menhir.ml" +# 7455 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7406 "parser_cocci_menhir.ml" +# 7462 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7412 "parser_cocci_menhir.ml" +# 7468 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7433,9 +7489,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 72 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 7439 "parser_cocci_menhir.ml" +# 7495 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -7444,28 +7500,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 555 "parser_cocci_menhir.mly" +# 535 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) ) -# 7450 "parser_cocci_menhir.ml" +# 7506 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 7456 "parser_cocci_menhir.ml" +# 7512 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7463 "parser_cocci_menhir.ml" +# 7519 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7469 "parser_cocci_menhir.ml" +# 7525 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7490,9 +7546,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 7496 "parser_cocci_menhir.ml" +# 7552 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -7501,28 +7557,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 557 "parser_cocci_menhir.mly" +# 537 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) ) -# 7507 "parser_cocci_menhir.ml" +# 7563 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 7513 "parser_cocci_menhir.ml" +# 7569 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7520 "parser_cocci_menhir.ml" +# 7576 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7526 "parser_cocci_menhir.ml" +# 7582 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7547,9 +7603,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 7553 "parser_cocci_menhir.ml" +# 7609 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -7558,28 +7614,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 559 "parser_cocci_menhir.mly" +# 539 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) ) -# 7564 "parser_cocci_menhir.ml" +# 7620 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 7570 "parser_cocci_menhir.ml" +# 7626 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7577 "parser_cocci_menhir.ml" +# 7633 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7583 "parser_cocci_menhir.ml" +# 7639 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7610,9 +7666,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let m : 'tv_list_TMul_ = Obj.magic m in let i00 : 'tv_ident = Obj.magic i00 in let s00 : ( -# 72 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 7616 "parser_cocci_menhir.ml" +# 7672 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let _startpos = _startpos_s00_ in let _endpos = _endpos_m_ in @@ -7623,28 +7679,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 561 "parser_cocci_menhir.mly" +# 541 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)) ) -# 7629 "parser_cocci_menhir.ml" +# 7685 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 7635 "parser_cocci_menhir.ml" +# 7691 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7642 "parser_cocci_menhir.ml" +# 7698 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7648 "parser_cocci_menhir.ml" +# 7704 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7684,28 +7740,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 563 "parser_cocci_menhir.mly" +# 543 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) ) -# 7690 "parser_cocci_menhir.ml" +# 7746 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 7696 "parser_cocci_menhir.ml" +# 7752 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7703 "parser_cocci_menhir.ml" +# 7759 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7709 "parser_cocci_menhir.ml" +# 7765 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7745,15 +7801,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 7751 "parser_cocci_menhir.ml" +# 7807 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 7757 "parser_cocci_menhir.ml" +# 7813 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : 'tv_struct_or_union = Obj.magic s00 in let _startpos = _startpos_s00_ in @@ -7772,36 +7828,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 7776 "parser_cocci_menhir.ml" +# 7832 "parser_cocci_menhir.ml" in -# 566 "parser_cocci_menhir.mly" +# 546 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "structures must be named in the iso file"); Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), P.clt2mcode "{" l, d, P.clt2mcode "}" r)) ) -# 7786 "parser_cocci_menhir.ml" +# 7842 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 7792 "parser_cocci_menhir.ml" +# 7848 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7799 "parser_cocci_menhir.ml" +# 7855 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7805 "parser_cocci_menhir.ml" +# 7861 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7846,15 +7902,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 7852 "parser_cocci_menhir.ml" +# 7908 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 7858 "parser_cocci_menhir.ml" +# 7914 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let x000 : 'tv_ident = Obj.magic x000 in let s00 : 'tv_struct_or_union = Obj.magic s00 in @@ -7877,36 +7933,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 7881 "parser_cocci_menhir.ml" +# 7937 "parser_cocci_menhir.ml" in -# 566 "parser_cocci_menhir.mly" +# 546 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "structures must be named in the iso file"); Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), P.clt2mcode "{" l, d, P.clt2mcode "}" r)) ) -# 7891 "parser_cocci_menhir.ml" +# 7947 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 7897 "parser_cocci_menhir.ml" +# 7953 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7904 "parser_cocci_menhir.ml" +# 7960 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 7910 "parser_cocci_menhir.ml" +# 7966 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -7946,20 +8002,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 7952 "parser_cocci_menhir.ml" +# 8008 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 7958 "parser_cocci_menhir.ml" +# 8014 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 7963 "parser_cocci_menhir.ml" +# 8019 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let _startpos = _startpos_s00_ in let _endpos = _endpos_m_ in @@ -7974,30 +8030,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let l = l0 in let s = s0 in -# 572 "parser_cocci_menhir.mly" +# 552 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = s in let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) ) -# 7982 "parser_cocci_menhir.ml" +# 8038 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 7988 "parser_cocci_menhir.ml" +# 8044 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 7995 "parser_cocci_menhir.ml" +# 8051 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8001 "parser_cocci_menhir.ml" +# 8057 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8022,9 +8078,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 8028 "parser_cocci_menhir.ml" +# 8084 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let _startpos = _startpos_p00_ in let _endpos = _endpos_m_ in @@ -8033,28 +8089,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 576 "parser_cocci_menhir.mly" +# 556 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) ) -# 8039 "parser_cocci_menhir.ml" +# 8095 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 8045 "parser_cocci_menhir.ml" +# 8101 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 8052 "parser_cocci_menhir.ml" +# 8108 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8058 "parser_cocci_menhir.ml" +# 8114 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8089,14 +8145,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 8095 "parser_cocci_menhir.ml" +# 8151 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 8100 "parser_cocci_menhir.ml" +# 8156 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -8107,15 +8163,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 529 "parser_cocci_menhir.mly" +# 509 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 8113 "parser_cocci_menhir.ml" +# 8169 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 8119 "parser_cocci_menhir.ml" +# 8175 "parser_cocci_menhir.ml" in let cv = @@ -8123,13 +8179,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 8127 "parser_cocci_menhir.ml" +# 8183 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8133 "parser_cocci_menhir.ml" +# 8189 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8164,14 +8220,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 8170 "parser_cocci_menhir.ml" +# 8226 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 8175 "parser_cocci_menhir.ml" +# 8231 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -8182,15 +8238,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 531 "parser_cocci_menhir.mly" +# 511 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 8188 "parser_cocci_menhir.ml" +# 8244 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 8194 "parser_cocci_menhir.ml" +# 8250 "parser_cocci_menhir.ml" in let cv = @@ -8198,13 +8254,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 8202 "parser_cocci_menhir.ml" +# 8258 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8208 "parser_cocci_menhir.ml" +# 8264 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8239,14 +8295,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 8245 "parser_cocci_menhir.ml" +# 8301 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 8250 "parser_cocci_menhir.ml" +# 8306 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -8257,15 +8313,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 533 "parser_cocci_menhir.mly" +# 513 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 8263 "parser_cocci_menhir.ml" +# 8319 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 8269 "parser_cocci_menhir.ml" +# 8325 "parser_cocci_menhir.ml" in let cv = @@ -8273,13 +8329,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 8277 "parser_cocci_menhir.ml" +# 8333 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8283 "parser_cocci_menhir.ml" +# 8339 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8314,14 +8370,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 8320 "parser_cocci_menhir.ml" +# 8376 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 8325 "parser_cocci_menhir.ml" +# 8381 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -8332,16 +8388,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 535 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 8339 "parser_cocci_menhir.ml" +# 8395 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 8345 "parser_cocci_menhir.ml" +# 8401 "parser_cocci_menhir.ml" in let cv = @@ -8349,13 +8405,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 8353 "parser_cocci_menhir.ml" +# 8409 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8359 "parser_cocci_menhir.ml" +# 8415 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8399,19 +8455,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 8405 "parser_cocci_menhir.ml" +# 8461 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 8410 "parser_cocci_menhir.ml" +# 8466 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 8415 "parser_cocci_menhir.ml" +# 8471 "parser_cocci_menhir.ml" ) = Obj.magic r1 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -8424,20 +8480,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 538 "parser_cocci_menhir.mly" +# 518 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), Ast0.Impure (*will be ignored*))) ) -# 8435 "parser_cocci_menhir.ml" +# 8491 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 8441 "parser_cocci_menhir.ml" +# 8497 "parser_cocci_menhir.ml" in let cv = @@ -8445,13 +8501,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 8449 "parser_cocci_menhir.ml" +# 8505 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8455 "parser_cocci_menhir.ml" +# 8511 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8486,14 +8542,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 8492 "parser_cocci_menhir.ml" +# 8548 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 8497 "parser_cocci_menhir.ml" +# 8553 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -8504,15 +8560,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 545 "parser_cocci_menhir.mly" +# 525 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) -# 8510 "parser_cocci_menhir.ml" +# 8566 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 8516 "parser_cocci_menhir.ml" +# 8572 "parser_cocci_menhir.ml" in let cv = @@ -8520,13 +8576,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 8524 "parser_cocci_menhir.ml" +# 8580 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8530 "parser_cocci_menhir.ml" +# 8586 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8566,19 +8622,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 8572 "parser_cocci_menhir.ml" +# 8628 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 8577 "parser_cocci_menhir.ml" +# 8633 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 8582 "parser_cocci_menhir.ml" +# 8638 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -8591,18 +8647,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 547 "parser_cocci_menhir.mly" +# 527 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 8600 "parser_cocci_menhir.ml" +# 8656 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 8606 "parser_cocci_menhir.ml" +# 8662 "parser_cocci_menhir.ml" in let cv = @@ -8610,13 +8666,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 8614 "parser_cocci_menhir.ml" +# 8670 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8620 "parser_cocci_menhir.ml" +# 8676 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8651,14 +8707,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 8657 "parser_cocci_menhir.ml" +# 8713 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 8662 "parser_cocci_menhir.ml" +# 8718 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -8669,15 +8725,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 529 "parser_cocci_menhir.mly" +# 509 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 8675 "parser_cocci_menhir.ml" +# 8731 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 8681 "parser_cocci_menhir.ml" +# 8737 "parser_cocci_menhir.ml" in let cv = @@ -8685,13 +8741,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 8689 "parser_cocci_menhir.ml" +# 8745 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8695 "parser_cocci_menhir.ml" +# 8751 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8726,14 +8782,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 8732 "parser_cocci_menhir.ml" +# 8788 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 8737 "parser_cocci_menhir.ml" +# 8793 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -8744,15 +8800,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 531 "parser_cocci_menhir.mly" +# 511 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 8750 "parser_cocci_menhir.ml" +# 8806 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 8756 "parser_cocci_menhir.ml" +# 8812 "parser_cocci_menhir.ml" in let cv = @@ -8760,13 +8816,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 8764 "parser_cocci_menhir.ml" +# 8820 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8770 "parser_cocci_menhir.ml" +# 8826 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8801,14 +8857,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 8807 "parser_cocci_menhir.ml" +# 8863 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 8812 "parser_cocci_menhir.ml" +# 8868 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -8819,15 +8875,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 533 "parser_cocci_menhir.mly" +# 513 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 8825 "parser_cocci_menhir.ml" +# 8881 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 8831 "parser_cocci_menhir.ml" +# 8887 "parser_cocci_menhir.ml" in let cv = @@ -8835,13 +8891,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 8839 "parser_cocci_menhir.ml" +# 8895 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8845 "parser_cocci_menhir.ml" +# 8901 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8876,14 +8932,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 8882 "parser_cocci_menhir.ml" +# 8938 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 8887 "parser_cocci_menhir.ml" +# 8943 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -8894,16 +8950,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 535 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 8901 "parser_cocci_menhir.ml" +# 8957 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 8907 "parser_cocci_menhir.ml" +# 8963 "parser_cocci_menhir.ml" in let cv = @@ -8911,13 +8967,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 8915 "parser_cocci_menhir.ml" +# 8971 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 8921 "parser_cocci_menhir.ml" +# 8977 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -8961,19 +9017,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 8967 "parser_cocci_menhir.ml" +# 9023 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 8972 "parser_cocci_menhir.ml" +# 9028 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 8977 "parser_cocci_menhir.ml" +# 9033 "parser_cocci_menhir.ml" ) = Obj.magic r1 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -8986,20 +9042,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 538 "parser_cocci_menhir.mly" +# 518 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), Ast0.Impure (*will be ignored*))) ) -# 8997 "parser_cocci_menhir.ml" +# 9053 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 9003 "parser_cocci_menhir.ml" +# 9059 "parser_cocci_menhir.ml" in let cv = @@ -9007,13 +9063,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 9011 "parser_cocci_menhir.ml" +# 9067 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9017 "parser_cocci_menhir.ml" +# 9073 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9048,14 +9104,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 9054 "parser_cocci_menhir.ml" +# 9110 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 9059 "parser_cocci_menhir.ml" +# 9115 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -9066,15 +9122,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 545 "parser_cocci_menhir.mly" +# 525 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) -# 9072 "parser_cocci_menhir.ml" +# 9128 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 9078 "parser_cocci_menhir.ml" +# 9134 "parser_cocci_menhir.ml" in let cv = @@ -9082,13 +9138,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 9086 "parser_cocci_menhir.ml" +# 9142 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9092 "parser_cocci_menhir.ml" +# 9148 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9128,19 +9184,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 9134 "parser_cocci_menhir.ml" +# 9190 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 9139 "parser_cocci_menhir.ml" +# 9195 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 9144 "parser_cocci_menhir.ml" +# 9200 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -9153,18 +9209,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 547 "parser_cocci_menhir.mly" +# 527 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 9162 "parser_cocci_menhir.ml" +# 9218 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 9168 "parser_cocci_menhir.ml" +# 9224 "parser_cocci_menhir.ml" in let cv = @@ -9172,13 +9228,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 9176 "parser_cocci_menhir.ml" +# 9232 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9182 "parser_cocci_menhir.ml" +# 9238 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9208,9 +9264,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 9214 "parser_cocci_menhir.ml" +# 9270 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -9220,15 +9276,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 529 "parser_cocci_menhir.mly" +# 509 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 9226 "parser_cocci_menhir.ml" +# 9282 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 9232 "parser_cocci_menhir.ml" +# 9288 "parser_cocci_menhir.ml" in let cv = @@ -9236,13 +9292,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 9240 "parser_cocci_menhir.ml" +# 9296 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9246 "parser_cocci_menhir.ml" +# 9302 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9272,9 +9328,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 9278 "parser_cocci_menhir.ml" +# 9334 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -9284,15 +9340,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 531 "parser_cocci_menhir.mly" +# 511 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 9290 "parser_cocci_menhir.ml" +# 9346 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 9296 "parser_cocci_menhir.ml" +# 9352 "parser_cocci_menhir.ml" in let cv = @@ -9300,13 +9356,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 9304 "parser_cocci_menhir.ml" +# 9360 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9310 "parser_cocci_menhir.ml" +# 9366 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9336,9 +9392,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 9342 "parser_cocci_menhir.ml" +# 9398 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -9348,15 +9404,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 533 "parser_cocci_menhir.mly" +# 513 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 9354 "parser_cocci_menhir.ml" +# 9410 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 9360 "parser_cocci_menhir.ml" +# 9416 "parser_cocci_menhir.ml" in let cv = @@ -9364,13 +9420,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 9368 "parser_cocci_menhir.ml" +# 9424 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9374 "parser_cocci_menhir.ml" +# 9430 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9400,9 +9456,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 9406 "parser_cocci_menhir.ml" +# 9462 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -9412,16 +9468,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 535 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 9419 "parser_cocci_menhir.ml" +# 9475 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 9425 "parser_cocci_menhir.ml" +# 9481 "parser_cocci_menhir.ml" in let cv = @@ -9429,13 +9485,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 9433 "parser_cocci_menhir.ml" +# 9489 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9439 "parser_cocci_menhir.ml" +# 9495 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9474,14 +9530,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 9480 "parser_cocci_menhir.ml" +# 9536 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 9485 "parser_cocci_menhir.ml" +# 9541 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -9493,20 +9549,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 538 "parser_cocci_menhir.mly" +# 518 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), Ast0.Impure (*will be ignored*))) ) -# 9504 "parser_cocci_menhir.ml" +# 9560 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 9510 "parser_cocci_menhir.ml" +# 9566 "parser_cocci_menhir.ml" in let cv = @@ -9514,13 +9570,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 9518 "parser_cocci_menhir.ml" +# 9574 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9524 "parser_cocci_menhir.ml" +# 9580 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9550,9 +9606,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 9556 "parser_cocci_menhir.ml" +# 9612 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -9562,15 +9618,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 545 "parser_cocci_menhir.mly" +# 525 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) -# 9568 "parser_cocci_menhir.ml" +# 9624 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 9574 "parser_cocci_menhir.ml" +# 9630 "parser_cocci_menhir.ml" in let cv = @@ -9578,13 +9634,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 9582 "parser_cocci_menhir.ml" +# 9638 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9588 "parser_cocci_menhir.ml" +# 9644 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9619,14 +9675,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 9625 "parser_cocci_menhir.ml" +# 9681 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 9630 "parser_cocci_menhir.ml" +# 9686 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -9638,18 +9694,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 547 "parser_cocci_menhir.mly" +# 527 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 9647 "parser_cocci_menhir.ml" +# 9703 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 9653 "parser_cocci_menhir.ml" +# 9709 "parser_cocci_menhir.ml" in let cv = @@ -9657,13 +9713,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 9661 "parser_cocci_menhir.ml" +# 9717 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9667 "parser_cocci_menhir.ml" +# 9723 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9693,9 +9749,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 72 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 9699 "parser_cocci_menhir.ml" +# 9755 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -9705,15 +9761,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 555 "parser_cocci_menhir.mly" +# 535 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) ) -# 9711 "parser_cocci_menhir.ml" +# 9767 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 9717 "parser_cocci_menhir.ml" +# 9773 "parser_cocci_menhir.ml" in let cv = @@ -9721,13 +9777,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 9725 "parser_cocci_menhir.ml" +# 9781 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9731 "parser_cocci_menhir.ml" +# 9787 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9757,9 +9813,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 9763 "parser_cocci_menhir.ml" +# 9819 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -9769,15 +9825,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 557 "parser_cocci_menhir.mly" +# 537 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) ) -# 9775 "parser_cocci_menhir.ml" +# 9831 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 9781 "parser_cocci_menhir.ml" +# 9837 "parser_cocci_menhir.ml" in let cv = @@ -9785,13 +9841,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 9789 "parser_cocci_menhir.ml" +# 9845 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9795 "parser_cocci_menhir.ml" +# 9851 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9821,9 +9877,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 9827 "parser_cocci_menhir.ml" +# 9883 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -9833,15 +9889,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 559 "parser_cocci_menhir.mly" +# 539 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) ) -# 9839 "parser_cocci_menhir.ml" +# 9895 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 9845 "parser_cocci_menhir.ml" +# 9901 "parser_cocci_menhir.ml" in let cv = @@ -9849,13 +9905,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 9853 "parser_cocci_menhir.ml" +# 9909 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9859 "parser_cocci_menhir.ml" +# 9915 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9891,9 +9947,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let m : 'tv_list_TMul_ = Obj.magic m in let i00 : 'tv_ident = Obj.magic i00 in let s00 : ( -# 72 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 9897 "parser_cocci_menhir.ml" +# 9953 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -9905,15 +9961,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 561 "parser_cocci_menhir.mly" +# 541 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)) ) -# 9911 "parser_cocci_menhir.ml" +# 9967 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 9917 "parser_cocci_menhir.ml" +# 9973 "parser_cocci_menhir.ml" in let cv = @@ -9921,13 +9977,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 9925 "parser_cocci_menhir.ml" +# 9981 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9931 "parser_cocci_menhir.ml" +# 9987 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -9973,15 +10029,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 563 "parser_cocci_menhir.mly" +# 543 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) ) -# 9979 "parser_cocci_menhir.ml" +# 10035 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 9985 "parser_cocci_menhir.ml" +# 10041 "parser_cocci_menhir.ml" in let cv = @@ -9989,13 +10045,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 9993 "parser_cocci_menhir.ml" +# 10049 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 9999 "parser_cocci_menhir.ml" +# 10055 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10040,15 +10096,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 10046 "parser_cocci_menhir.ml" +# 10102 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 10052 "parser_cocci_menhir.ml" +# 10108 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : 'tv_struct_or_union = Obj.magic s00 in let x0 : 'tv_const_vol = Obj.magic x0 in @@ -10068,23 +10124,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 10072 "parser_cocci_menhir.ml" +# 10128 "parser_cocci_menhir.ml" in -# 566 "parser_cocci_menhir.mly" +# 546 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "structures must be named in the iso file"); Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), P.clt2mcode "{" l, d, P.clt2mcode "}" r)) ) -# 10082 "parser_cocci_menhir.ml" +# 10138 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 10088 "parser_cocci_menhir.ml" +# 10144 "parser_cocci_menhir.ml" in let cv = @@ -10092,13 +10148,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 10096 "parser_cocci_menhir.ml" +# 10152 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 10102 "parser_cocci_menhir.ml" +# 10158 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10148,15 +10204,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 10154 "parser_cocci_menhir.ml" +# 10210 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 10160 "parser_cocci_menhir.ml" +# 10216 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let x000 : 'tv_ident = Obj.magic x000 in let s00 : 'tv_struct_or_union = Obj.magic s00 in @@ -10180,23 +10236,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 10184 "parser_cocci_menhir.ml" +# 10240 "parser_cocci_menhir.ml" in -# 566 "parser_cocci_menhir.mly" +# 546 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "structures must be named in the iso file"); Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), P.clt2mcode "{" l, d, P.clt2mcode "}" r)) ) -# 10194 "parser_cocci_menhir.ml" +# 10250 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 10200 "parser_cocci_menhir.ml" +# 10256 "parser_cocci_menhir.ml" in let cv = @@ -10204,13 +10260,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 10208 "parser_cocci_menhir.ml" +# 10264 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 10214 "parser_cocci_menhir.ml" +# 10270 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10255,20 +10311,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 10261 "parser_cocci_menhir.ml" +# 10317 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 10267 "parser_cocci_menhir.ml" +# 10323 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 10272 "parser_cocci_menhir.ml" +# 10328 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -10284,17 +10340,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let l = l0 in let s = s0 in -# 572 "parser_cocci_menhir.mly" +# 552 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = s in let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) ) -# 10292 "parser_cocci_menhir.ml" +# 10348 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 10298 "parser_cocci_menhir.ml" +# 10354 "parser_cocci_menhir.ml" in let cv = @@ -10302,13 +10358,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 10306 "parser_cocci_menhir.ml" +# 10362 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 10312 "parser_cocci_menhir.ml" +# 10368 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10338,9 +10394,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 10344 "parser_cocci_menhir.ml" +# 10400 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -10350,15 +10406,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 576 "parser_cocci_menhir.mly" +# 556 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) ) -# 10356 "parser_cocci_menhir.ml" +# 10412 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 10362 "parser_cocci_menhir.ml" +# 10418 "parser_cocci_menhir.ml" in let cv = @@ -10366,13 +10422,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 10370 "parser_cocci_menhir.ml" +# 10426 "parser_cocci_menhir.ml" in -# 589 "parser_cocci_menhir.mly" +# 569 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 10376 "parser_cocci_menhir.ml" +# 10432 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10391,16 +10447,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let r : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 10397 "parser_cocci_menhir.ml" +# 10453 "parser_cocci_menhir.ml" ) = Obj.magic r in let _startpos = _startpos_r_ in let _endpos = _endpos_r_ in let _v : 'tv_ctype = -# 591 "parser_cocci_menhir.mly" +# 571 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,None)) ) -# 10404 "parser_cocci_menhir.ml" +# 10460 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10419,16 +10475,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let r : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 10425 "parser_cocci_menhir.ml" +# 10481 "parser_cocci_menhir.ml" ) = Obj.magic r in let _startpos = _startpos_r_ in let _endpos = _endpos_r_ in let _v : 'tv_ctype = -# 593 "parser_cocci_menhir.mly" +# 573 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,None)) ) -# 10432 "parser_cocci_menhir.ml" +# 10488 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10457,24 +10513,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 10463 "parser_cocci_menhir.ml" +# 10519 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_midzero_list_ctype_ctype_ = Obj.magic t in let lp : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 10469 "parser_cocci_menhir.ml" +# 10525 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_rp_ in let _v : 'tv_ctype = -# 595 "parser_cocci_menhir.mly" +# 575 "parser_cocci_menhir.mly" ( let (mids,code) = t in Ast0.wrap (Ast0.DisjType(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) ) -# 10478 "parser_cocci_menhir.ml" +# 10534 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10502,7 +10558,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_d_ident = -# 1111 "parser_cocci_menhir.mly" +# 1091 "parser_cocci_menhir.mly" ( (_1, function t -> List.fold_right @@ -10511,7 +10567,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct Ast0.wrap (Ast0.Array(rest,P.clt2mcode "[" l,i,P.clt2mcode "]" r))) _2 t) ) -# 10515 "parser_cocci_menhir.ml" +# 10571 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10539,9 +10595,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos_i_ in let _v : 'tv_decl = -# 867 "parser_cocci_menhir.mly" +# 847 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Param(t, Some i)) ) -# 10545 "parser_cocci_menhir.ml" +# 10601 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10563,9 +10619,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos_t_ in let _v : 'tv_decl = -# 868 "parser_cocci_menhir.mly" +# 848 "parser_cocci_menhir.mly" ( (*verify in FunDecl*) Ast0.wrap(Ast0.Param(t, None)) ) -# 10569 "parser_cocci_menhir.ml" +# 10625 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10619,44 +10675,44 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp1 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 10625 "parser_cocci_menhir.ml" +# 10681 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in let lp1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 10631 "parser_cocci_menhir.ml" +# 10687 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let rp : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 10636 "parser_cocci_menhir.ml" +# 10692 "parser_cocci_menhir.ml" ) = Obj.magic rp in let i : 'tv_ident = Obj.magic i in let s : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) -# 10642 "parser_cocci_menhir.ml" +# 10698 "parser_cocci_menhir.ml" ) = Obj.magic s in let lp : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 10647 "parser_cocci_menhir.ml" +# 10703 "parser_cocci_menhir.ml" ) = Obj.magic lp in let t : 'tv_ctype = Obj.magic t in let _startpos = _startpos_t_ in let _endpos = _endpos_rp1_ in let _v : 'tv_decl = -# 871 "parser_cocci_menhir.mly" +# 851 "parser_cocci_menhir.mly" ( let fnptr = Ast0.wrap (Ast0.FunctionPointer (t,P.clt2mcode "(" lp,P.clt2mcode "*" s,P.clt2mcode ")" rp, P.clt2mcode "(" lp1,d,P.clt2mcode ")" rp1)) in Ast0.wrap(Ast0.Param(fnptr, Some i)) ) -# 10660 "parser_cocci_menhir.ml" +# 10716 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10675,17 +10731,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 10681 "parser_cocci_menhir.ml" +# 10737 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl = -# 878 "parser_cocci_menhir.mly" +# 858 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = _1 in Ast0.wrap(Ast0.MetaParam(P.clt2mcode nm clt,pure)) ) -# 10689 "parser_cocci_menhir.ml" +# 10745 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10704,16 +10760,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 10710 "parser_cocci_menhir.ml" +# 10766 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_ident = -# 1696 "parser_cocci_menhir.mly" +# 1680 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) -# 10717 "parser_cocci_menhir.ml" +# 10773 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10732,17 +10788,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 85 "parser_cocci_menhir.mly" +# 65 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 10738 "parser_cocci_menhir.ml" +# 10794 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_ident = -# 1698 "parser_cocci_menhir.mly" +# 1682 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) ) -# 10746 "parser_cocci_menhir.ml" +# 10802 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10757,9 +10813,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_decl_list_decl_ = -# 1718 "parser_cocci_menhir.mly" +# 1702 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS([])) ) -# 10763 "parser_cocci_menhir.ml" +# 10819 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10781,13 +10837,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_list_decl_ = -# 1720 "parser_cocci_menhir.mly" +# 1704 "parser_cocci_menhir.mly" (let circle x = match Ast0.unwrap x with Ast0.Pcircles(_) -> true | _ -> false in if List.exists circle _1 then Ast0.wrap(Ast0.CIRCLES(_1)) else Ast0.wrap(Ast0.DOTS(_1)) ) -# 10791 "parser_cocci_menhir.ml" +# 10847 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10802,9 +10858,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_decl_list_name_opt_decl_ = -# 1718 "parser_cocci_menhir.mly" +# 1702 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS([])) ) -# 10808 "parser_cocci_menhir.ml" +# 10864 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10826,13 +10882,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_list_name_opt_decl_ = -# 1720 "parser_cocci_menhir.mly" +# 1704 "parser_cocci_menhir.mly" (let circle x = match Ast0.unwrap x with Ast0.Pcircles(_) -> true | _ -> false in if List.exists circle _1 then Ast0.wrap(Ast0.CIRCLES(_1)) else Ast0.wrap(Ast0.DOTS(_1)) ) -# 10836 "parser_cocci_menhir.ml" +# 10892 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10854,9 +10910,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_list_start_decl_ = -# 1727 "parser_cocci_menhir.mly" +# 1711 "parser_cocci_menhir.mly" ( [_1] ) -# 10860 "parser_cocci_menhir.ml" +# 10916 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10886,17 +10942,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_decl_list_start_decl_ = Obj.magic _3 in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 10892 "parser_cocci_menhir.ml" +# 10948 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_one_dec_decl_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_decl_list_start_decl_ = -# 1729 "parser_cocci_menhir.mly" +# 1713 "parser_cocci_menhir.mly" ( _1::Ast0.wrap(Ast0.PComma(P.clt2mcode "," _2))::_3 ) -# 10900 "parser_cocci_menhir.ml" +# 10956 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10921,17 +10977,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_list_comma_decls_TEllipsis_decl__ = Obj.magic _2 in let _1 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 10927 "parser_cocci_menhir.ml" +# 10983 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_decl_list_start_decl_ = -# 1731 "parser_cocci_menhir.mly" +# 1715 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Pdots(P.clt2mcode "..." _1)):: (List.concat(List.map (function x -> x (P.mkpdots "...")) _2)) ) -# 10935 "parser_cocci_menhir.ml" +# 10991 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10953,9 +11009,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_list_start_name_opt_decl_ = -# 1727 "parser_cocci_menhir.mly" +# 1711 "parser_cocci_menhir.mly" ( [_1] ) -# 10959 "parser_cocci_menhir.ml" +# 11015 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -10985,17 +11041,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_decl_list_start_name_opt_decl_ = Obj.magic _3 in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 10991 "parser_cocci_menhir.ml" +# 11047 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_one_dec_name_opt_decl_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_decl_list_start_name_opt_decl_ = -# 1729 "parser_cocci_menhir.mly" +# 1713 "parser_cocci_menhir.mly" ( _1::Ast0.wrap(Ast0.PComma(P.clt2mcode "," _2))::_3 ) -# 10999 "parser_cocci_menhir.ml" +# 11055 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11020,17 +11076,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_list_comma_decls_TEllipsis_name_opt_decl__ = Obj.magic _2 in let _1 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 11026 "parser_cocci_menhir.ml" +# 11082 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_decl_list_start_name_opt_decl_ = -# 1731 "parser_cocci_menhir.mly" +# 1715 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Pdots(P.clt2mcode "..." _1)):: (List.concat(List.map (function x -> x (P.mkpdots "...")) _2)) ) -# 11034 "parser_cocci_menhir.ml" +# 11090 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11049,17 +11105,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 11055 "parser_cocci_menhir.ml" +# 11111 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_statement = -# 1189 "parser_cocci_menhir.mly" +# 1173 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = _1 in [Ast0.wrap(Ast0.MetaStmt(P.clt2mcode nm clt,pure))] ) -# 11063 "parser_cocci_menhir.ml" +# 11119 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11081,13 +11137,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_statement = -# 1192 "parser_cocci_menhir.mly" +# 1176 "parser_cocci_menhir.mly" ( List.map (function x -> Ast0.wrap (Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),x))) _1 ) -# 11091 "parser_cocci_menhir.ml" +# 11147 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11109,9 +11165,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_statement = -# 1197 "parser_cocci_menhir.mly" +# 1181 "parser_cocci_menhir.mly" ( [_1] ) -# 11115 "parser_cocci_menhir.ml" +# 11171 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11140,20 +11196,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 11146 "parser_cocci_menhir.ml" +# 11202 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let t : 'tv_midzero_list_fun_start_fun_start_ = Obj.magic t in let _1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 11152 "parser_cocci_menhir.ml" +# 11208 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_decl_statement = -# 1206 "parser_cocci_menhir.mly" +# 1190 "parser_cocci_menhir.mly" ( let (mids,code) = t in if List.for_all (function x -> @@ -11163,7 +11219,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct else [Ast0.wrap(Ast0.Disj(P.clt2mcode "(" _1, code, mids, P.clt2mcode ")" _3))] ) -# 11167 "parser_cocci_menhir.ml" +# 11223 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11182,17 +11238,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 11188 "parser_cocci_menhir.ml" +# 11244 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_statement_expr = -# 1219 "parser_cocci_menhir.mly" +# 1203 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = _1 in [Ast0.wrap(Ast0.MetaStmt(P.clt2mcode nm clt,pure))] ) -# 11196 "parser_cocci_menhir.ml" +# 11252 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11214,13 +11270,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_statement_expr = -# 1222 "parser_cocci_menhir.mly" +# 1206 "parser_cocci_menhir.mly" ( List.map (function x -> Ast0.wrap (Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),x))) _1 ) -# 11224 "parser_cocci_menhir.ml" +# 11280 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11242,9 +11298,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_decl_statement_expr = -# 1227 "parser_cocci_menhir.mly" +# 1211 "parser_cocci_menhir.mly" ( [_1] ) -# 11248 "parser_cocci_menhir.ml" +# 11304 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11273,20 +11329,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 11279 "parser_cocci_menhir.ml" +# 11335 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let t : 'tv_midzero_list_fun_after_stm_fun_after_dots_or_ = Obj.magic t in let _1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 11285 "parser_cocci_menhir.ml" +# 11341 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_decl_statement_expr = -# 1236 "parser_cocci_menhir.mly" +# 1220 "parser_cocci_menhir.mly" ( let (mids,code) = t in if List.for_all (function [] -> true | _ -> false) code then [] @@ -11295,7 +11351,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct List.map (function x -> Ast0.wrap(Ast0.DOTS x)) code in [Ast0.wrap(Ast0.Disj(P.clt2mcode "(" _1, dot_code, mids, P.clt2mcode ")" _3))] ) -# 11299 "parser_cocci_menhir.ml" +# 11355 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11319,17 +11375,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 11325 "parser_cocci_menhir.ml" +# 11381 "parser_cocci_menhir.ml" ) = Obj.magic pv in let t : 'tv_ctype = Obj.magic t in let _startpos = _startpos_t_ in let _endpos = _endpos_pv_ in let _v : 'tv_decl_var = -# 999 "parser_cocci_menhir.mly" +# 979 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.TyDecl(t,P.clt2mcode ";" pv))] ) -# 11333 "parser_cocci_menhir.ml" +# 11389 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11358,9 +11414,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 11364 "parser_cocci_menhir.ml" +# 11420 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_comma_list_d_ident_ = Obj.magic d in let t : 'tv_ctype = Obj.magic t in @@ -11370,16 +11426,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 11374 "parser_cocci_menhir.ml" +# 11430 "parser_cocci_menhir.ml" in -# 1001 "parser_cocci_menhir.mly" +# 981 "parser_cocci_menhir.mly" ( List.map (function (id,fn) -> Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))) d ) -# 11383 "parser_cocci_menhir.ml" +# 11439 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11413,9 +11469,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 11419 "parser_cocci_menhir.ml" +# 11475 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_comma_list_d_ident_ = Obj.magic d in let t : 'tv_ctype = Obj.magic t in @@ -11427,16 +11483,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 11431 "parser_cocci_menhir.ml" +# 11487 "parser_cocci_menhir.ml" in -# 1001 "parser_cocci_menhir.mly" +# 981 "parser_cocci_menhir.mly" ( List.map (function (id,fn) -> Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))) d ) -# 11440 "parser_cocci_menhir.ml" +# 11496 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11458,9 +11514,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_f_ in let _v : 'tv_decl_var = -# 1005 "parser_cocci_menhir.mly" +# 985 "parser_cocci_menhir.mly" ( [f] ) -# 11464 "parser_cocci_menhir.ml" +# 11520 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11499,15 +11555,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 11505 "parser_cocci_menhir.ml" +# 11561 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 11511 "parser_cocci_menhir.ml" +# 11567 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let t : 'tv_ctype = Obj.magic t in @@ -11517,14 +11573,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 11521 "parser_cocci_menhir.ml" +# 11577 "parser_cocci_menhir.ml" in -# 1007 "parser_cocci_menhir.mly" +# 987 "parser_cocci_menhir.mly" (let (id,fn) = d in [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))]) -# 11528 "parser_cocci_menhir.ml" +# 11584 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11568,15 +11624,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 11574 "parser_cocci_menhir.ml" +# 11630 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 11580 "parser_cocci_menhir.ml" +# 11636 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let t : 'tv_ctype = Obj.magic t in @@ -11588,14 +11644,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 11592 "parser_cocci_menhir.ml" +# 11648 "parser_cocci_menhir.ml" in -# 1007 "parser_cocci_menhir.mly" +# 987 "parser_cocci_menhir.mly" (let (id,fn) = d in [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))]) -# 11599 "parser_cocci_menhir.ml" +# 11655 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11624,9 +11680,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 11630 "parser_cocci_menhir.ml" +# 11686 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_comma_list_d_ident_ = Obj.magic d in let i : 'tv_pure_ident = Obj.magic i in @@ -11636,25 +11692,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 11640 "parser_cocci_menhir.ml" +# 11696 "parser_cocci_menhir.ml" in let s = # 39 "standard.mly" ( None ) -# 11647 "parser_cocci_menhir.ml" +# 11703 "parser_cocci_menhir.ml" in -# 1012 "parser_cocci_menhir.mly" +# 992 "parser_cocci_menhir.mly" ( List.map (function (id,fn) -> let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv))) d ) -# 11658 "parser_cocci_menhir.ml" +# 11714 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11688,9 +11744,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 11694 "parser_cocci_menhir.ml" +# 11750 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_comma_list_d_ident_ = Obj.magic d in let i : 'tv_pure_ident = Obj.magic i in @@ -11702,25 +11758,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 11706 "parser_cocci_menhir.ml" +# 11762 "parser_cocci_menhir.ml" in let s = # 39 "standard.mly" ( None ) -# 11713 "parser_cocci_menhir.ml" +# 11769 "parser_cocci_menhir.ml" in -# 1012 "parser_cocci_menhir.mly" +# 992 "parser_cocci_menhir.mly" ( List.map (function (id,fn) -> let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv))) d ) -# 11724 "parser_cocci_menhir.ml" +# 11780 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11754,9 +11810,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 11760 "parser_cocci_menhir.ml" +# 11816 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_comma_list_d_ident_ = Obj.magic d in let i : 'tv_pure_ident = Obj.magic i in @@ -11767,7 +11823,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 11771 "parser_cocci_menhir.ml" +# 11827 "parser_cocci_menhir.ml" in let s = @@ -11775,18 +11831,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 11779 "parser_cocci_menhir.ml" +# 11835 "parser_cocci_menhir.ml" in -# 1012 "parser_cocci_menhir.mly" +# 992 "parser_cocci_menhir.mly" ( List.map (function (id,fn) -> let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv))) d ) -# 11790 "parser_cocci_menhir.ml" +# 11846 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11825,9 +11881,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 11831 "parser_cocci_menhir.ml" +# 11887 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_comma_list_d_ident_ = Obj.magic d in let i : 'tv_pure_ident = Obj.magic i in @@ -11840,7 +11896,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 11844 "parser_cocci_menhir.ml" +# 11900 "parser_cocci_menhir.ml" in let s = @@ -11848,18 +11904,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 11852 "parser_cocci_menhir.ml" +# 11908 "parser_cocci_menhir.ml" in -# 1012 "parser_cocci_menhir.mly" +# 992 "parser_cocci_menhir.mly" ( List.map (function (id,fn) -> let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv))) d ) -# 11863 "parser_cocci_menhir.ml" +# 11919 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11898,15 +11954,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 11904 "parser_cocci_menhir.ml" +# 11960 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 11910 "parser_cocci_menhir.ml" +# 11966 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident = Obj.magic i in @@ -11916,24 +11972,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 11920 "parser_cocci_menhir.ml" +# 11976 "parser_cocci_menhir.ml" in let s = # 39 "standard.mly" ( None ) -# 11927 "parser_cocci_menhir.ml" +# 11983 "parser_cocci_menhir.ml" in -# 1020 "parser_cocci_menhir.mly" +# 1000 "parser_cocci_menhir.mly" ( let (id,fn) = d in !Data.add_type_name (P.id2name i); let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, P.clt2mcode ";" pv))] ) -# 11937 "parser_cocci_menhir.ml" +# 11993 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -11977,15 +12033,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 11983 "parser_cocci_menhir.ml" +# 12039 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 11989 "parser_cocci_menhir.ml" +# 12045 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident = Obj.magic i in @@ -11997,24 +12053,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12001 "parser_cocci_menhir.ml" +# 12057 "parser_cocci_menhir.ml" in let s = # 39 "standard.mly" ( None ) -# 12008 "parser_cocci_menhir.ml" +# 12064 "parser_cocci_menhir.ml" in -# 1020 "parser_cocci_menhir.mly" +# 1000 "parser_cocci_menhir.mly" ( let (id,fn) = d in !Data.add_type_name (P.id2name i); let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, P.clt2mcode ";" pv))] ) -# 12018 "parser_cocci_menhir.ml" +# 12074 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12058,15 +12114,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 12064 "parser_cocci_menhir.ml" +# 12120 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 12070 "parser_cocci_menhir.ml" +# 12126 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident = Obj.magic i in @@ -12077,7 +12133,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 12081 "parser_cocci_menhir.ml" +# 12137 "parser_cocci_menhir.ml" in let s = @@ -12085,17 +12141,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12089 "parser_cocci_menhir.ml" +# 12145 "parser_cocci_menhir.ml" in -# 1020 "parser_cocci_menhir.mly" +# 1000 "parser_cocci_menhir.mly" ( let (id,fn) = d in !Data.add_type_name (P.id2name i); let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, P.clt2mcode ";" pv))] ) -# 12099 "parser_cocci_menhir.ml" +# 12155 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12144,15 +12200,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 12150 "parser_cocci_menhir.ml" +# 12206 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 12156 "parser_cocci_menhir.ml" +# 12212 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident = Obj.magic i in @@ -12165,7 +12221,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12169 "parser_cocci_menhir.ml" +# 12225 "parser_cocci_menhir.ml" in let s = @@ -12173,17 +12229,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12177 "parser_cocci_menhir.ml" +# 12233 "parser_cocci_menhir.ml" in -# 1020 "parser_cocci_menhir.mly" +# 1000 "parser_cocci_menhir.mly" ( let (id,fn) = d in !Data.add_type_name (P.id2name i); let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in [Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, P.clt2mcode ";" pv))] ) -# 12187 "parser_cocci_menhir.ml" +# 12243 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12242,36 +12298,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 12248 "parser_cocci_menhir.ml" +# 12304 "parser_cocci_menhir.ml" ) = Obj.magic pv in let rp2 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 12253 "parser_cocci_menhir.ml" +# 12309 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 12259 "parser_cocci_menhir.ml" +# 12315 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 12264 "parser_cocci_menhir.ml" +# 12320 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) -# 12270 "parser_cocci_menhir.ml" +# 12326 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 12275 "parser_cocci_menhir.ml" +# 12331 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let t : 'tv_ctype = Obj.magic t in let _startpos = _startpos_t_ in @@ -12280,11 +12336,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 12284 "parser_cocci_menhir.ml" +# 12340 "parser_cocci_menhir.ml" in -# 1030 "parser_cocci_menhir.mly" +# 1010 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -12292,7 +12348,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in [Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))] ) -# 12296 "parser_cocci_menhir.ml" +# 12352 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12356,36 +12412,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 12362 "parser_cocci_menhir.ml" +# 12418 "parser_cocci_menhir.ml" ) = Obj.magic pv in let rp2 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 12367 "parser_cocci_menhir.ml" +# 12423 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 12373 "parser_cocci_menhir.ml" +# 12429 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 12378 "parser_cocci_menhir.ml" +# 12434 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) -# 12384 "parser_cocci_menhir.ml" +# 12440 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 12389 "parser_cocci_menhir.ml" +# 12445 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let t : 'tv_ctype = Obj.magic t in let x0 : 'tv_storage = Obj.magic x0 in @@ -12396,11 +12452,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12400 "parser_cocci_menhir.ml" +# 12456 "parser_cocci_menhir.ml" in -# 1030 "parser_cocci_menhir.mly" +# 1010 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -12408,7 +12464,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in [Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv))] ) -# 12412 "parser_cocci_menhir.ml" +# 12468 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12447,29 +12503,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _5 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 12453 "parser_cocci_menhir.ml" +# 12509 "parser_cocci_menhir.ml" ) = Obj.magic _5 in let _4 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 12458 "parser_cocci_menhir.ml" +# 12514 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 12464 "parser_cocci_menhir.ml" +# 12520 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_decl_ident = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : 'tv_decl_var = -# 1038 "parser_cocci_menhir.mly" +# 1018 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.MacroDecl(_1,P.clt2mcode "(" _2,_3, P.clt2mcode ")" _4,P.clt2mcode ";" _5))] ) -# 12473 "parser_cocci_menhir.ml" +# 12529 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12538,42 +12594,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 12544 "parser_cocci_menhir.ml" +# 12600 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 12550 "parser_cocci_menhir.ml" +# 12606 "parser_cocci_menhir.ml" ) = Obj.magic q in let rp2 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 12555 "parser_cocci_menhir.ml" +# 12611 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 12561 "parser_cocci_menhir.ml" +# 12617 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 12566 "parser_cocci_menhir.ml" +# 12622 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) -# 12572 "parser_cocci_menhir.ml" +# 12628 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 12577 "parser_cocci_menhir.ml" +# 12633 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let t : 'tv_ctype = Obj.magic t in let _startpos = _startpos_t_ in @@ -12582,11 +12638,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 12586 "parser_cocci_menhir.ml" +# 12642 "parser_cocci_menhir.ml" in -# 1044 "parser_cocci_menhir.mly" +# 1024 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -12594,7 +12650,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))]) -# 12598 "parser_cocci_menhir.ml" +# 12654 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12668,42 +12724,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 12674 "parser_cocci_menhir.ml" +# 12730 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 12680 "parser_cocci_menhir.ml" +# 12736 "parser_cocci_menhir.ml" ) = Obj.magic q in let rp2 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 12685 "parser_cocci_menhir.ml" +# 12741 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 12691 "parser_cocci_menhir.ml" +# 12747 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 12696 "parser_cocci_menhir.ml" +# 12752 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) -# 12702 "parser_cocci_menhir.ml" +# 12758 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 12707 "parser_cocci_menhir.ml" +# 12763 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let t : 'tv_ctype = Obj.magic t in let x0 : 'tv_storage = Obj.magic x0 in @@ -12714,11 +12770,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 12718 "parser_cocci_menhir.ml" +# 12774 "parser_cocci_menhir.ml" in -# 1044 "parser_cocci_menhir.mly" +# 1024 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -12726,7 +12782,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in [Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))]) -# 12730 "parser_cocci_menhir.ml" +# 12786 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12760,27 +12816,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 12766 "parser_cocci_menhir.ml" +# 12822 "parser_cocci_menhir.ml" ) = Obj.magic pv in let id : 'tv_comma_list_typedef_ident_ = Obj.magic id in let t : 'tv_typedef_ctype = Obj.magic t in let s : ( -# 75 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 12773 "parser_cocci_menhir.ml" +# 12829 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_pv_ in let _v : 'tv_decl_var = -# 1052 "parser_cocci_menhir.mly" +# 1032 "parser_cocci_menhir.mly" ( let s = P.clt2mcode "typedef" s in List.map (function id -> Ast0.wrap(Ast0.Typedef(s,t,id,P.clt2mcode ";" pv))) id ) -# 12784 "parser_cocci_menhir.ml" +# 12840 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12802,13 +12858,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_define_param_list = -# 769 "parser_cocci_menhir.mly" +# 749 "parser_cocci_menhir.mly" (let circle x = match Ast0.unwrap x with Ast0.DPcircles(_) -> true | _ -> false in if List.exists circle _1 then Ast0.wrap(Ast0.CIRCLES(_1)) else Ast0.wrap(Ast0.DOTS(_1)) ) -# 12812 "parser_cocci_menhir.ml" +# 12868 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12830,9 +12886,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_define_param_list_option = -# 793 "parser_cocci_menhir.mly" +# 773 "parser_cocci_menhir.mly" ( _1 ) -# 12836 "parser_cocci_menhir.ml" +# 12892 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12847,9 +12903,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_define_param_list_option = -# 794 "parser_cocci_menhir.mly" +# 774 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS([])) ) -# 12853 "parser_cocci_menhir.ml" +# 12909 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12871,9 +12927,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_define_param_list_start = -# 776 "parser_cocci_menhir.mly" +# 756 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.DParam _1)] ) -# 12877 "parser_cocci_menhir.ml" +# 12933 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12903,18 +12959,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_define_param_list_start = Obj.magic _3 in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 12909 "parser_cocci_menhir.ml" +# 12965 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_ident = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_define_param_list_start = -# 778 "parser_cocci_menhir.mly" +# 758 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DParam _1):: Ast0.wrap(Ast0.DPComma(P.clt2mcode "," _2))::_3 ) -# 12918 "parser_cocci_menhir.ml" +# 12974 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12939,17 +12995,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let r : 'tv_list_dp_comma_args_TEllipsis__ = Obj.magic r in let d : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 12945 "parser_cocci_menhir.ml" +# 13001 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_r_ in let _v : 'tv_define_param_list_start = -# 781 "parser_cocci_menhir.mly" +# 761 "parser_cocci_menhir.mly" ( (P.mkdpdots "..." d):: (List.concat (List.map (function x -> x (P.mkdpdots "...")) r)) ) -# 12953 "parser_cocci_menhir.ml" +# 13009 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -12968,14 +13024,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 104 "parser_cocci_menhir.mly" +# 84 "parser_cocci_menhir.mly" (Data.clt * token) -# 12974 "parser_cocci_menhir.ml" +# 13030 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_defineop = -# 728 "parser_cocci_menhir.mly" +# 708 "parser_cocci_menhir.mly" ( let (clt,ident) = _1 in function body -> Ast0.wrap @@ -12992,7 +13048,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct "unexpected name for a #define")), Ast0.wrap Ast0.NoParams, body)) ) -# 12996 "parser_cocci_menhir.ml" +# 13052 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13021,20 +13077,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 13027 "parser_cocci_menhir.ml" +# 13083 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_define_param_list_option = Obj.magic _2 in let _1 : ( -# 105 "parser_cocci_menhir.mly" +# 85 "parser_cocci_menhir.mly" (Data.clt * token * int * int) -# 13033 "parser_cocci_menhir.ml" +# 13089 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_defineop = -# 745 "parser_cocci_menhir.mly" +# 725 "parser_cocci_menhir.mly" ( let (clt,ident,parenoff,parencol) = _1 in (* clt is the start of the #define itself *) let (arity,line,lline,offset,col,strbef,straft,pos) = clt in @@ -13055,7 +13111,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (Semantic_cocci.Semantic "unexpected name for a #define")), Ast0.wrap (Ast0.DParams (lp,_2,P.clt2mcode ")" _3)),body)) ) -# 13059 "parser_cocci_menhir.ml" +# 13115 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13077,9 +13133,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_dep = -# 248 "parser_cocci_menhir.mly" +# 228 "parser_cocci_menhir.mly" ( _1 ) -# 13083 "parser_cocci_menhir.ml" +# 13139 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13111,9 +13167,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_dep = -# 249 "parser_cocci_menhir.mly" +# 229 "parser_cocci_menhir.mly" ( Ast.AndDep(_1, _3) ) -# 13117 "parser_cocci_menhir.ml" +# 13173 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13145,9 +13201,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_dep = -# 250 "parser_cocci_menhir.mly" +# 230 "parser_cocci_menhir.mly" ( Ast.OrDep (_1, _3) ) -# 13151 "parser_cocci_menhir.ml" +# 13207 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13162,9 +13218,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_depends = -# 244 "parser_cocci_menhir.mly" +# 224 "parser_cocci_menhir.mly" ( Ast.NoDep ) -# 13168 "parser_cocci_menhir.ml" +# 13224 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13194,9 +13250,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_parents_ in let _v : 'tv_depends = -# 245 "parser_cocci_menhir.mly" +# 225 "parser_cocci_menhir.mly" ( parents ) -# 13200 "parser_cocci_menhir.ml" +# 13256 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13221,16 +13277,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_ident = Obj.magic _2 in let _1 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 13227 "parser_cocci_menhir.ml" +# 13283 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_designator = -# 1153 "parser_cocci_menhir.mly" +# 1133 "parser_cocci_menhir.mly" ( Ast0.DesignatorField (P.clt2mcode "." _1,_2) ) -# 13234 "parser_cocci_menhir.ml" +# 13290 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13259,22 +13315,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 125 "parser_cocci_menhir.mly" +# 105 "parser_cocci_menhir.mly" (Data.clt) -# 13265 "parser_cocci_menhir.ml" +# 13321 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 125 "parser_cocci_menhir.mly" +# 105 "parser_cocci_menhir.mly" (Data.clt) -# 13271 "parser_cocci_menhir.ml" +# 13327 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_designator = -# 1155 "parser_cocci_menhir.mly" +# 1135 "parser_cocci_menhir.mly" ( Ast0.DesignatorIndex (P.clt2mcode "[" _1,_2,P.clt2mcode "]" _3) ) -# 13278 "parser_cocci_menhir.ml" +# 13334 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13313,29 +13369,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _5 : ( -# 125 "parser_cocci_menhir.mly" +# 105 "parser_cocci_menhir.mly" (Data.clt) -# 13319 "parser_cocci_menhir.ml" +# 13375 "parser_cocci_menhir.ml" ) = Obj.magic _5 in let _4 : 'tv_eexpr = Obj.magic _4 in let _3 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 13325 "parser_cocci_menhir.ml" +# 13381 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 125 "parser_cocci_menhir.mly" +# 105 "parser_cocci_menhir.mly" (Data.clt) -# 13331 "parser_cocci_menhir.ml" +# 13387 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : 'tv_designator = -# 1157 "parser_cocci_menhir.mly" +# 1137 "parser_cocci_menhir.mly" ( Ast0.DesignatorRange (P.clt2mcode "[" _1,_2,P.clt2mcode "..." _3, _4,P.clt2mcode "]" _5) ) -# 13339 "parser_cocci_menhir.ml" +# 13395 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13357,9 +13413,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_dexpr = -# 1256 "parser_cocci_menhir.mly" +# 1240 "parser_cocci_menhir.mly" ( _1 ) -# 13363 "parser_cocci_menhir.ml" +# 13419 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13385,9 +13441,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_disable = -# 263 "parser_cocci_menhir.mly" +# 243 "parser_cocci_menhir.mly" ( List.map P.id2name _2 ) -# 13391 "parser_cocci_menhir.ml" +# 13447 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13406,16 +13462,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 13412 "parser_cocci_menhir.ml" +# 13468 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_dot_expressions = -# 1265 "parser_cocci_menhir.mly" +# 1249 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Edots(P.clt2mcode "..." _1,None)) ) -# 13419 "parser_cocci_menhir.ml" +# 13475 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13437,9 +13493,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_dot_expressions = -# 1266 "parser_cocci_menhir.mly" +# 1250 "parser_cocci_menhir.mly" ( _1 ) -# 13443 "parser_cocci_menhir.ml" +# 13499 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13463,22 +13519,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let d : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 13469 "parser_cocci_menhir.ml" +# 13525 "parser_cocci_menhir.ml" ) = Obj.magic d in let c : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 13474 "parser_cocci_menhir.ml" +# 13530 "parser_cocci_menhir.ml" ) = Obj.magic c in let _startpos = _startpos_c_ in let _endpos = _endpos_d_ in let _v : 'tv_dp_comma_args_TEllipsis_ = -# 786 "parser_cocci_menhir.mly" +# 766 "parser_cocci_menhir.mly" ( function dot_builder -> [Ast0.wrap(Ast0.DPComma(P.clt2mcode "," c)); dot_builder d] ) -# 13482 "parser_cocci_menhir.ml" +# 13538 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13503,18 +13559,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_ident = Obj.magic _2 in let _1 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 13509 "parser_cocci_menhir.ml" +# 13565 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_dp_comma_args_TEllipsis_ = -# 789 "parser_cocci_menhir.mly" +# 769 "parser_cocci_menhir.mly" ( function dot_builder -> [Ast0.wrap(Ast0.DPComma(P.clt2mcode "," _1)); Ast0.wrap(Ast0.DParam _2)] ) -# 13518 "parser_cocci_menhir.ml" +# 13574 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13533,16 +13589,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 13539 "parser_cocci_menhir.ml" +# 13595 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : 'tv_edots_when_TEllipsis_eexpr_ = -# 1994 "parser_cocci_menhir.mly" +# 1978 "parser_cocci_menhir.mly" ( (d,None) ) -# 13546 "parser_cocci_menhir.ml" +# 13602 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13579,16 +13635,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let w : 'tv_eexpr = Obj.magic w in let d : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 13585 "parser_cocci_menhir.ml" +# 13641 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos__5_ in let _v : 'tv_edots_when_TEllipsis_eexpr_ = -# 1995 "parser_cocci_menhir.mly" +# 1979 "parser_cocci_menhir.mly" ( (d,Some w) ) -# 13592 "parser_cocci_menhir.ml" +# 13648 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13607,16 +13663,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 13613 "parser_cocci_menhir.ml" +# 13669 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : 'tv_edots_when_TEllipsis_initialize_ = -# 1994 "parser_cocci_menhir.mly" +# 1978 "parser_cocci_menhir.mly" ( (d,None) ) -# 13620 "parser_cocci_menhir.ml" +# 13676 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13653,16 +13709,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let w : 'tv_initialize = Obj.magic w in let d : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 13659 "parser_cocci_menhir.ml" +# 13715 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos__5_ in let _v : 'tv_edots_when_TEllipsis_initialize_ = -# 1995 "parser_cocci_menhir.mly" +# 1979 "parser_cocci_menhir.mly" ( (d,Some w) ) -# 13666 "parser_cocci_menhir.ml" +# 13722 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13681,16 +13737,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let d : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 13687 "parser_cocci_menhir.ml" +# 13743 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : 'tv_edots_when_TEllipsis_struct_decl_ = -# 1994 "parser_cocci_menhir.mly" +# 1978 "parser_cocci_menhir.mly" ( (d,None) ) -# 13694 "parser_cocci_menhir.ml" +# 13750 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13727,16 +13783,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let w : 'tv_struct_decl = Obj.magic w in let d : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 13733 "parser_cocci_menhir.ml" +# 13789 "parser_cocci_menhir.ml" ) = Obj.magic d in let _startpos = _startpos_d_ in let _endpos = _endpos__5_ in let _v : 'tv_edots_when_TEllipsis_struct_decl_ = -# 1995 "parser_cocci_menhir.mly" +# 1979 "parser_cocci_menhir.mly" ( (d,Some w) ) -# 13740 "parser_cocci_menhir.ml" +# 13796 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13758,9 +13814,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_eexpr = -# 1254 "parser_cocci_menhir.mly" +# 1238 "parser_cocci_menhir.mly" ( _1 ) -# 13764 "parser_cocci_menhir.ml" +# 13820 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13782,7 +13838,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_eexpr_list = -# 1938 "parser_cocci_menhir.mly" +# 1922 "parser_cocci_menhir.mly" (let circle x = match Ast0.unwrap x with Ast0.Ecircles(_) -> true | _ -> false in let star x = @@ -13793,7 +13849,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct if List.exists star _1 then Ast0.wrap(Ast0.STARS(_1)) else Ast0.wrap(Ast0.DOTS(_1)) ) -# 13797 "parser_cocci_menhir.ml" +# 13853 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13815,9 +13871,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_eexpr_list_option = -# 1977 "parser_cocci_menhir.mly" +# 1961 "parser_cocci_menhir.mly" ( _1 ) -# 13821 "parser_cocci_menhir.ml" +# 13877 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13832,9 +13888,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_eexpr_list_option = -# 1978 "parser_cocci_menhir.mly" +# 1962 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS([])) ) -# 13838 "parser_cocci_menhir.ml" +# 13894 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13856,9 +13912,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_eexpr_list_start = -# 1965 "parser_cocci_menhir.mly" +# 1949 "parser_cocci_menhir.mly" ( [_1] ) -# 13862 "parser_cocci_menhir.ml" +# 13918 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13888,17 +13944,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_eexpr_list_start = Obj.magic _3 in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 13894 "parser_cocci_menhir.ml" +# 13950 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_aexpr = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_eexpr_list_start = -# 1967 "parser_cocci_menhir.mly" +# 1951 "parser_cocci_menhir.mly" ( _1::Ast0.wrap(Ast0.EComma(P.clt2mcode "," _2))::_3 ) -# 13902 "parser_cocci_menhir.ml" +# 13958 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13918,9 +13974,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_exists = -# 266 "parser_cocci_menhir.mly" +# 246 "parser_cocci_menhir.mly" ( Ast.Exists ) -# 13924 "parser_cocci_menhir.ml" +# 13980 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13940,9 +13996,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_exists = -# 267 "parser_cocci_menhir.mly" +# 247 "parser_cocci_menhir.mly" ( Ast.Forall ) -# 13946 "parser_cocci_menhir.ml" +# 14002 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13957,9 +14013,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_exists = -# 268 "parser_cocci_menhir.mly" +# 248 "parser_cocci_menhir.mly" ( Ast.Undetermined ) -# 13963 "parser_cocci_menhir.ml" +# 14019 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -13981,9 +14037,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_expr = -# 1252 "parser_cocci_menhir.mly" +# 1236 "parser_cocci_menhir.mly" ( _1 ) -# 13987 "parser_cocci_menhir.ml" +# 14043 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14005,9 +14061,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_r_ in let _endpos = _endpos_r_ in let _v : 'tv_expr_dots_TEllipsis_ = -# 1434 "parser_cocci_menhir.mly" +# 1418 "parser_cocci_menhir.mly" ( r ) -# 14011 "parser_cocci_menhir.ml" +# 14067 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14022,9 +14078,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_extends = -# 239 "parser_cocci_menhir.mly" +# 219 "parser_cocci_menhir.mly" ( () ) -# 14028 "parser_cocci_menhir.ml" +# 14084 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14047,16 +14103,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let parent : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 14053 "parser_cocci_menhir.ml" +# 14109 "parser_cocci_menhir.ml" ) = Obj.magic parent in let _startpos = _startpos__1_ in let _endpos = _endpos_parent_ in let _v : 'tv_extends = -# 241 "parser_cocci_menhir.mly" +# 221 "parser_cocci_menhir.mly" ( !Data.install_bindings (parent) ) -# 14060 "parser_cocci_menhir.ml" +# 14116 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14080,23 +14136,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 106 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (string * Data.clt) -# 14086 "parser_cocci_menhir.ml" +# 14142 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 106 "parser_cocci_menhir.mly" +# 86 "parser_cocci_menhir.mly" (string * Data.clt) -# 14091 "parser_cocci_menhir.ml" +# 14147 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_filespec = -# 683 "parser_cocci_menhir.mly" +# 663 "parser_cocci_menhir.mly" ( [Ast0.wrap (Ast0.FILEINFO(P.id2mcode _1, P.id2mcode _2))] ) -# 14100 "parser_cocci_menhir.ml" +# 14156 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14111,9 +14167,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_fninfo = -# 822 "parser_cocci_menhir.mly" +# 802 "parser_cocci_menhir.mly" ( [] ) -# 14117 "parser_cocci_menhir.ml" +# 14173 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14141,13 +14197,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fninfo = -# 824 "parser_cocci_menhir.mly" +# 804 "parser_cocci_menhir.mly" ( try let _ = List.find (function Ast0.FStorage(_) -> true | _ -> false) _2 in raise (Semantic_cocci.Semantic "duplicate storage") with Not_found -> (Ast0.FStorage(_1))::_2 ) -# 14151 "parser_cocci_menhir.ml" +# 14207 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14175,9 +14231,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos_r_ in let _v : 'tv_fninfo = -# 829 "parser_cocci_menhir.mly" +# 809 "parser_cocci_menhir.mly" ( (Ast0.FType(t))::r ) -# 14181 "parser_cocci_menhir.ml" +# 14237 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14202,19 +14258,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_fninfo = Obj.magic _2 in let _1 : ( -# 75 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 14208 "parser_cocci_menhir.ml" +# 14264 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fninfo = -# 831 "parser_cocci_menhir.mly" +# 811 "parser_cocci_menhir.mly" ( try let _ = List.find (function Ast0.FInline(_) -> true | _ -> false) _2 in raise (Semantic_cocci.Semantic "duplicate inline") with Not_found -> (Ast0.FInline(P.clt2mcode "inline" _1))::_2 ) -# 14218 "parser_cocci_menhir.ml" +# 14274 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14239,19 +14295,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_fninfo = Obj.magic _2 in let _1 : ( -# 77 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (string * Data.clt) -# 14245 "parser_cocci_menhir.ml" +# 14301 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fninfo = -# 836 "parser_cocci_menhir.mly" +# 816 "parser_cocci_menhir.mly" ( try let _ = List.find (function Ast0.FAttr(_) -> true | _ -> false) _2 in raise (Semantic_cocci.Semantic "multiple attributes") with Not_found -> (Ast0.FAttr(P.id2mcode _1))::_2 ) -# 14255 "parser_cocci_menhir.ml" +# 14311 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14266,9 +14322,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_fninfo_nt = -# 842 "parser_cocci_menhir.mly" +# 822 "parser_cocci_menhir.mly" ( [] ) -# 14272 "parser_cocci_menhir.ml" +# 14328 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14296,13 +14352,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fninfo_nt = -# 844 "parser_cocci_menhir.mly" +# 824 "parser_cocci_menhir.mly" ( try let _ = List.find (function Ast0.FStorage(_) -> true | _ -> false) _2 in raise (Semantic_cocci.Semantic "duplicate storage") with Not_found -> (Ast0.FStorage(_1))::_2 ) -# 14306 "parser_cocci_menhir.ml" +# 14362 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14327,19 +14383,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_fninfo_nt = Obj.magic _2 in let _1 : ( -# 75 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 14333 "parser_cocci_menhir.ml" +# 14389 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fninfo_nt = -# 850 "parser_cocci_menhir.mly" +# 830 "parser_cocci_menhir.mly" ( try let _ = List.find (function Ast0.FInline(_) -> true | _ -> false) _2 in raise (Semantic_cocci.Semantic "duplicate inline") with Not_found -> (Ast0.FInline(P.clt2mcode "inline" _1))::_2 ) -# 14343 "parser_cocci_menhir.ml" +# 14399 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14364,19 +14420,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_fninfo_nt = Obj.magic _2 in let _1 : ( -# 77 "parser_cocci_menhir.mly" +# 57 "parser_cocci_menhir.mly" (string * Data.clt) -# 14370 "parser_cocci_menhir.ml" +# 14426 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fninfo_nt = -# 855 "parser_cocci_menhir.mly" +# 835 "parser_cocci_menhir.mly" ( try let _ = List.find (function Ast0.FAttr(_) -> true | _ -> false) _2 in raise (Semantic_cocci.Semantic "duplicate init") with Not_found -> (Ast0.FAttr(P.id2mcode _1))::_2 ) -# 14380 "parser_cocci_menhir.ml" +# 14436 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14391,9 +14447,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_fun_after_dots = -# 1886 "parser_cocci_menhir.mly" +# 1870 "parser_cocci_menhir.mly" ([]) -# 14397 "parser_cocci_menhir.ml" +# 14453 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14419,9 +14475,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_dots = -# 1887 "parser_cocci_menhir.mly" +# 1871 "parser_cocci_menhir.mly" (_2) -# 14425 "parser_cocci_menhir.ml" +# 14481 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14449,9 +14505,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_dots = -# 1888 "parser_cocci_menhir.mly" +# 1872 "parser_cocci_menhir.mly" (Ast0.wrap(Ast0.Exp(_1))::_2) -# 14455 "parser_cocci_menhir.ml" +# 14511 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14479,9 +14535,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_dots = -# 1889 "parser_cocci_menhir.mly" +# 1873 "parser_cocci_menhir.mly" (_1@_2) -# 14485 "parser_cocci_menhir.ml" +# 14541 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14496,9 +14552,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_fun_after_dots_or = -# 1896 "parser_cocci_menhir.mly" +# 1880 "parser_cocci_menhir.mly" ([]) -# 14502 "parser_cocci_menhir.ml" +# 14558 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14524,9 +14580,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_dots_or = -# 1897 "parser_cocci_menhir.mly" +# 1881 "parser_cocci_menhir.mly" (_2) -# 14530 "parser_cocci_menhir.ml" +# 14586 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14554,9 +14610,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_dots_or = -# 1898 "parser_cocci_menhir.mly" +# 1882 "parser_cocci_menhir.mly" (Ast0.wrap(Ast0.Exp(_1))::_2) -# 14560 "parser_cocci_menhir.ml" +# 14616 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14584,9 +14640,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_dots_or = -# 1899 "parser_cocci_menhir.mly" +# 1883 "parser_cocci_menhir.mly" (_1@_2) -# 14590 "parser_cocci_menhir.ml" +# 14646 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14614,9 +14670,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_exp = -# 1892 "parser_cocci_menhir.mly" +# 1876 "parser_cocci_menhir.mly" (_1::_2) -# 14620 "parser_cocci_menhir.ml" +# 14676 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14631,9 +14687,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_fun_after_exp_or = -# 1902 "parser_cocci_menhir.mly" +# 1886 "parser_cocci_menhir.mly" ([]) -# 14637 "parser_cocci_menhir.ml" +# 14693 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14661,9 +14717,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_exp_or = -# 1903 "parser_cocci_menhir.mly" +# 1887 "parser_cocci_menhir.mly" (_1::_2) -# 14667 "parser_cocci_menhir.ml" +# 14723 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14678,9 +14734,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_fun_after_stm = -# 1881 "parser_cocci_menhir.mly" +# 1865 "parser_cocci_menhir.mly" ([]) -# 14684 "parser_cocci_menhir.ml" +# 14740 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14708,9 +14764,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_stm = -# 1882 "parser_cocci_menhir.mly" +# 1866 "parser_cocci_menhir.mly" (_1::_2) -# 14714 "parser_cocci_menhir.ml" +# 14770 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14738,9 +14794,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_fun_after_stm = -# 1883 "parser_cocci_menhir.mly" +# 1867 "parser_cocci_menhir.mly" (_1@_2) -# 14744 "parser_cocci_menhir.ml" +# 14800 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14762,9 +14818,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_fun_start = -# 1878 "parser_cocci_menhir.mly" +# 1862 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS(_1)) ) -# 14768 "parser_cocci_menhir.ml" +# 14824 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14786,9 +14842,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_func_ident = -# 1676 "parser_cocci_menhir.mly" +# 1660 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) -# 14792 "parser_cocci_menhir.ml" +# 14848 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14807,17 +14863,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 84 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 14813 "parser_cocci_menhir.ml" +# 14869 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_func_ident = -# 1678 "parser_cocci_menhir.mly" +# 1662 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) ) -# 14821 "parser_cocci_menhir.ml" +# 14877 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14836,17 +14892,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 84 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 14842 "parser_cocci_menhir.ml" +# 14898 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_func_ident = -# 1681 "parser_cocci_menhir.mly" +# 1665 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaFunc(P.clt2mcode nm clt,constraints,pure)) ) -# 14850 "parser_cocci_menhir.ml" +# 14906 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14865,18 +14921,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 84 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 14871 "parser_cocci_menhir.ml" +# 14927 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_func_ident = -# 1684 "parser_cocci_menhir.mly" +# 1668 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap (Ast0.MetaLocalFunc(P.clt2mcode nm clt,constraints,pure)) ) -# 14880 "parser_cocci_menhir.ml" +# 14936 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -14934,33 +14990,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rb : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 14940 "parser_cocci_menhir.ml" +# 14996 "parser_cocci_menhir.ml" ) = Obj.magic rb in let b : 'tv_fun_start = Obj.magic b in let lb : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 14946 "parser_cocci_menhir.ml" +# 15002 "parser_cocci_menhir.ml" ) = Obj.magic lb in let rp : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 14951 "parser_cocci_menhir.ml" +# 15007 "parser_cocci_menhir.ml" ) = Obj.magic rp in let d : 'tv_decl_list_decl_ = Obj.magic d in let lp : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 14957 "parser_cocci_menhir.ml" +# 15013 "parser_cocci_menhir.ml" ) = Obj.magic lp in let i : 'tv_func_ident = Obj.magic i in let f : 'tv_fninfo = Obj.magic f in let _startpos = _startpos_f_ in let _endpos = _endpos_rb_ in let _v : 'tv_fundecl = -# 813 "parser_cocci_menhir.mly" +# 793 "parser_cocci_menhir.mly" ( P.verify_parameter_declarations (Ast0.undots d); Ast0.wrap(Ast0.FunDecl((Ast0.default_info(),Ast0.context_befaft()), f, i, @@ -14968,7 +15024,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct P.clt2mcode ")" rp, P.clt2mcode "{" lb, b, P.clt2mcode "}" rb)) ) -# 14972 "parser_cocci_menhir.ml" +# 15028 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15012,20 +15068,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pt : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 15018 "parser_cocci_menhir.ml" +# 15074 "parser_cocci_menhir.ml" ) = Obj.magic pt in let rp : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 15023 "parser_cocci_menhir.ml" +# 15079 "parser_cocci_menhir.ml" ) = Obj.magic rp in let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in let lp : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 15029 "parser_cocci_menhir.ml" +# 15085 "parser_cocci_menhir.ml" ) = Obj.magic lp in let id : 'tv_func_ident = Obj.magic id in let t : 'tv_ctype = Obj.magic t in @@ -15035,11 +15091,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 15039 "parser_cocci_menhir.ml" +# 15095 "parser_cocci_menhir.ml" in -# 801 "parser_cocci_menhir.mly" +# 781 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.UnInit (s, @@ -15047,7 +15103,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (Ast0.FunctionType(Some t, P.clt2mcode "(" lp, d, P.clt2mcode ")" rp)), id, P.clt2mcode ";" pt)) ) -# 15051 "parser_cocci_menhir.ml" +# 15107 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15096,20 +15152,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pt : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 15102 "parser_cocci_menhir.ml" +# 15158 "parser_cocci_menhir.ml" ) = Obj.magic pt in let rp : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 15107 "parser_cocci_menhir.ml" +# 15163 "parser_cocci_menhir.ml" ) = Obj.magic rp in let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in let lp : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 15113 "parser_cocci_menhir.ml" +# 15169 "parser_cocci_menhir.ml" ) = Obj.magic lp in let id : 'tv_func_ident = Obj.magic id in let t : 'tv_ctype = Obj.magic t in @@ -15121,11 +15177,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 15125 "parser_cocci_menhir.ml" +# 15181 "parser_cocci_menhir.ml" in -# 801 "parser_cocci_menhir.mly" +# 781 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.UnInit (s, @@ -15133,7 +15189,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (Ast0.FunctionType(Some t, P.clt2mcode "(" lp, d, P.clt2mcode ")" rp)), id, P.clt2mcode ";" pt)) ) -# 15137 "parser_cocci_menhir.ml" +# 15193 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15155,9 +15211,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_ident = -# 1689 "parser_cocci_menhir.mly" +# 1673 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) -# 15161 "parser_cocci_menhir.ml" +# 15217 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15176,17 +15232,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 84 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 15182 "parser_cocci_menhir.ml" +# 15238 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_ident = -# 1691 "parser_cocci_menhir.mly" +# 1675 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) ) -# 15190 "parser_cocci_menhir.ml" +# 15246 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15208,9 +15264,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_i_ in let _endpos = _endpos_i_ in let _v : 'tv_ident_or_const = -# 1649 "parser_cocci_menhir.mly" +# 1633 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i)))) ) -# 15214 "parser_cocci_menhir.ml" +# 15270 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15229,17 +15285,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 15235 "parser_cocci_menhir.ml" +# 15291 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_ident_or_const = -# 1651 "parser_cocci_menhir.mly" +# 1635 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) -# 15243 "parser_cocci_menhir.ml" +# 15299 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15258,16 +15314,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 103 "parser_cocci_menhir.mly" +# 83 "parser_cocci_menhir.mly" (string * Data.clt) -# 15264 "parser_cocci_menhir.ml" +# 15320 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_incl = -# 279 "parser_cocci_menhir.mly" +# 259 "parser_cocci_menhir.mly" ( let (x,_) = _1 in Data.Include(x) ) -# 15271 "parser_cocci_menhir.ml" +# 15327 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15290,16 +15346,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 15296 "parser_cocci_menhir.ml" +# 15352 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_incl = -# 280 "parser_cocci_menhir.mly" +# 260 "parser_cocci_menhir.mly" ( Data.Iso(Common.Left(P.id2name _2)) ) -# 15303 "parser_cocci_menhir.ml" +# 15359 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15322,16 +15378,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 102 "parser_cocci_menhir.mly" +# 82 "parser_cocci_menhir.mly" (string) -# 15328 "parser_cocci_menhir.ml" +# 15384 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_incl = -# 281 "parser_cocci_menhir.mly" +# 261 "parser_cocci_menhir.mly" ( Data.Iso(Common.Right _2) ) -# 15335 "parser_cocci_menhir.ml" +# 15391 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15357,14 +15413,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_incl = -# 283 "parser_cocci_menhir.mly" +# 263 "parser_cocci_menhir.mly" ( let names = List.map P.id2name _2 in (* ensure that the names of virtual and real rules don't overlap *) List.iter (function name -> Hashtbl.add Data.all_metadecls name []) names; Data.Virt(names) ) -# 15368 "parser_cocci_menhir.ml" +# 15424 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15390,13 +15446,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 169 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.incl_iso list) -# 15396 "parser_cocci_menhir.ml" +# 15452 "parser_cocci_menhir.ml" ) = -# 275 "parser_cocci_menhir.mly" +# 255 "parser_cocci_menhir.mly" ( _1 ) -# 15400 "parser_cocci_menhir.ml" +# 15456 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15422,13 +15478,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 169 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.incl_iso list) -# 15428 "parser_cocci_menhir.ml" +# 15484 "parser_cocci_menhir.ml" ) = -# 276 "parser_cocci_menhir.mly" +# 256 "parser_cocci_menhir.mly" ( _1 ) -# 15432 "parser_cocci_menhir.ml" +# 15488 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15447,14 +15503,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 103 "parser_cocci_menhir.mly" +# 83 "parser_cocci_menhir.mly" (string * Data.clt) -# 15453 "parser_cocci_menhir.ml" +# 15509 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_includes = -# 689 "parser_cocci_menhir.mly" +# 669 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Include(P.clt2mcode "#include" (P.drop_pos (P.drop_aft (P.id2clt _1))), @@ -15465,7 +15521,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct P.clt2mcode (Ast.Local (Parse_aux.str2inc (P.id2name _1))) (P.drop_bef clt))) ) -# 15469 "parser_cocci_menhir.ml" +# 15525 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15484,14 +15540,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 103 "parser_cocci_menhir.mly" +# 83 "parser_cocci_menhir.mly" (string * Data.clt) -# 15490 "parser_cocci_menhir.ml" +# 15546 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_includes = -# 700 "parser_cocci_menhir.mly" +# 680 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.Include(P.clt2mcode "#include" (P.drop_pos (P.drop_aft (P.id2clt _1))), @@ -15502,7 +15558,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct P.clt2mcode (Ast.NonLocal (Parse_aux.str2inc (P.id2name _1))) (P.drop_bef clt))) ) -# 15506 "parser_cocci_menhir.ml" +# 15562 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15528,9 +15584,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_d_ in let _endpos = _endpos__2_ in let _v : 'tv_includes = -# 711 "parser_cocci_menhir.mly" +# 691 "parser_cocci_menhir.mly" ( d (Ast0.wrap(Ast0.DOTS([]))) ) -# 15534 "parser_cocci_menhir.ml" +# 15590 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15562,10 +15618,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_d_ in let _endpos = _endpos__3_ in let _v : 'tv_includes = -# 713 "parser_cocci_menhir.mly" +# 693 "parser_cocci_menhir.mly" ( let ty = Ast0.wrap(Ast0.TopExp(Ast0.wrap(Ast0.TypeExp(t)))) in d (Ast0.wrap(Ast0.DOTS([ty]))) ) -# 15569 "parser_cocci_menhir.ml" +# 15625 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15597,7 +15653,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_includes = -# 716 "parser_cocci_menhir.mly" +# 696 "parser_cocci_menhir.mly" ( let body = match b with [e] -> @@ -15607,7 +15663,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct | _ -> b) | _ -> b in _1 (Ast0.wrap(Ast0.DOTS(body))) ) -# 15611 "parser_cocci_menhir.ml" +# 15667 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15629,9 +15685,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_initialize = -# 1124 "parser_cocci_menhir.mly" +# 1104 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.InitExpr(_1)) ) -# 15635 "parser_cocci_menhir.ml" +# 15691 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15660,22 +15716,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 15666 "parser_cocci_menhir.ml" +# 15722 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_initialize_list = Obj.magic _2 in let _1 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 15672 "parser_cocci_menhir.ml" +# 15728 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_initialize = -# 1126 "parser_cocci_menhir.mly" +# 1106 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3)) ) -# 15679 "parser_cocci_menhir.ml" +# 15735 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15699,23 +15755,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 15705 "parser_cocci_menhir.ml" +# 15761 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 15710 "parser_cocci_menhir.ml" +# 15766 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_initialize = -# 1128 "parser_cocci_menhir.mly" +# 1108 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.InitList(P.clt2mcode "{" _1,Ast0.wrap(Ast0.DOTS []), P.clt2mcode "}" _2)) ) -# 15719 "parser_cocci_menhir.ml" +# 15775 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15734,17 +15790,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 88 "parser_cocci_menhir.mly" +# 68 "parser_cocci_menhir.mly" (Parse_aux.info) -# 15740 "parser_cocci_menhir.ml" +# 15796 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_initialize = -# 1132 "parser_cocci_menhir.mly" +# 1112 "parser_cocci_menhir.mly" (let (nm,pure,clt) = _1 in Ast0.wrap(Ast0.MetaInit(P.clt2mcode nm clt,pure)) ) -# 15748 "parser_cocci_menhir.ml" +# 15804 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15766,9 +15822,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_initialize2 = -# 1138 "parser_cocci_menhir.mly" +# 1118 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.InitExpr(_1)) ) -# 15772 "parser_cocci_menhir.ml" +# 15828 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15797,22 +15853,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 15803 "parser_cocci_menhir.ml" +# 15859 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_initialize_list = Obj.magic _2 in let _1 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 15809 "parser_cocci_menhir.ml" +# 15865 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_initialize2 = -# 1140 "parser_cocci_menhir.mly" +# 1120 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3)) ) -# 15816 "parser_cocci_menhir.ml" +# 15872 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15836,23 +15892,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 15842 "parser_cocci_menhir.ml" +# 15898 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 15847 "parser_cocci_menhir.ml" +# 15903 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_initialize2 = -# 1142 "parser_cocci_menhir.mly" +# 1122 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.InitList(P.clt2mcode "{" _1,Ast0.wrap(Ast0.DOTS []), P.clt2mcode "}" _2)) ) -# 15856 "parser_cocci_menhir.ml" +# 15912 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15882,17 +15938,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_initialize2 = Obj.magic _3 in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 15888 "parser_cocci_menhir.ml" +# 15944 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_list_designator_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_initialize2 = -# 1147 "parser_cocci_menhir.mly" +# 1127 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.InitGccExt(_1,P.clt2mcode "=" _2,_3)) ) -# 15896 "parser_cocci_menhir.ml" +# 15952 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15922,17 +15978,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_initialize2 = Obj.magic _3 in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 15928 "parser_cocci_menhir.ml" +# 15984 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_ident = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_initialize2 = -# 1149 "parser_cocci_menhir.mly" +# 1129 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.InitGccName(_1,P.clt2mcode ":" _2,_3)) ) -# 15936 "parser_cocci_menhir.ml" +# 15992 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15954,9 +16010,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_initialize_list = -# 1161 "parser_cocci_menhir.mly" +# 1141 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS(_1)) ) -# 15960 "parser_cocci_menhir.ml" +# 16016 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -15980,17 +16036,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 15986 "parser_cocci_menhir.ml" +# 16042 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_initialize2 = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_initialize_list_start = -# 1164 "parser_cocci_menhir.mly" +# 1144 "parser_cocci_menhir.mly" ( [_1;Ast0.wrap(Ast0.IComma(P.clt2mcode "," _2))] ) -# 15994 "parser_cocci_menhir.ml" +# 16050 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16020,17 +16076,45 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_initialize_list_start = Obj.magic _3 in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 16026 "parser_cocci_menhir.ml" +# 16082 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_initialize2 = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_initialize_list_start = -# 1166 "parser_cocci_menhir.mly" +# 1146 "parser_cocci_menhir.mly" ( _1::Ast0.wrap(Ast0.IComma(P.clt2mcode "," _2))::_3 ) -# 16034 "parser_cocci_menhir.ml" +# 16090 "parser_cocci_menhir.ml" + in + _menhir_env.MenhirLib.EngineTypes.stack <- { + 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.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : 'tv_initialize_list_start = Obj.magic _2 in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : 'tv_initialize_list_start = +# 1148 "parser_cocci_menhir.mly" + ( _2 ) +# 16118 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16058,10 +16142,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_d_ in let _endpos = _endpos_r_ in let _v : 'tv_initialize_list_start = -# 1169 "parser_cocci_menhir.mly" +# 1151 "parser_cocci_menhir.mly" ( (P.mkidots "..." d):: (List.concat(List.map (function x -> x (P.mkidots "...")) r)) ) -# 16065 "parser_cocci_menhir.ml" +# 16149 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16081,9 +16165,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_invalid = -# 1262 "parser_cocci_menhir.mly" +# 1246 "parser_cocci_menhir.mly" ( raise (Semantic_cocci.Semantic "not matchable") ) -# 16087 "parser_cocci_menhir.ml" +# 16171 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16098,9 +16182,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_is_expression = -# 271 "parser_cocci_menhir.mly" +# 251 "parser_cocci_menhir.mly" ( false ) -# 16104 "parser_cocci_menhir.ml" +# 16188 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16120,9 +16204,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_is_expression = -# 272 "parser_cocci_menhir.mly" +# 252 "parser_cocci_menhir.mly" ( true ) -# 16126 "parser_cocci_menhir.ml" +# 16210 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16148,9 +16232,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_ctype_ = -# 2050 "parser_cocci_menhir.mly" +# 2034 "parser_cocci_menhir.mly" ( Common.Left t ) -# 16154 "parser_cocci_menhir.ml" +# 16238 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16176,9 +16260,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_ctype_ = -# 2051 "parser_cocci_menhir.mly" +# 2035 "parser_cocci_menhir.mly" ( Common.Right t ) -# 16182 "parser_cocci_menhir.ml" +# 16266 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16204,9 +16288,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_decl_var_ = -# 2050 "parser_cocci_menhir.mly" +# 2034 "parser_cocci_menhir.mly" ( Common.Left t ) -# 16210 "parser_cocci_menhir.ml" +# 16294 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16232,9 +16316,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_decl_var_ = -# 2051 "parser_cocci_menhir.mly" +# 2035 "parser_cocci_menhir.mly" ( Common.Right t ) -# 16238 "parser_cocci_menhir.ml" +# 16322 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16260,9 +16344,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_eexpr_ = -# 2050 "parser_cocci_menhir.mly" +# 2034 "parser_cocci_menhir.mly" ( Common.Left t ) -# 16266 "parser_cocci_menhir.ml" +# 16350 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16288,9 +16372,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_eexpr_ = -# 2051 "parser_cocci_menhir.mly" +# 2035 "parser_cocci_menhir.mly" ( Common.Right t ) -# 16294 "parser_cocci_menhir.ml" +# 16378 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16316,9 +16400,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_nest_start_ = -# 2050 "parser_cocci_menhir.mly" +# 2034 "parser_cocci_menhir.mly" ( Common.Left t ) -# 16322 "parser_cocci_menhir.ml" +# 16406 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16344,9 +16428,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_nest_start_ = -# 2051 "parser_cocci_menhir.mly" +# 2035 "parser_cocci_menhir.mly" ( Common.Right t ) -# 16350 "parser_cocci_menhir.ml" +# 16434 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16372,9 +16456,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_single_statement_ = -# 2050 "parser_cocci_menhir.mly" +# 2034 "parser_cocci_menhir.mly" ( Common.Left t ) -# 16378 "parser_cocci_menhir.ml" +# 16462 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16400,9 +16484,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_t_ in let _v : 'tv_iso_single_statement_ = -# 2051 "parser_cocci_menhir.mly" +# 2035 "parser_cocci_menhir.mly" ( Common.Right t ) -# 16406 "parser_cocci_menhir.ml" +# 16490 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16438,13 +16522,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 185 "parser_cocci_menhir.mly" +# 165 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 16444 "parser_cocci_menhir.ml" +# 16528 "parser_cocci_menhir.ml" ) = -# 2018 "parser_cocci_menhir.mly" +# 2002 "parser_cocci_menhir.mly" ( let fn x = Ast0.ExprTag x in P.iso_adjust fn fn e1 el ) -# 16448 "parser_cocci_menhir.ml" +# 16532 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16480,13 +16564,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 185 "parser_cocci_menhir.mly" +# 165 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 16486 "parser_cocci_menhir.ml" +# 16570 "parser_cocci_menhir.ml" ) = -# 2020 "parser_cocci_menhir.mly" +# 2004 "parser_cocci_menhir.mly" ( let fn x = Ast0.ArgExprTag x in P.iso_adjust fn fn e1 el ) -# 16490 "parser_cocci_menhir.ml" +# 16574 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16522,13 +16606,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 185 "parser_cocci_menhir.mly" +# 165 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 16528 "parser_cocci_menhir.ml" +# 16612 "parser_cocci_menhir.ml" ) = -# 2022 "parser_cocci_menhir.mly" +# 2006 "parser_cocci_menhir.mly" ( let fn x = Ast0.TestExprTag x in P.iso_adjust fn fn e1 el ) -# 16532 "parser_cocci_menhir.ml" +# 16616 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16564,15 +16648,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 185 "parser_cocci_menhir.mly" +# 165 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 16570 "parser_cocci_menhir.ml" +# 16654 "parser_cocci_menhir.ml" ) = -# 2024 "parser_cocci_menhir.mly" +# 2008 "parser_cocci_menhir.mly" ( let ffn x = Ast0.ExprTag x in let fn x = Ast0.TestExprTag x in P.iso_adjust ffn fn e1 el ) -# 16576 "parser_cocci_menhir.ml" +# 16660 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16608,13 +16692,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 185 "parser_cocci_menhir.mly" +# 165 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 16614 "parser_cocci_menhir.ml" +# 16698 "parser_cocci_menhir.ml" ) = -# 2028 "parser_cocci_menhir.mly" +# 2012 "parser_cocci_menhir.mly" ( let fn x = Ast0.StmtTag x in P.iso_adjust fn fn s1 sl ) -# 16618 "parser_cocci_menhir.ml" +# 16702 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16650,13 +16734,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 185 "parser_cocci_menhir.mly" +# 165 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 16656 "parser_cocci_menhir.ml" +# 16740 "parser_cocci_menhir.ml" ) = -# 2030 "parser_cocci_menhir.mly" +# 2014 "parser_cocci_menhir.mly" ( let fn x = Ast0.TypeCTag x in P.iso_adjust fn fn t1 tl ) -# 16660 "parser_cocci_menhir.ml" +# 16744 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16692,13 +16776,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 185 "parser_cocci_menhir.mly" +# 165 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 16698 "parser_cocci_menhir.ml" +# 16782 "parser_cocci_menhir.ml" ) = -# 2032 "parser_cocci_menhir.mly" +# 2016 "parser_cocci_menhir.mly" ( let fn x = Ast0.DotsStmtTag x in P.iso_adjust fn fn e1 el ) -# 16702 "parser_cocci_menhir.ml" +# 16786 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16734,11 +16818,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : ( -# 185 "parser_cocci_menhir.mly" +# 165 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 16740 "parser_cocci_menhir.ml" +# 16824 "parser_cocci_menhir.ml" ) = -# 2034 "parser_cocci_menhir.mly" +# 2018 "parser_cocci_menhir.mly" ( let check_one = function [x] -> x | _ -> @@ -16753,7 +16837,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct | Common.Right x -> Common.Right(check_one x)) dl in let fn x = Ast0.DeclTag x in P.iso_adjust fn fn d1 dl ) -# 16757 "parser_cocci_menhir.ml" +# 16841 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16775,13 +16859,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos_m_ in let _v : ( -# 188 "parser_cocci_menhir.mly" +# 168 "parser_cocci_menhir.mly" ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list) -# 16781 "parser_cocci_menhir.ml" +# 16865 "parser_cocci_menhir.ml" ) = -# 205 "parser_cocci_menhir.mly" +# 185 "parser_cocci_menhir.mly" ( m "" ) -# 16785 "parser_cocci_menhir.ml" +# 16869 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16807,13 +16891,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_nm_ in let _endpos = _endpos__2_ in let _v : ( -# 172 "parser_cocci_menhir.mly" +# 152 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 16813 "parser_cocci_menhir.ml" +# 16897 "parser_cocci_menhir.ml" ) = -# 220 "parser_cocci_menhir.mly" +# 200 "parser_cocci_menhir.mly" ( P.make_iso_rule_name_result (P.id2name nm) ) -# 16817 "parser_cocci_menhir.ml" +# 16901 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16832,16 +16916,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 16838 "parser_cocci_menhir.ml" +# 16922 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_iter_ident = -# 1703 "parser_cocci_menhir.mly" +# 1687 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Id(P.id2mcode _1)) ) -# 16845 "parser_cocci_menhir.ml" +# 16929 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16860,17 +16944,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 85 "parser_cocci_menhir.mly" +# 65 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 16866 "parser_cocci_menhir.ml" +# 16950 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_iter_ident = -# 1705 "parser_cocci_menhir.mly" +# 1689 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaId(P.clt2mcode nm clt,constraints,pure)) ) -# 16874 "parser_cocci_menhir.ml" +# 16958 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16887,7 +16971,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_TMul_ = # 114 "standard.mly" ( [] ) -# 16891 "parser_cocci_menhir.ml" +# 16975 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16912,16 +16996,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let xs : 'tv_list_TMul_ = Obj.magic xs in let x : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) -# 16918 "parser_cocci_menhir.ml" +# 17002 "parser_cocci_menhir.ml" ) = Obj.magic x in let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in let _v : 'tv_list_TMul_ = # 116 "standard.mly" ( x :: xs ) -# 16925 "parser_cocci_menhir.ml" +# 17009 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16938,7 +17022,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_array_dec_ = # 114 "standard.mly" ( [] ) -# 16942 "parser_cocci_menhir.ml" +# 17026 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16968,7 +17052,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_array_dec_ = # 116 "standard.mly" ( x :: xs ) -# 16972 "parser_cocci_menhir.ml" +# 17056 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -16985,7 +17069,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_case_line_ = # 114 "standard.mly" ( [] ) -# 16989 "parser_cocci_menhir.ml" +# 17073 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17015,7 +17099,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_case_line_ = # 116 "standard.mly" ( x :: xs ) -# 17019 "parser_cocci_menhir.ml" +# 17103 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17032,7 +17116,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_comma_decls_TEllipsis_decl__ = # 114 "standard.mly" ( [] ) -# 17036 "parser_cocci_menhir.ml" +# 17120 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17062,7 +17146,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_comma_decls_TEllipsis_decl__ = # 116 "standard.mly" ( x :: xs ) -# 17066 "parser_cocci_menhir.ml" +# 17150 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17079,7 +17163,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_comma_decls_TEllipsis_name_opt_decl__ = # 114 "standard.mly" ( [] ) -# 17083 "parser_cocci_menhir.ml" +# 17167 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17109,7 +17193,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_comma_decls_TEllipsis_name_opt_decl__ = # 116 "standard.mly" ( x :: xs ) -# 17113 "parser_cocci_menhir.ml" +# 17197 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17126,7 +17210,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_decl_var_ = # 114 "standard.mly" ( [] ) -# 17130 "parser_cocci_menhir.ml" +# 17214 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17156,7 +17240,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_decl_var_ = # 116 "standard.mly" ( x :: xs ) -# 17160 "parser_cocci_menhir.ml" +# 17244 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17173,7 +17257,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_designator_ = # 114 "standard.mly" ( [] ) -# 17177 "parser_cocci_menhir.ml" +# 17261 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17203,7 +17287,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_designator_ = # 116 "standard.mly" ( x :: xs ) -# 17207 "parser_cocci_menhir.ml" +# 17291 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17220,7 +17304,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_dp_comma_args_TEllipsis__ = # 114 "standard.mly" ( [] ) -# 17224 "parser_cocci_menhir.ml" +# 17308 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17250,7 +17334,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_dp_comma_args_TEllipsis__ = # 116 "standard.mly" ( x :: xs ) -# 17254 "parser_cocci_menhir.ml" +# 17338 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17267,7 +17351,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_incl_ = # 114 "standard.mly" ( [] ) -# 17271 "parser_cocci_menhir.ml" +# 17355 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17297,7 +17381,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_incl_ = # 116 "standard.mly" ( x :: xs ) -# 17301 "parser_cocci_menhir.ml" +# 17385 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17314,7 +17398,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_iso_ctype__ = # 114 "standard.mly" ( [] ) -# 17318 "parser_cocci_menhir.ml" +# 17402 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17344,7 +17428,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_iso_ctype__ = # 116 "standard.mly" ( x :: xs ) -# 17348 "parser_cocci_menhir.ml" +# 17432 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17361,7 +17445,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_iso_decl_var__ = # 114 "standard.mly" ( [] ) -# 17365 "parser_cocci_menhir.ml" +# 17449 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17391,7 +17475,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_iso_decl_var__ = # 116 "standard.mly" ( x :: xs ) -# 17395 "parser_cocci_menhir.ml" +# 17479 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17408,7 +17492,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_iso_eexpr__ = # 114 "standard.mly" ( [] ) -# 17412 "parser_cocci_menhir.ml" +# 17496 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17438,7 +17522,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_iso_eexpr__ = # 116 "standard.mly" ( x :: xs ) -# 17442 "parser_cocci_menhir.ml" +# 17526 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17455,7 +17539,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_iso_nest_start__ = # 114 "standard.mly" ( [] ) -# 17459 "parser_cocci_menhir.ml" +# 17543 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17485,7 +17569,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_iso_nest_start__ = # 116 "standard.mly" ( x :: xs ) -# 17489 "parser_cocci_menhir.ml" +# 17573 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17502,7 +17586,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_iso_single_statement__ = # 114 "standard.mly" ( [] ) -# 17506 "parser_cocci_menhir.ml" +# 17590 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17532,7 +17616,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_iso_single_statement__ = # 116 "standard.mly" ( x :: xs ) -# 17536 "parser_cocci_menhir.ml" +# 17620 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17549,7 +17633,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_ctype__ = # 114 "standard.mly" ( [] ) -# 17553 "parser_cocci_menhir.ml" +# 17637 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17579,7 +17663,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_ctype__ = # 116 "standard.mly" ( x :: xs ) -# 17583 "parser_cocci_menhir.ml" +# 17667 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17596,7 +17680,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_eexpr__ = # 114 "standard.mly" ( [] ) -# 17600 "parser_cocci_menhir.ml" +# 17684 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17626,7 +17710,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_eexpr__ = # 116 "standard.mly" ( x :: xs ) -# 17630 "parser_cocci_menhir.ml" +# 17714 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17643,7 +17727,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_fun_after_dots_or__ = # 114 "standard.mly" ( [] ) -# 17647 "parser_cocci_menhir.ml" +# 17731 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17673,7 +17757,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_fun_after_dots_or__ = # 116 "standard.mly" ( x :: xs ) -# 17677 "parser_cocci_menhir.ml" +# 17761 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17690,7 +17774,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_fun_start__ = # 114 "standard.mly" ( [] ) -# 17694 "parser_cocci_menhir.ml" +# 17778 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17720,7 +17804,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_fun_start__ = # 116 "standard.mly" ( x :: xs ) -# 17724 "parser_cocci_menhir.ml" +# 17808 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17737,7 +17821,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_rule_elem_statement__ = # 114 "standard.mly" ( [] ) -# 17741 "parser_cocci_menhir.ml" +# 17825 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17767,7 +17851,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_rule_elem_statement__ = # 116 "standard.mly" ( x :: xs ) -# 17771 "parser_cocci_menhir.ml" +# 17855 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17784,7 +17868,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_statement__ = # 114 "standard.mly" ( [] ) -# 17788 "parser_cocci_menhir.ml" +# 17872 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17814,7 +17898,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_mzl_statement__ = # 116 "standard.mly" ( x :: xs ) -# 17818 "parser_cocci_menhir.ml" +# 17902 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17831,7 +17915,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_pair_edots_when_TEllipsis_eexpr__dexpr__ = # 114 "standard.mly" ( [] ) -# 17835 "parser_cocci_menhir.ml" +# 17919 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17870,13 +17954,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 70 "standard.mly" ( (x, y) ) -# 17874 "parser_cocci_menhir.ml" +# 17958 "parser_cocci_menhir.ml" in # 116 "standard.mly" ( x :: xs ) -# 17880 "parser_cocci_menhir.ml" +# 17964 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17893,7 +17977,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_whenppdecs_ = # 114 "standard.mly" ( [] ) -# 17897 "parser_cocci_menhir.ml" +# 17981 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17923,7 +18007,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_list_whenppdecs_ = # 116 "standard.mly" ( x :: xs ) -# 17927 "parser_cocci_menhir.ml" +# 18011 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17940,7 +18024,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_choose_iso_ = # 57 "standard.mly" ( [] ) -# 17944 "parser_cocci_menhir.ml" +# 18028 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17964,7 +18048,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_choose_iso_ = # 59 "standard.mly" ( x ) -# 17968 "parser_cocci_menhir.ml" +# 18052 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -17981,7 +18065,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_disable_ = # 57 "standard.mly" ( [] ) -# 17985 "parser_cocci_menhir.ml" +# 18069 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18005,7 +18089,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_disable_ = # 59 "standard.mly" ( x ) -# 18009 "parser_cocci_menhir.ml" +# 18093 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18022,7 +18106,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_filespec_ = # 57 "standard.mly" ( [] ) -# 18026 "parser_cocci_menhir.ml" +# 18110 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18046,7 +18130,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_filespec_ = # 59 "standard.mly" ( x ) -# 18050 "parser_cocci_menhir.ml" +# 18134 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18063,7 +18147,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_minus_start_ = # 57 "standard.mly" ( [] ) -# 18067 "parser_cocci_menhir.ml" +# 18151 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18087,7 +18171,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_minus_start_ = # 59 "standard.mly" ( x ) -# 18091 "parser_cocci_menhir.ml" +# 18175 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18104,7 +18188,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_not_pos_ = # 57 "standard.mly" ( [] ) -# 18108 "parser_cocci_menhir.ml" +# 18192 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18128,7 +18212,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_not_pos_ = # 59 "standard.mly" ( x ) -# 18132 "parser_cocci_menhir.ml" +# 18216 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18145,7 +18229,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_plus_start_ = # 57 "standard.mly" ( [] ) -# 18149 "parser_cocci_menhir.ml" +# 18233 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18169,7 +18253,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_loption_plus_start_ = # 59 "standard.mly" ( x ) -# 18173 "parser_cocci_menhir.ml" +# 18257 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18191,9 +18275,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_t_ in let _endpos = _endpos_t_ in let _v : 'tv_meta_exp_type = -# 513 "parser_cocci_menhir.mly" +# 493 "parser_cocci_menhir.mly" ( [Ast0_cocci.ast0_type_to_type t] ) -# 18197 "parser_cocci_menhir.ml" +# 18281 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18229,11 +18313,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_m_ in let _v : 'tv_meta_exp_type = -# 515 "parser_cocci_menhir.mly" +# 495 "parser_cocci_menhir.mly" ( List.map (function x -> P.ty_pointerify (Ast0_cocci.ast0_type_to_type x) m) t ) -# 18237 "parser_cocci_menhir.ml" +# 18321 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18262,16 +18346,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_pure_ident = Obj.magic _3 in let _1 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 18268 "parser_cocci_menhir.ml" +# 18352 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_meta_ident = -# 1472 "parser_cocci_menhir.mly" +# 1456 "parser_cocci_menhir.mly" ( (Some _1,P.id2name _3) ) -# 18275 "parser_cocci_menhir.ml" +# 18359 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18300,16 +18384,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_pure_ident_kwd = Obj.magic _3 in let _1 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 18306 "parser_cocci_menhir.ml" +# 18390 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_meta_ident = -# 1473 "parser_cocci_menhir.mly" +# 1457 "parser_cocci_menhir.mly" ( (Some _1,_3) ) -# 18313 "parser_cocci_menhir.ml" +# 18397 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18331,13 +18415,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos_m_ in let _v : ( -# 180 "parser_cocci_menhir.mly" +# 160 "parser_cocci_menhir.mly" ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list) -# 18337 "parser_cocci_menhir.ml" +# 18421 "parser_cocci_menhir.ml" ) = -# 204 "parser_cocci_menhir.mly" +# 184 "parser_cocci_menhir.mly" ( m (!Ast0.rule_name) ) -# 18341 "parser_cocci_menhir.ml" +# 18425 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18380,17 +18464,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 362 "parser_cocci_menhir.mly" +# 342 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let tok = check_meta(Ast.MetaParamDecl(arity,name)) in !Data.add_param_meta name pure; tok) ) -# 18388 "parser_cocci_menhir.ml" +# 18472 "parser_cocci_menhir.ml" in -# 293 "parser_cocci_menhir.mly" +# 273 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 18394 "parser_cocci_menhir.ml" +# 18478 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18437,17 +18521,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 366 "parser_cocci_menhir.mly" +# 346 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let tok = check_meta(Ast.MetaParamListDecl(arity,name,None)) in !Data.add_paramlist_meta name None pure; tok) ) -# 18445 "parser_cocci_menhir.ml" +# 18529 "parser_cocci_menhir.ml" in -# 293 "parser_cocci_menhir.mly" +# 273 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 18451 "parser_cocci_menhir.ml" +# 18535 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18494,17 +18578,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 370 "parser_cocci_menhir.mly" +# 350 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let tok = check_meta(Ast.MetaExpListDecl(arity,name,None)) in !Data.add_explist_meta name None pure; tok) ) -# 18502 "parser_cocci_menhir.ml" +# 18586 "parser_cocci_menhir.ml" in -# 293 "parser_cocci_menhir.mly" +# 273 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 18508 "parser_cocci_menhir.ml" +# 18592 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18547,17 +18631,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 374 "parser_cocci_menhir.mly" +# 354 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let tok = check_meta(Ast.MetaTypeDecl(arity,name)) in !Data.add_type_meta name pure; tok) ) -# 18555 "parser_cocci_menhir.ml" +# 18639 "parser_cocci_menhir.ml" in -# 293 "parser_cocci_menhir.mly" +# 273 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 18561 "parser_cocci_menhir.ml" +# 18645 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18600,17 +18684,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 378 "parser_cocci_menhir.mly" +# 358 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let tok = check_meta(Ast.MetaInitDecl(arity,name)) in !Data.add_init_meta name pure; tok) ) -# 18608 "parser_cocci_menhir.ml" +# 18692 "parser_cocci_menhir.ml" in -# 293 "parser_cocci_menhir.mly" +# 273 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 18614 "parser_cocci_menhir.ml" +# 18698 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18653,17 +18737,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 382 "parser_cocci_menhir.mly" +# 362 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let tok = check_meta(Ast.MetaStmDecl(arity,name)) in !Data.add_stm_meta name pure; tok) ) -# 18661 "parser_cocci_menhir.ml" +# 18745 "parser_cocci_menhir.ml" in -# 293 "parser_cocci_menhir.mly" +# 273 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 18667 "parser_cocci_menhir.ml" +# 18751 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18710,17 +18794,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 386 "parser_cocci_menhir.mly" +# 366 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta -> let tok = check_meta(Ast.MetaStmListDecl(arity,name)) in !Data.add_stmlist_meta name pure; tok) ) -# 18718 "parser_cocci_menhir.ml" +# 18802 "parser_cocci_menhir.ml" in -# 293 "parser_cocci_menhir.mly" +# 273 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 18724 "parser_cocci_menhir.ml" +# 18808 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18763,18 +18847,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 390 "parser_cocci_menhir.mly" +# 370 "parser_cocci_menhir.mly" ( (fun arity (_,name) pure check_meta -> if arity = Ast.NONE && pure = Ast0.Impure then (!Data.add_type_name name; []) else raise (Semantic_cocci.Semantic "bad typedef")) ) -# 18772 "parser_cocci_menhir.ml" +# 18856 "parser_cocci_menhir.ml" in -# 293 "parser_cocci_menhir.mly" +# 273 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 18778 "parser_cocci_menhir.ml" +# 18862 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18821,18 +18905,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 395 "parser_cocci_menhir.mly" +# 375 "parser_cocci_menhir.mly" ( (fun arity (_,name) pure check_meta -> if arity = Ast.NONE && pure = Ast0.Impure then (!Data.add_declarer_name name; []) else raise (Semantic_cocci.Semantic "bad declarer")) ) -# 18830 "parser_cocci_menhir.ml" +# 18914 "parser_cocci_menhir.ml" in -# 293 "parser_cocci_menhir.mly" +# 273 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 18836 "parser_cocci_menhir.ml" +# 18920 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18879,18 +18963,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 400 "parser_cocci_menhir.mly" +# 380 "parser_cocci_menhir.mly" ( (fun arity (_,name) pure check_meta -> if arity = Ast.NONE && pure = Ast0.Impure then (!Data.add_iterator_name name; []) else raise (Semantic_cocci.Semantic "bad iterator")) ) -# 18888 "parser_cocci_menhir.ml" +# 18972 "parser_cocci_menhir.ml" in -# 293 "parser_cocci_menhir.mly" +# 273 "parser_cocci_menhir.mly" ( P.create_metadec ar ispure kindfn ids ) -# 18894 "parser_cocci_menhir.ml" +# 18978 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18925,17 +19009,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__4_ in let _v : 'tv_metadec = let kindfn = -# 355 "parser_cocci_menhir.mly" +# 335 "parser_cocci_menhir.mly" ( (fun name check_meta seed -> let tok = check_meta(Ast.MetaFreshIdDecl(name,seed)) in !Data.add_fresh_id_meta name; tok) ) -# 18933 "parser_cocci_menhir.ml" +# 19017 "parser_cocci_menhir.ml" in -# 296 "parser_cocci_menhir.mly" +# 276 "parser_cocci_menhir.mly" ( P.create_fresh_metadec kindfn ids ) -# 18939 "parser_cocci_menhir.ml" +# 19023 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -18978,7 +19062,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 407 "parser_cocci_menhir.mly" +# 387 "parser_cocci_menhir.mly" ( let idfn arity name pure check_meta constraints = let tok = check_meta(Ast.MetaIdDecl(arity,name)) in @@ -18992,17 +19076,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let tok = check_meta(Ast.MetaIdDecl(arity,name)) in !Data.add_virt_id_meta_not_found name pure; tok in (idfn,virtfn) ) -# 18996 "parser_cocci_menhir.ml" +# 19080 "parser_cocci_menhir.ml" in -# 302 "parser_cocci_menhir.mly" +# 282 "parser_cocci_menhir.mly" ( let (normal,virt) = Common.partition_either (fun x -> x) ids in let (idfn,virtfn) = kindfn in function cr -> (P.create_metadec_with_constraints ar ispure idfn normal cr) @ (P.create_metadec_virt ar ispure virtfn virt cr) ) -# 19006 "parser_cocci_menhir.ml" +# 19090 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19045,17 +19129,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 423 "parser_cocci_menhir.mly" +# 403 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let tok = check_meta(Ast.MetaFuncDecl(arity,name)) in !Data.add_func_meta name constraints pure; tok) ) -# 19053 "parser_cocci_menhir.ml" +# 19137 "parser_cocci_menhir.ml" in -# 311 "parser_cocci_menhir.mly" +# 291 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 19059 "parser_cocci_menhir.ml" +# 19143 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19102,18 +19186,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__6_ in let _v : 'tv_metadec = let kindfn = -# 427 "parser_cocci_menhir.mly" +# 407 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let tok = check_meta(Ast.MetaLocalFuncDecl(arity,name)) in !Data.add_local_func_meta name constraints pure; tok) ) -# 19111 "parser_cocci_menhir.ml" +# 19195 "parser_cocci_menhir.ml" in -# 311 "parser_cocci_menhir.mly" +# 291 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 19117 "parser_cocci_menhir.ml" +# 19201 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19156,17 +19240,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 432 "parser_cocci_menhir.mly" +# 412 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let tok = check_meta(Ast.MetaDeclarerDecl(arity,name)) in !Data.add_declarer_meta name constraints pure; tok) ) -# 19164 "parser_cocci_menhir.ml" +# 19248 "parser_cocci_menhir.ml" in -# 311 "parser_cocci_menhir.mly" +# 291 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 19170 "parser_cocci_menhir.ml" +# 19254 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19209,17 +19293,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 436 "parser_cocci_menhir.mly" +# 416 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let tok = check_meta(Ast.MetaIteratorDecl(arity,name)) in !Data.add_iterator_meta name constraints pure; tok) ) -# 19217 "parser_cocci_menhir.ml" +# 19301 "parser_cocci_menhir.ml" in -# 311 "parser_cocci_menhir.mly" +# 291 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 19223 "parser_cocci_menhir.ml" +# 19307 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19262,17 +19346,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 442 "parser_cocci_menhir.mly" +# 422 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let tok = check_meta(Ast.MetaErrDecl(arity,name)) in !Data.add_err_meta name constraints pure; tok) ) -# 19270 "parser_cocci_menhir.ml" +# 19354 "parser_cocci_menhir.ml" in -# 316 "parser_cocci_menhir.mly" +# 296 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 19276 "parser_cocci_menhir.ml" +# 19360 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19325,11 +19409,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 19329 "parser_cocci_menhir.ml" +# 19413 "parser_cocci_menhir.ml" in -# 446 "parser_cocci_menhir.mly" +# 426 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> match l with None -> @@ -19338,13 +19422,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct | Some _ -> !Data.add_local_idexp_meta ty name constraints pure; check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) ) -# 19342 "parser_cocci_menhir.ml" +# 19426 "parser_cocci_menhir.ml" in -# 316 "parser_cocci_menhir.mly" +# 296 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 19348 "parser_cocci_menhir.ml" +# 19432 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19405,11 +19489,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 19409 "parser_cocci_menhir.ml" +# 19493 "parser_cocci_menhir.ml" in -# 446 "parser_cocci_menhir.mly" +# 426 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> match l with None -> @@ -19418,13 +19502,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct | Some _ -> !Data.add_local_idexp_meta ty name constraints pure; check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) ) -# 19422 "parser_cocci_menhir.ml" +# 19506 "parser_cocci_menhir.ml" in -# 316 "parser_cocci_menhir.mly" +# 296 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 19428 "parser_cocci_menhir.ml" +# 19512 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19481,7 +19565,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let m = m0 in let l = l0 in -# 455 "parser_cocci_menhir.mly" +# 435 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let ty = Some [P.ty_pointerify Type_cocci.Unknown m] in match l with @@ -19491,13 +19575,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct | Some _ -> !Data.add_local_idexp_meta ty name constraints pure; check_meta(Ast.MetaLocalIdExpDecl(arity,name,ty))) ) -# 19495 "parser_cocci_menhir.ml" +# 19579 "parser_cocci_menhir.ml" in -# 316 "parser_cocci_menhir.mly" +# 296 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 19501 "parser_cocci_menhir.ml" +# 19585 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19547,18 +19631,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_metadec = let kindfn = let m = m0 in -# 465 "parser_cocci_menhir.mly" +# 445 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let ty = Some [P.ty_pointerify Type_cocci.Unknown m] in let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in !Data.add_exp_meta ty name constraints pure; tok) ) -# 19556 "parser_cocci_menhir.ml" +# 19640 "parser_cocci_menhir.ml" in -# 316 "parser_cocci_menhir.mly" +# 296 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 19562 "parser_cocci_menhir.ml" +# 19646 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19612,18 +19696,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_metadec = let kindfn = let vl = vl0 in -# 470 "parser_cocci_menhir.mly" +# 450 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let ty = Some (List.map (function x -> Type_cocci.Array x) vl) in let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in !Data.add_exp_meta ty name constraints pure; tok) ) -# 19621 "parser_cocci_menhir.ml" +# 19705 "parser_cocci_menhir.ml" in -# 316 "parser_cocci_menhir.mly" +# 296 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 19627 "parser_cocci_menhir.ml" +# 19711 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19669,21 +19753,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 19673 "parser_cocci_menhir.ml" +# 19757 "parser_cocci_menhir.ml" in -# 475 "parser_cocci_menhir.mly" +# 455 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let tok = check_meta(Ast.MetaConstDecl(arity,name,ty)) in !Data.add_const_meta ty name constraints pure; tok) ) -# 19681 "parser_cocci_menhir.ml" +# 19765 "parser_cocci_menhir.ml" in -# 316 "parser_cocci_menhir.mly" +# 296 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 19687 "parser_cocci_menhir.ml" +# 19771 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19737,21 +19821,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 19741 "parser_cocci_menhir.ml" +# 19825 "parser_cocci_menhir.ml" in -# 475 "parser_cocci_menhir.mly" +# 455 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let tok = check_meta(Ast.MetaConstDecl(arity,name,ty)) in !Data.add_const_meta ty name constraints pure; tok) ) -# 19749 "parser_cocci_menhir.ml" +# 19833 "parser_cocci_menhir.ml" in -# 316 "parser_cocci_menhir.mly" +# 296 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 19755 "parser_cocci_menhir.ml" +# 19839 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19794,17 +19878,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _endpos = _endpos__5_ in let _v : 'tv_metadec = let kindfn = -# 481 "parser_cocci_menhir.mly" +# 461 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let tok = check_meta(Ast.MetaExpDecl(arity,name,None)) in !Data.add_exp_meta None name constraints pure; tok) ) -# 19802 "parser_cocci_menhir.ml" +# 19886 "parser_cocci_menhir.ml" in -# 321 "parser_cocci_menhir.mly" +# 301 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 19808 "parser_cocci_menhir.ml" +# 19892 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19850,7 +19934,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_metadec = let kindfn = let vl = vl0 in -# 485 "parser_cocci_menhir.mly" +# 465 "parser_cocci_menhir.mly" ( (fun arity name pure check_meta constraints -> let ty = Some vl in (match constraints with @@ -19875,13 +19959,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let tok = check_meta(Ast.MetaExpDecl(arity,name,ty)) in !Data.add_exp_meta ty name constraints pure; tok) ) -# 19879 "parser_cocci_menhir.ml" +# 19963 "parser_cocci_menhir.ml" in -# 321 "parser_cocci_menhir.mly" +# 301 "parser_cocci_menhir.mly" ( P.create_metadec_with_constraints ar ispure kindfn ids ) -# 19885 "parser_cocci_menhir.ml" +# 19969 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19923,7 +20007,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_ar_ in let _endpos = _endpos__5_ in let _v : 'tv_metadec = -# 327 "parser_cocci_menhir.mly" +# 307 "parser_cocci_menhir.mly" ( (if !Data.in_generating then failwith "position variables not allowed in a generated rule file"); let kindfn arity name pure check_meta constraints = @@ -19931,7 +20015,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let any = match a with None -> Ast.PER | Some _ -> Ast.ALL in !Data.add_pos_meta name constraints any; tok in P.create_metadec_with_constraints ar false kindfn ids ) -# 19935 "parser_cocci_menhir.ml" +# 20019 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -19991,14 +20075,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_ar_ in let _endpos = _endpos__9_ in let _v : 'tv_metadec = -# 337 "parser_cocci_menhir.mly" +# 317 "parser_cocci_menhir.mly" ( P.create_len_metadec ar ispure (fun lenname arity name pure check_meta -> let tok = check_meta(Ast.MetaParamListDecl(arity,name,Some lenname)) in !Data.add_paramlist_meta name (Some lenname) pure; tok) id ids ) -# 20002 "parser_cocci_menhir.ml" +# 20086 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20058,14 +20142,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_ar_ in let _endpos = _endpos__9_ in let _v : 'tv_metadec = -# 346 "parser_cocci_menhir.mly" +# 326 "parser_cocci_menhir.mly" ( P.create_len_metadec ar ispure (fun lenname arity name pure check_meta -> let tok = check_meta(Ast.MetaExpListDecl(arity,name,Some lenname)) in !Data.add_explist_meta name (Some lenname) pure; tok) id ids ) -# 20069 "parser_cocci_menhir.ml" +# 20153 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20093,9 +20177,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_ctype_ctype_ = -# 1988 "parser_cocci_menhir.mly" +# 1972 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 20099 "parser_cocci_menhir.ml" +# 20183 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20123,9 +20207,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_eexpr_eexpr_ = -# 1988 "parser_cocci_menhir.mly" +# 1972 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 20129 "parser_cocci_menhir.ml" +# 20213 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20153,9 +20237,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_expr_eexpr_ = -# 1988 "parser_cocci_menhir.mly" +# 1972 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 20159 "parser_cocci_menhir.ml" +# 20243 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20183,9 +20267,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_fun_after_stm_fun_after_dots_or_ = -# 1988 "parser_cocci_menhir.mly" +# 1972 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 20189 "parser_cocci_menhir.ml" +# 20273 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20213,9 +20297,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_fun_start_fun_start_ = -# 1988 "parser_cocci_menhir.mly" +# 1972 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 20219 "parser_cocci_menhir.ml" +# 20303 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20243,9 +20327,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_rule_elem_statement_rule_elem_statement_ = -# 1988 "parser_cocci_menhir.mly" +# 1972 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 20249 "parser_cocci_menhir.ml" +# 20333 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20273,9 +20357,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_midzero_list_statement_statement_ = -# 1988 "parser_cocci_menhir.mly" +# 1972 "parser_cocci_menhir.mly" ( let (mids,code) = List.split b in (mids,(a::code)) ) -# 20279 "parser_cocci_menhir.ml" +# 20363 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20303,11 +20387,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_b_ in let _v : 'tv_minus_body = -# 657 "parser_cocci_menhir.mly" +# 637 "parser_cocci_menhir.mly" ( match f@b(*@ew*) with [] -> raise (Semantic_cocci.Semantic "minus slice can't be empty") | code -> Top_level.top_level code ) -# 20311 "parser_cocci_menhir.ml" +# 20395 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20335,11 +20419,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_b_ in let _v : 'tv_minus_exp_body = -# 671 "parser_cocci_menhir.mly" +# 651 "parser_cocci_menhir.mly" ( match f@[b](*@ew*) with [] -> raise (Semantic_cocci.Semantic "minus slice can't be empty") | code -> Top_level.top_level code ) -# 20343 "parser_cocci_menhir.ml" +# 20427 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20365,13 +20449,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 160 "parser_cocci_menhir.mly" +# 140 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 20371 "parser_cocci_menhir.ml" +# 20455 "parser_cocci_menhir.ml" ) = -# 200 "parser_cocci_menhir.mly" +# 180 "parser_cocci_menhir.mly" ( _1 ) -# 20375 "parser_cocci_menhir.ml" +# 20459 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20397,13 +20481,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos__2_ in let _v : ( -# 160 "parser_cocci_menhir.mly" +# 140 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 20403 "parser_cocci_menhir.ml" +# 20487 "parser_cocci_menhir.ml" ) = -# 200 "parser_cocci_menhir.mly" +# 180 "parser_cocci_menhir.mly" ( m ) -# 20407 "parser_cocci_menhir.ml" +# 20491 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20429,13 +20513,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos__2_ in let _v : ( -# 160 "parser_cocci_menhir.mly" +# 140 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 20435 "parser_cocci_menhir.ml" +# 20519 "parser_cocci_menhir.ml" ) = -# 201 "parser_cocci_menhir.mly" +# 181 "parser_cocci_menhir.mly" ( m ) -# 20439 "parser_cocci_menhir.ml" +# 20523 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20461,13 +20545,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 157 "parser_cocci_menhir.mly" +# 137 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 20467 "parser_cocci_menhir.ml" +# 20551 "parser_cocci_menhir.ml" ) = -# 196 "parser_cocci_menhir.mly" +# 176 "parser_cocci_menhir.mly" ( _1 ) -# 20471 "parser_cocci_menhir.ml" +# 20555 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20493,13 +20577,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos__2_ in let _v : ( -# 157 "parser_cocci_menhir.mly" +# 137 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 20499 "parser_cocci_menhir.ml" +# 20583 "parser_cocci_menhir.ml" ) = -# 196 "parser_cocci_menhir.mly" +# 176 "parser_cocci_menhir.mly" ( m ) -# 20503 "parser_cocci_menhir.ml" +# 20587 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20525,13 +20609,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_m_ in let _endpos = _endpos__2_ in let _v : ( -# 157 "parser_cocci_menhir.mly" +# 137 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 20531 "parser_cocci_menhir.ml" +# 20615 "parser_cocci_menhir.ml" ) = -# 197 "parser_cocci_menhir.mly" +# 177 "parser_cocci_menhir.mly" ( m ) -# 20535 "parser_cocci_menhir.ml" +# 20619 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20553,9 +20637,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_minus_start = -# 1797 "parser_cocci_menhir.mly" +# 1781 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.DECL(_1))] ) -# 20559 "parser_cocci_menhir.ml" +# 20643 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20577,9 +20661,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_minus_start = -# 1798 "parser_cocci_menhir.mly" +# 1782 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Ty(_1))))] ) -# 20583 "parser_cocci_menhir.ml" +# 20667 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20601,9 +20685,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_minus_start = -# 1799 "parser_cocci_menhir.mly" +# 1783 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.TopInit(_1))))] ) -# 20607 "parser_cocci_menhir.ml" +# 20691 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20625,9 +20709,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_minus_start = -# 1801 "parser_cocci_menhir.mly" +# 1785 "parser_cocci_menhir.mly" ( List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1 ) -# 20631 "parser_cocci_menhir.ml" +# 20715 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20652,16 +20736,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_ctype = Obj.magic b in let a : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 20658 "parser_cocci_menhir.ml" +# 20742 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_ctype_ = -# 1991 "parser_cocci_menhir.mly" +# 1975 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) -# 20665 "parser_cocci_menhir.ml" +# 20749 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20686,16 +20770,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_eexpr = Obj.magic b in let a : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 20692 "parser_cocci_menhir.ml" +# 20776 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_eexpr_ = -# 1991 "parser_cocci_menhir.mly" +# 1975 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) -# 20699 "parser_cocci_menhir.ml" +# 20783 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20720,16 +20804,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_fun_after_dots_or = Obj.magic b in let a : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 20726 "parser_cocci_menhir.ml" +# 20810 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_fun_after_dots_or_ = -# 1991 "parser_cocci_menhir.mly" +# 1975 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) -# 20733 "parser_cocci_menhir.ml" +# 20817 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20754,16 +20838,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_fun_start = Obj.magic b in let a : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 20760 "parser_cocci_menhir.ml" +# 20844 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_fun_start_ = -# 1991 "parser_cocci_menhir.mly" +# 1975 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) -# 20767 "parser_cocci_menhir.ml" +# 20851 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20788,16 +20872,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_rule_elem_statement = Obj.magic b in let a : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 20794 "parser_cocci_menhir.ml" +# 20878 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_rule_elem_statement_ = -# 1991 "parser_cocci_menhir.mly" +# 1975 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) -# 20801 "parser_cocci_menhir.ml" +# 20885 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20822,16 +20906,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_statement = Obj.magic b in let a : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 20828 "parser_cocci_menhir.ml" +# 20912 "parser_cocci_menhir.ml" ) = Obj.magic a in let _startpos = _startpos_a_ in let _endpos = _endpos_b_ in let _v : 'tv_mzl_statement_ = -# 1991 "parser_cocci_menhir.mly" +# 1975 "parser_cocci_menhir.mly" ( (P.clt2mcode "|" a, b) ) -# 20835 "parser_cocci_menhir.ml" +# 20919 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20853,9 +20937,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_name_opt_decl = -# 882 "parser_cocci_menhir.mly" +# 862 "parser_cocci_menhir.mly" ( _1 ) -# 20859 "parser_cocci_menhir.ml" +# 20943 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20904,43 +20988,43 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp1 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 20910 "parser_cocci_menhir.ml" +# 20994 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_decl_list_name_opt_decl_ = Obj.magic d in let lp1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 20916 "parser_cocci_menhir.ml" +# 21000 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let rp : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 20921 "parser_cocci_menhir.ml" +# 21005 "parser_cocci_menhir.ml" ) = Obj.magic rp in let s : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) -# 20926 "parser_cocci_menhir.ml" +# 21010 "parser_cocci_menhir.ml" ) = Obj.magic s in let lp : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 20931 "parser_cocci_menhir.ml" +# 21015 "parser_cocci_menhir.ml" ) = Obj.magic lp in let t : 'tv_ctype = Obj.magic t in let _startpos = _startpos_t_ in let _endpos = _endpos_rp1_ in let _v : 'tv_name_opt_decl = -# 885 "parser_cocci_menhir.mly" +# 865 "parser_cocci_menhir.mly" ( let fnptr = Ast0.wrap (Ast0.FunctionPointer (t,P.clt2mcode "(" lp,P.clt2mcode "*" s,P.clt2mcode ")" rp, P.clt2mcode "(" lp1,d,P.clt2mcode ")" rp1)) in Ast0.wrap(Ast0.Param(fnptr, None)) ) -# 20944 "parser_cocci_menhir.ml" +# 21028 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20968,9 +21052,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nest_after_dots = -# 1912 "parser_cocci_menhir.mly" +# 1896 "parser_cocci_menhir.mly" (_1@_2) -# 20974 "parser_cocci_menhir.ml" +# 21058 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -20996,9 +21080,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nest_after_dots = -# 1913 "parser_cocci_menhir.mly" +# 1897 "parser_cocci_menhir.mly" (_2) -# 21002 "parser_cocci_menhir.ml" +# 21086 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21026,9 +21110,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nest_after_dots = -# 1914 "parser_cocci_menhir.mly" +# 1898 "parser_cocci_menhir.mly" ((Ast0.wrap(Ast0.Exp(_1)))::_2) -# 21032 "parser_cocci_menhir.ml" +# 21116 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21043,9 +21127,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_nest_after_exp = -# 1922 "parser_cocci_menhir.mly" +# 1906 "parser_cocci_menhir.mly" ([]) -# 21049 "parser_cocci_menhir.ml" +# 21133 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21073,9 +21157,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nest_after_exp = -# 1923 "parser_cocci_menhir.mly" +# 1907 "parser_cocci_menhir.mly" (_1::_2) -# 21079 "parser_cocci_menhir.ml" +# 21163 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21090,9 +21174,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_nest_after_stm = -# 1917 "parser_cocci_menhir.mly" +# 1901 "parser_cocci_menhir.mly" ([]) -# 21096 "parser_cocci_menhir.ml" +# 21180 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21120,9 +21204,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nest_after_stm = -# 1918 "parser_cocci_menhir.mly" +# 1902 "parser_cocci_menhir.mly" (_1::_2) -# 21126 "parser_cocci_menhir.ml" +# 21210 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21150,9 +21234,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_nest_after_stm = -# 1919 "parser_cocci_menhir.mly" +# 1903 "parser_cocci_menhir.mly" (_1@_2) -# 21156 "parser_cocci_menhir.ml" +# 21240 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21181,24 +21265,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let c : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 21187 "parser_cocci_menhir.ml" +# 21271 "parser_cocci_menhir.ml" ) = Obj.magic c in let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in let _1 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 21193 "parser_cocci_menhir.ml" +# 21277 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos_c_ in let _v : 'tv_nest_expressions = -# 1271 "parser_cocci_menhir.mly" +# 1255 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<..." _1, Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))), P.clt2mcode "...>" c, None, false)) ) -# 21202 "parser_cocci_menhir.ml" +# 21286 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21227,24 +21311,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let c : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 21233 "parser_cocci_menhir.ml" +# 21317 "parser_cocci_menhir.ml" ) = Obj.magic c in let e : 'tv_expr_dots_TEllipsis_ = Obj.magic e in let _1 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 21239 "parser_cocci_menhir.ml" +# 21323 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos_c_ in let _v : 'tv_nest_expressions = -# 1275 "parser_cocci_menhir.mly" +# 1259 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.NestExpr(P.clt2mcode "<+..." _1, Ast0.wrap(Ast0.DOTS(e (P.mkedots "..."))), P.clt2mcode "...+>" c, None, true)) ) -# 21248 "parser_cocci_menhir.ml" +# 21332 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21266,9 +21350,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_nest_start = -# 1909 "parser_cocci_menhir.mly" +# 1893 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS(_1)) ) -# 21272 "parser_cocci_menhir.ml" +# 21356 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21288,13 +21372,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 191 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (unit) -# 21294 "parser_cocci_menhir.ml" +# 21378 "parser_cocci_menhir.ml" ) = -# 2058 "parser_cocci_menhir.mly" +# 2042 "parser_cocci_menhir.mly" ( () ) -# 21298 "parser_cocci_menhir.ml" +# 21382 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21318,13 +21402,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 191 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (unit) -# 21324 "parser_cocci_menhir.ml" +# 21408 "parser_cocci_menhir.ml" ) = -# 2059 "parser_cocci_menhir.mly" +# 2043 "parser_cocci_menhir.mly" ( () ) -# 21328 "parser_cocci_menhir.ml" +# 21412 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21344,13 +21428,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ( -# 191 "parser_cocci_menhir.mly" +# 171 "parser_cocci_menhir.mly" (unit) -# 21350 "parser_cocci_menhir.ml" +# 21434 "parser_cocci_menhir.ml" ) = -# 2060 "parser_cocci_menhir.mly" +# 2044 "parser_cocci_menhir.mly" ( () ) -# 21354 "parser_cocci_menhir.ml" +# 21438 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21378,10 +21462,10 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_g_ in let _endpos = _endpos_dg_ in let _v : 'tv_no_dot_start_end_dexpr_edots_when_TEllipsis_eexpr__ = -# 1439 "parser_cocci_menhir.mly" +# 1423 "parser_cocci_menhir.mly" ( function dot_builder -> g :: (List.concat(List.map (function (d,g) -> [dot_builder d;g]) dg)) ) -# 21385 "parser_cocci_menhir.ml" +# 21469 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21400,16 +21484,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let x : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) -# 21406 "parser_cocci_menhir.ml" +# 21490 "parser_cocci_menhir.ml" ) = Obj.magic x in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : 'tv_nonempty_list_TMul_ = # 124 "standard.mly" ( [ x ] ) -# 21413 "parser_cocci_menhir.ml" +# 21497 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21434,16 +21518,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let xs : 'tv_nonempty_list_TMul_ = Obj.magic xs in let x : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) -# 21440 "parser_cocci_menhir.ml" +# 21524 "parser_cocci_menhir.ml" ) = Obj.magic x in let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in let _v : 'tv_nonempty_list_TMul_ = # 126 "standard.mly" ( x :: xs ) -# 21447 "parser_cocci_menhir.ml" +# 21531 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21469,13 +21553,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_i_ in let _v : 'tv_not_ceq = -# 1612 "parser_cocci_menhir.mly" +# 1596 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating then failwith "constraints not allowed in a generated rule file"); [i] ) -# 21479 "parser_cocci_menhir.ml" +# 21563 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21509,13 +21593,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_not_ceq = -# 1618 "parser_cocci_menhir.mly" +# 1602 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating then failwith "constraints not allowed in a generated rule file"); l ) -# 21519 "parser_cocci_menhir.ml" +# 21603 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21537,9 +21621,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_ceq_ in let _endpos = _endpos_ceq_ in let _v : 'tv_not_ceq_or_sub = -# 1588 "parser_cocci_menhir.mly" +# 1572 "parser_cocci_menhir.mly" (Ast0.NotExpCstrt ceq) -# 21543 "parser_cocci_menhir.ml" +# 21627 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21561,9 +21645,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_not_ceq_or_sub = -# 1589 "parser_cocci_menhir.mly" +# 1573 "parser_cocci_menhir.mly" (Ast0.SubExpCstrt s) -# 21567 "parser_cocci_menhir.ml" +# 21651 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21589,14 +21673,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_i_ in let _v : 'tv_not_eqe = -# 1593 "parser_cocci_menhir.mly" +# 1577 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating then failwith "constraints not allowed in a generated rule file"); [Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i))))] ) -# 21600 "parser_cocci_menhir.ml" +# 21684 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21630,7 +21714,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_not_eqe = -# 1600 "parser_cocci_menhir.mly" +# 1584 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -21640,7 +21724,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct Ast0.wrap(Ast0.Ident(Ast0.wrap(Ast0.Id(P.id2mcode i))))) l ) -# 21644 "parser_cocci_menhir.ml" +# 21728 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21666,7 +21750,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_i_ in let _v : 'tv_not_eqid = -# 1550 "parser_cocci_menhir.mly" +# 1534 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -21680,7 +21764,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (function mv -> Ast.MetaIdDecl(Ast.NONE,mv)) in Ast.IdNegIdSet([],[i]) | (None,i) -> Ast.IdNegIdSet([i],[])) ) -# 21684 "parser_cocci_menhir.ml" +# 21768 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21714,7 +21798,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_not_eqid = -# 1564 "parser_cocci_menhir.mly" +# 1548 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -21732,7 +21816,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct ([],[]) l in Ast.IdNegIdSet(str,meta) ) -# 21736 "parser_cocci_menhir.ml" +# 21820 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21758,7 +21842,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_i_ in let _v : 'tv_not_pos = -# 1656 "parser_cocci_menhir.mly" +# 1640 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -21767,7 +21851,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct P.check_inherited_constraint i (function mv -> Ast.MetaPosDecl(Ast.NONE,mv)) in [i] ) -# 21771 "parser_cocci_menhir.ml" +# 21855 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21801,7 +21885,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_not_pos = -# 1665 "parser_cocci_menhir.mly" +# 1649 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -21811,7 +21895,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct P.check_inherited_constraint i (function mv -> Ast.MetaPosDecl(Ast.NONE,mv))) l ) -# 21815 "parser_cocci_menhir.ml" +# 21899 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21833,9 +21917,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_one_dec_decl_ = -# 1735 "parser_cocci_menhir.mly" +# 1719 "parser_cocci_menhir.mly" ( _1 ) -# 21839 "parser_cocci_menhir.ml" +# 21923 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21854,14 +21938,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 89 "parser_cocci_menhir.mly" +# 69 "parser_cocci_menhir.mly" (Parse_aux.list_info) -# 21860 "parser_cocci_menhir.ml" +# 21944 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_one_dec_decl_ = -# 1737 "parser_cocci_menhir.mly" +# 1721 "parser_cocci_menhir.mly" ( let (nm,lenname,pure,clt) = _1 in let nm = P.clt2mcode nm clt in let lenname = @@ -21869,7 +21953,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct Some nm -> Some(P.clt2mcode nm clt) | None -> None in Ast0.wrap(Ast0.MetaParamList(nm,lenname,pure)) ) -# 21873 "parser_cocci_menhir.ml" +# 21957 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21891,9 +21975,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_one_dec_name_opt_decl_ = -# 1735 "parser_cocci_menhir.mly" +# 1719 "parser_cocci_menhir.mly" ( _1 ) -# 21897 "parser_cocci_menhir.ml" +# 21981 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21912,14 +21996,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 89 "parser_cocci_menhir.mly" +# 69 "parser_cocci_menhir.mly" (Parse_aux.list_info) -# 21918 "parser_cocci_menhir.ml" +# 22002 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_one_dec_name_opt_decl_ = -# 1737 "parser_cocci_menhir.mly" +# 1721 "parser_cocci_menhir.mly" ( let (nm,lenname,pure,clt) = _1 in let nm = P.clt2mcode nm clt in let lenname = @@ -21927,7 +22011,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct Some nm -> Some(P.clt2mcode nm clt) | None -> None in Ast0.wrap(Ast0.MetaParamList(nm,lenname,pure)) ) -# 21931 "parser_cocci_menhir.ml" +# 22015 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21951,17 +22035,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 21957 "parser_cocci_menhir.ml" +# 22041 "parser_cocci_menhir.ml" ) = Obj.magic pv in let t : 'tv_ctype = Obj.magic t in let _startpos = _startpos_t_ in let _endpos = _endpos_pv_ in let _v : 'tv_one_decl_var = -# 1060 "parser_cocci_menhir.mly" +# 1040 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TyDecl(t,P.clt2mcode ";" pv)) ) -# 21965 "parser_cocci_menhir.ml" +# 22049 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -21990,9 +22074,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 21996 "parser_cocci_menhir.ml" +# 22080 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_d_ident = Obj.magic d in let t : 'tv_ctype = Obj.magic t in @@ -22002,14 +22086,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 22006 "parser_cocci_menhir.ml" +# 22090 "parser_cocci_menhir.ml" in -# 1062 "parser_cocci_menhir.mly" +# 1042 "parser_cocci_menhir.mly" ( let (id,fn) = d in Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) ) -# 22013 "parser_cocci_menhir.ml" +# 22097 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22043,9 +22127,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22049 "parser_cocci_menhir.ml" +# 22133 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_d_ident = Obj.magic d in let t : 'tv_ctype = Obj.magic t in @@ -22057,14 +22141,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 22061 "parser_cocci_menhir.ml" +# 22145 "parser_cocci_menhir.ml" in -# 1062 "parser_cocci_menhir.mly" +# 1042 "parser_cocci_menhir.mly" ( let (id,fn) = d in Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) ) -# 22068 "parser_cocci_menhir.ml" +# 22152 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22086,9 +22170,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_f_ in let _v : 'tv_one_decl_var = -# 1064 "parser_cocci_menhir.mly" +# 1044 "parser_cocci_menhir.mly" ( f ) -# 22092 "parser_cocci_menhir.ml" +# 22176 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22127,15 +22211,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22133 "parser_cocci_menhir.ml" +# 22217 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22139 "parser_cocci_menhir.ml" +# 22223 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let t : 'tv_ctype = Obj.magic t in @@ -22145,14 +22229,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 22149 "parser_cocci_menhir.ml" +# 22233 "parser_cocci_menhir.ml" in -# 1066 "parser_cocci_menhir.mly" +# 1046 "parser_cocci_menhir.mly" ( let (id,fn) = d in Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)) ) -# 22156 "parser_cocci_menhir.ml" +# 22240 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22196,15 +22280,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22202 "parser_cocci_menhir.ml" +# 22286 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22208 "parser_cocci_menhir.ml" +# 22292 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let t : 'tv_ctype = Obj.magic t in @@ -22216,14 +22300,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 22220 "parser_cocci_menhir.ml" +# 22304 "parser_cocci_menhir.ml" in -# 1066 "parser_cocci_menhir.mly" +# 1046 "parser_cocci_menhir.mly" ( let (id,fn) = d in Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv)) ) -# 22227 "parser_cocci_menhir.ml" +# 22311 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22252,9 +22336,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22258 "parser_cocci_menhir.ml" +# 22342 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident = Obj.magic i in @@ -22264,22 +22348,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 22268 "parser_cocci_menhir.ml" +# 22352 "parser_cocci_menhir.ml" in let s = # 39 "standard.mly" ( None ) -# 22275 "parser_cocci_menhir.ml" +# 22359 "parser_cocci_menhir.ml" in -# 1071 "parser_cocci_menhir.mly" +# 1051 "parser_cocci_menhir.mly" ( let (id,fn) = d in let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) ) -# 22283 "parser_cocci_menhir.ml" +# 22367 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22313,9 +22397,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22319 "parser_cocci_menhir.ml" +# 22403 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident = Obj.magic i in @@ -22327,22 +22411,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 22331 "parser_cocci_menhir.ml" +# 22415 "parser_cocci_menhir.ml" in let s = # 39 "standard.mly" ( None ) -# 22338 "parser_cocci_menhir.ml" +# 22422 "parser_cocci_menhir.ml" in -# 1071 "parser_cocci_menhir.mly" +# 1051 "parser_cocci_menhir.mly" ( let (id,fn) = d in let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) ) -# 22346 "parser_cocci_menhir.ml" +# 22430 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22376,9 +22460,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22382 "parser_cocci_menhir.ml" +# 22466 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident = Obj.magic i in @@ -22389,7 +22473,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 22393 "parser_cocci_menhir.ml" +# 22477 "parser_cocci_menhir.ml" in let s = @@ -22397,15 +22481,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 22401 "parser_cocci_menhir.ml" +# 22485 "parser_cocci_menhir.ml" in -# 1071 "parser_cocci_menhir.mly" +# 1051 "parser_cocci_menhir.mly" ( let (id,fn) = d in let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) ) -# 22409 "parser_cocci_menhir.ml" +# 22493 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22444,9 +22528,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22450 "parser_cocci_menhir.ml" +# 22534 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident = Obj.magic i in @@ -22459,7 +22543,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 22463 "parser_cocci_menhir.ml" +# 22547 "parser_cocci_menhir.ml" in let s = @@ -22467,15 +22551,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 22471 "parser_cocci_menhir.ml" +# 22555 "parser_cocci_menhir.ml" in -# 1071 "parser_cocci_menhir.mly" +# 1051 "parser_cocci_menhir.mly" ( let (id,fn) = d in let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in Ast0.wrap(Ast0.UnInit(s,fn idtype,id,P.clt2mcode ";" pv)) ) -# 22479 "parser_cocci_menhir.ml" +# 22563 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22514,15 +22598,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22520 "parser_cocci_menhir.ml" +# 22604 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22526 "parser_cocci_menhir.ml" +# 22610 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident = Obj.magic i in @@ -22532,24 +22616,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 22536 "parser_cocci_menhir.ml" +# 22620 "parser_cocci_menhir.ml" in let s = # 39 "standard.mly" ( None ) -# 22543 "parser_cocci_menhir.ml" +# 22627 "parser_cocci_menhir.ml" in -# 1076 "parser_cocci_menhir.mly" +# 1056 "parser_cocci_menhir.mly" ( let (id,fn) = d in !Data.add_type_name (P.id2name i); let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, P.clt2mcode ";" pv)) ) -# 22553 "parser_cocci_menhir.ml" +# 22637 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22593,15 +22677,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22599 "parser_cocci_menhir.ml" +# 22683 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22605 "parser_cocci_menhir.ml" +# 22689 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident = Obj.magic i in @@ -22613,24 +22697,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 22617 "parser_cocci_menhir.ml" +# 22701 "parser_cocci_menhir.ml" in let s = # 39 "standard.mly" ( None ) -# 22624 "parser_cocci_menhir.ml" +# 22708 "parser_cocci_menhir.ml" in -# 1076 "parser_cocci_menhir.mly" +# 1056 "parser_cocci_menhir.mly" ( let (id,fn) = d in !Data.add_type_name (P.id2name i); let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, P.clt2mcode ";" pv)) ) -# 22634 "parser_cocci_menhir.ml" +# 22718 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22674,15 +22758,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22680 "parser_cocci_menhir.ml" +# 22764 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22686 "parser_cocci_menhir.ml" +# 22770 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident = Obj.magic i in @@ -22693,7 +22777,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 22697 "parser_cocci_menhir.ml" +# 22781 "parser_cocci_menhir.ml" in let s = @@ -22701,17 +22785,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 22705 "parser_cocci_menhir.ml" +# 22789 "parser_cocci_menhir.ml" in -# 1076 "parser_cocci_menhir.mly" +# 1056 "parser_cocci_menhir.mly" ( let (id,fn) = d in !Data.add_type_name (P.id2name i); let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, P.clt2mcode ";" pv)) ) -# 22715 "parser_cocci_menhir.ml" +# 22799 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22760,15 +22844,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22766 "parser_cocci_menhir.ml" +# 22850 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22772 "parser_cocci_menhir.ml" +# 22856 "parser_cocci_menhir.ml" ) = Obj.magic q in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident = Obj.magic i in @@ -22781,7 +22865,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 22785 "parser_cocci_menhir.ml" +# 22869 "parser_cocci_menhir.ml" in let s = @@ -22789,17 +22873,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 22793 "parser_cocci_menhir.ml" +# 22877 "parser_cocci_menhir.ml" in -# 1076 "parser_cocci_menhir.mly" +# 1056 "parser_cocci_menhir.mly" ( let (id,fn) = d in !Data.add_type_name (P.id2name i); let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in Ast0.wrap(Ast0.Init(s,fn idtype,id,P.clt2mcode "=" q,e, P.clt2mcode ";" pv)) ) -# 22803 "parser_cocci_menhir.ml" +# 22887 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22858,36 +22942,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22864 "parser_cocci_menhir.ml" +# 22948 "parser_cocci_menhir.ml" ) = Obj.magic pv in let rp2 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 22869 "parser_cocci_menhir.ml" +# 22953 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 22875 "parser_cocci_menhir.ml" +# 22959 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 22880 "parser_cocci_menhir.ml" +# 22964 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) -# 22886 "parser_cocci_menhir.ml" +# 22970 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 22891 "parser_cocci_menhir.ml" +# 22975 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let t : 'tv_ctype = Obj.magic t in let _startpos = _startpos_t_ in @@ -22896,11 +22980,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 22900 "parser_cocci_menhir.ml" +# 22984 "parser_cocci_menhir.ml" in -# 1086 "parser_cocci_menhir.mly" +# 1066 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -22908,7 +22992,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) ) -# 22912 "parser_cocci_menhir.ml" +# 22996 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -22972,36 +23056,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 22978 "parser_cocci_menhir.ml" +# 23062 "parser_cocci_menhir.ml" ) = Obj.magic pv in let rp2 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 22983 "parser_cocci_menhir.ml" +# 23067 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 22989 "parser_cocci_menhir.ml" +# 23073 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 22994 "parser_cocci_menhir.ml" +# 23078 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) -# 23000 "parser_cocci_menhir.ml" +# 23084 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 23005 "parser_cocci_menhir.ml" +# 23089 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let t : 'tv_ctype = Obj.magic t in let x0 : 'tv_storage = Obj.magic x0 in @@ -23012,11 +23096,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 23016 "parser_cocci_menhir.ml" +# 23100 "parser_cocci_menhir.ml" in -# 1086 "parser_cocci_menhir.mly" +# 1066 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -23024,7 +23108,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in Ast0.wrap(Ast0.UnInit(s,fn t,id,P.clt2mcode ";" pv)) ) -# 23028 "parser_cocci_menhir.ml" +# 23112 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23063,29 +23147,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _5 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 23069 "parser_cocci_menhir.ml" +# 23153 "parser_cocci_menhir.ml" ) = Obj.magic _5 in let _4 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 23074 "parser_cocci_menhir.ml" +# 23158 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 23080 "parser_cocci_menhir.ml" +# 23164 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_decl_ident = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : 'tv_one_decl_var = -# 1094 "parser_cocci_menhir.mly" +# 1074 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.MacroDecl(_1,P.clt2mcode "(" _2,_3, P.clt2mcode ")" _4,P.clt2mcode ";" _5)) ) -# 23089 "parser_cocci_menhir.ml" +# 23173 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23154,42 +23238,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 23160 "parser_cocci_menhir.ml" +# 23244 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 23166 "parser_cocci_menhir.ml" +# 23250 "parser_cocci_menhir.ml" ) = Obj.magic q in let rp2 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 23171 "parser_cocci_menhir.ml" +# 23255 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 23177 "parser_cocci_menhir.ml" +# 23261 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 23182 "parser_cocci_menhir.ml" +# 23266 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) -# 23188 "parser_cocci_menhir.ml" +# 23272 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 23193 "parser_cocci_menhir.ml" +# 23277 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let t : 'tv_ctype = Obj.magic t in let _startpos = _startpos_t_ in @@ -23198,11 +23282,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 23202 "parser_cocci_menhir.ml" +# 23286 "parser_cocci_menhir.ml" in -# 1100 "parser_cocci_menhir.mly" +# 1080 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -23210,7 +23294,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))) -# 23214 "parser_cocci_menhir.ml" +# 23298 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23284,42 +23368,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 23290 "parser_cocci_menhir.ml" +# 23374 "parser_cocci_menhir.ml" ) = Obj.magic pv in let e : 'tv_initialize = Obj.magic e in let q : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 23296 "parser_cocci_menhir.ml" +# 23380 "parser_cocci_menhir.ml" ) = Obj.magic q in let rp2 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 23301 "parser_cocci_menhir.ml" +# 23385 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 23307 "parser_cocci_menhir.ml" +# 23391 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 23312 "parser_cocci_menhir.ml" +# 23396 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) -# 23318 "parser_cocci_menhir.ml" +# 23402 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 23323 "parser_cocci_menhir.ml" +# 23407 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let t : 'tv_ctype = Obj.magic t in let x0 : 'tv_storage = Obj.magic x0 in @@ -23330,11 +23414,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 23334 "parser_cocci_menhir.ml" +# 23418 "parser_cocci_menhir.ml" in -# 1100 "parser_cocci_menhir.mly" +# 1080 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -23342,7 +23426,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in Ast0.wrap(Ast0.Init(s,fn t,id,P.clt2mcode "=" q,e,P.clt2mcode ";" pv))) -# 23346 "parser_cocci_menhir.ml" +# 23430 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23359,7 +23443,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_TLocal_ = # 29 "standard.mly" ( None ) -# 23363 "parser_cocci_menhir.ml" +# 23447 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23383,7 +23467,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_TLocal_ = # 31 "standard.mly" ( Some x ) -# 23387 "parser_cocci_menhir.ml" +# 23471 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23400,7 +23484,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_TPosAny_ = # 29 "standard.mly" ( None ) -# 23404 "parser_cocci_menhir.ml" +# 23488 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23424,7 +23508,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_TPosAny_ = # 31 "standard.mly" ( Some x ) -# 23428 "parser_cocci_menhir.ml" +# 23512 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23441,7 +23525,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_eexpr_ = # 29 "standard.mly" ( None ) -# 23445 "parser_cocci_menhir.ml" +# 23529 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23465,7 +23549,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_eexpr_ = # 31 "standard.mly" ( Some x ) -# 23469 "parser_cocci_menhir.ml" +# 23553 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23482,7 +23566,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_not_ceq_or_sub_ = # 29 "standard.mly" ( None ) -# 23486 "parser_cocci_menhir.ml" +# 23570 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23506,7 +23590,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_not_ceq_or_sub_ = # 31 "standard.mly" ( Some x ) -# 23510 "parser_cocci_menhir.ml" +# 23594 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23523,7 +23607,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_re_or_not_eqe_or_sub_ = # 29 "standard.mly" ( None ) -# 23527 "parser_cocci_menhir.ml" +# 23611 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23547,7 +23631,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_re_or_not_eqe_or_sub_ = # 31 "standard.mly" ( Some x ) -# 23551 "parser_cocci_menhir.ml" +# 23635 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23564,7 +23648,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_re_or_not_eqid_ = # 29 "standard.mly" ( None ) -# 23568 "parser_cocci_menhir.ml" +# 23652 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23588,7 +23672,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_option_re_or_not_eqid_ = # 31 "standard.mly" ( Some x ) -# 23592 "parser_cocci_menhir.ml" +# 23676 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23603,9 +23687,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_plus_after_dots = -# 1859 "parser_cocci_menhir.mly" +# 1843 "parser_cocci_menhir.mly" ([]) -# 23609 "parser_cocci_menhir.ml" +# 23693 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23631,9 +23715,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_dots = -# 1860 "parser_cocci_menhir.mly" +# 1844 "parser_cocci_menhir.mly" (_2) -# 23637 "parser_cocci_menhir.ml" +# 23721 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23661,9 +23745,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_dots = -# 1862 "parser_cocci_menhir.mly" +# 1846 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))))::_2 ) -# 23667 "parser_cocci_menhir.ml" +# 23751 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23691,9 +23775,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_dots = -# 1863 "parser_cocci_menhir.mly" +# 1847 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DECL(_1))::_2 ) -# 23697 "parser_cocci_menhir.ml" +# 23781 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23721,9 +23805,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_dots = -# 1865 "parser_cocci_menhir.mly" +# 1849 "parser_cocci_menhir.mly" ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 ) -# 23727 "parser_cocci_menhir.ml" +# 23811 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23738,9 +23822,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_plus_after_exp = -# 1855 "parser_cocci_menhir.mly" +# 1839 "parser_cocci_menhir.mly" ([]) -# 23744 "parser_cocci_menhir.ml" +# 23828 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23768,9 +23852,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_exp = -# 1856 "parser_cocci_menhir.mly" +# 1840 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 ) -# 23774 "parser_cocci_menhir.ml" +# 23858 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23785,9 +23869,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_plus_after_stm = -# 1868 "parser_cocci_menhir.mly" +# 1852 "parser_cocci_menhir.mly" ([]) -# 23791 "parser_cocci_menhir.ml" +# 23875 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23815,9 +23899,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_stm = -# 1869 "parser_cocci_menhir.mly" +# 1853 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 ) -# 23821 "parser_cocci_menhir.ml" +# 23905 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23845,9 +23929,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_stm = -# 1870 "parser_cocci_menhir.mly" +# 1854 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DECL(_1))::_2 ) -# 23851 "parser_cocci_menhir.ml" +# 23935 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23875,9 +23959,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_after_stm = -# 1872 "parser_cocci_menhir.mly" +# 1856 "parser_cocci_menhir.mly" ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 ) -# 23881 "parser_cocci_menhir.ml" +# 23965 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23905,9 +23989,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_b_ in let _v : 'tv_plus_body = -# 665 "parser_cocci_menhir.mly" +# 645 "parser_cocci_menhir.mly" ( Top_level.top_level (f@b(*@ew*)) ) -# 23911 "parser_cocci_menhir.ml" +# 23995 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23935,9 +24019,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_f_ in let _endpos = _endpos_b_ in let _v : 'tv_plus_exp_body = -# 679 "parser_cocci_menhir.mly" +# 659 "parser_cocci_menhir.mly" ( Top_level.top_level (f@[b](*@ew*)) ) -# 23941 "parser_cocci_menhir.ml" +# 24025 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23963,13 +24047,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 166 "parser_cocci_menhir.mly" +# 146 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 23969 "parser_cocci_menhir.ml" +# 24053 "parser_cocci_menhir.ml" ) = -# 202 "parser_cocci_menhir.mly" +# 182 "parser_cocci_menhir.mly" ( _1 ) -# 23973 "parser_cocci_menhir.ml" +# 24057 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -23995,13 +24079,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_p_ in let _endpos = _endpos__2_ in let _v : ( -# 166 "parser_cocci_menhir.mly" +# 146 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 24001 "parser_cocci_menhir.ml" +# 24085 "parser_cocci_menhir.ml" ) = -# 202 "parser_cocci_menhir.mly" +# 182 "parser_cocci_menhir.mly" ( p ) -# 24005 "parser_cocci_menhir.ml" +# 24089 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24027,13 +24111,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_p_ in let _endpos = _endpos__2_ in let _v : ( -# 166 "parser_cocci_menhir.mly" +# 146 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 24033 "parser_cocci_menhir.ml" +# 24117 "parser_cocci_menhir.ml" ) = -# 203 "parser_cocci_menhir.mly" +# 183 "parser_cocci_menhir.mly" ( p ) -# 24037 "parser_cocci_menhir.ml" +# 24121 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24059,13 +24143,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : ( -# 163 "parser_cocci_menhir.mly" +# 143 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 24065 "parser_cocci_menhir.ml" +# 24149 "parser_cocci_menhir.ml" ) = -# 198 "parser_cocci_menhir.mly" +# 178 "parser_cocci_menhir.mly" ( _1 ) -# 24069 "parser_cocci_menhir.ml" +# 24153 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24091,13 +24175,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_p_ in let _endpos = _endpos__2_ in let _v : ( -# 163 "parser_cocci_menhir.mly" +# 143 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 24097 "parser_cocci_menhir.ml" +# 24181 "parser_cocci_menhir.ml" ) = -# 198 "parser_cocci_menhir.mly" +# 178 "parser_cocci_menhir.mly" ( p ) -# 24101 "parser_cocci_menhir.ml" +# 24185 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24123,13 +24207,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_p_ in let _endpos = _endpos__2_ in let _v : ( -# 163 "parser_cocci_menhir.mly" +# 143 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 24129 "parser_cocci_menhir.ml" +# 24213 "parser_cocci_menhir.ml" ) = -# 199 "parser_cocci_menhir.mly" +# 179 "parser_cocci_menhir.mly" ( p ) -# 24133 "parser_cocci_menhir.ml" +# 24217 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24151,9 +24235,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_plus_start = -# 1844 "parser_cocci_menhir.mly" +# 1828 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Ty(_1))))] ) -# 24157 "parser_cocci_menhir.ml" +# 24241 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24175,9 +24259,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_plus_start = -# 1845 "parser_cocci_menhir.mly" +# 1829 "parser_cocci_menhir.mly" ( [Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.TopInit(_1))))] ) -# 24181 "parser_cocci_menhir.ml" +# 24265 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24205,9 +24289,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_start = -# 1847 "parser_cocci_menhir.mly" +# 1831 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.OTHER(_1)))::_2 ) -# 24211 "parser_cocci_menhir.ml" +# 24295 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24235,9 +24319,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_start = -# 1849 "parser_cocci_menhir.mly" +# 1833 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))))::_2 ) -# 24241 "parser_cocci_menhir.ml" +# 24325 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24265,9 +24349,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_start = -# 1850 "parser_cocci_menhir.mly" +# 1834 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DECL(_1))::_2 ) -# 24271 "parser_cocci_menhir.ml" +# 24355 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24295,9 +24379,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_plus_start = -# 1852 "parser_cocci_menhir.mly" +# 1836 "parser_cocci_menhir.mly" ( (List.map (function x -> Ast0.wrap(Ast0.OTHER(x))) _1)@_2 ) -# 24301 "parser_cocci_menhir.ml" +# 24385 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24316,16 +24400,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 24322 "parser_cocci_menhir.ml" +# 24406 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pnrule = -# 253 "parser_cocci_menhir.mly" +# 233 "parser_cocci_menhir.mly" ( Ast.Dep _1 ) -# 24329 "parser_cocci_menhir.ml" +# 24413 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24348,16 +24432,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 24354 "parser_cocci_menhir.ml" +# 24438 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_pnrule = -# 254 "parser_cocci_menhir.mly" +# 234 "parser_cocci_menhir.mly" ( Ast.AntiDep _2 ) -# 24361 "parser_cocci_menhir.ml" +# 24445 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24380,16 +24464,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 24386 "parser_cocci_menhir.ml" +# 24470 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_pnrule = -# 255 "parser_cocci_menhir.mly" +# 235 "parser_cocci_menhir.mly" ( Ast.EverDep _2 ) -# 24393 "parser_cocci_menhir.ml" +# 24477 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24412,16 +24496,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 24418 "parser_cocci_menhir.ml" +# 24502 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_pnrule = -# 256 "parser_cocci_menhir.mly" +# 236 "parser_cocci_menhir.mly" ( Ast.NeverDep _2 ) -# 24425 "parser_cocci_menhir.ml" +# 24509 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24451,9 +24535,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_pnrule = -# 257 "parser_cocci_menhir.mly" +# 237 "parser_cocci_menhir.mly" ( _2 ) -# 24457 "parser_cocci_menhir.ml" +# 24541 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24475,9 +24559,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1372 "parser_cocci_menhir.mly" +# 1356 "parser_cocci_menhir.mly" ( _1 ) -# 24481 "parser_cocci_menhir.ml" +# 24565 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24511,24 +24595,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 125 "parser_cocci_menhir.mly" +# 105 "parser_cocci_menhir.mly" (Data.clt) -# 24517 "parser_cocci_menhir.ml" +# 24601 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 125 "parser_cocci_menhir.mly" +# 105 "parser_cocci_menhir.mly" (Data.clt) -# 24523 "parser_cocci_menhir.ml" +# 24607 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1374 "parser_cocci_menhir.mly" +# 1358 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, P.clt2mcode "]" _4)) ) -# 24532 "parser_cocci_menhir.ml" +# 24616 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24558,17 +24642,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_ident = Obj.magic _3 in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 24564 "parser_cocci_menhir.ml" +# 24648 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1377 "parser_cocci_menhir.mly" +# 1361 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) -# 24572 "parser_cocci_menhir.ml" +# 24656 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24598,18 +24682,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_ident = Obj.magic _3 in let _2 : ( -# 127 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) -# 24604 "parser_cocci_menhir.ml" +# 24688 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1379 "parser_cocci_menhir.mly" +# 1363 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, _3)) ) -# 24613 "parser_cocci_menhir.ml" +# 24697 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24633,17 +24717,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 108 "parser_cocci_menhir.mly" +# 88 "parser_cocci_menhir.mly" (Data.clt) -# 24639 "parser_cocci_menhir.ml" +# 24723 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1382 "parser_cocci_menhir.mly" +# 1366 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) -# 24647 "parser_cocci_menhir.ml" +# 24731 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24667,17 +24751,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 108 "parser_cocci_menhir.mly" +# 88 "parser_cocci_menhir.mly" (Data.clt) -# 24673 "parser_cocci_menhir.ml" +# 24757 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1384 "parser_cocci_menhir.mly" +# 1368 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) -# 24681 "parser_cocci_menhir.ml" +# 24765 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24711,25 +24795,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 24717 "parser_cocci_menhir.ml" +# 24801 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 24723 "parser_cocci_menhir.ml" +# 24807 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_eexpr_dot_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_postfix_expr_eexpr_dot_expressions_ = -# 1386 "parser_cocci_menhir.mly" +# 1370 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, _3, P.clt2mcode ")" _4)) ) -# 24733 "parser_cocci_menhir.ml" +# 24817 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24751,9 +24835,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1372 "parser_cocci_menhir.mly" +# 1356 "parser_cocci_menhir.mly" ( _1 ) -# 24757 "parser_cocci_menhir.ml" +# 24841 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24787,24 +24871,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 125 "parser_cocci_menhir.mly" +# 105 "parser_cocci_menhir.mly" (Data.clt) -# 24793 "parser_cocci_menhir.ml" +# 24877 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 125 "parser_cocci_menhir.mly" +# 105 "parser_cocci_menhir.mly" (Data.clt) -# 24799 "parser_cocci_menhir.ml" +# 24883 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1374 "parser_cocci_menhir.mly" +# 1358 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, P.clt2mcode "]" _4)) ) -# 24808 "parser_cocci_menhir.ml" +# 24892 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24834,17 +24918,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_ident = Obj.magic _3 in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 24840 "parser_cocci_menhir.ml" +# 24924 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1377 "parser_cocci_menhir.mly" +# 1361 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) -# 24848 "parser_cocci_menhir.ml" +# 24932 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24874,18 +24958,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_ident = Obj.magic _3 in let _2 : ( -# 127 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) -# 24880 "parser_cocci_menhir.ml" +# 24964 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1379 "parser_cocci_menhir.mly" +# 1363 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, _3)) ) -# 24889 "parser_cocci_menhir.ml" +# 24973 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24909,17 +24993,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 108 "parser_cocci_menhir.mly" +# 88 "parser_cocci_menhir.mly" (Data.clt) -# 24915 "parser_cocci_menhir.ml" +# 24999 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1382 "parser_cocci_menhir.mly" +# 1366 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) -# 24923 "parser_cocci_menhir.ml" +# 25007 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24943,17 +25027,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 108 "parser_cocci_menhir.mly" +# 88 "parser_cocci_menhir.mly" (Data.clt) -# 24949 "parser_cocci_menhir.ml" +# 25033 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1384 "parser_cocci_menhir.mly" +# 1368 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) -# 24957 "parser_cocci_menhir.ml" +# 25041 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -24987,25 +25071,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 24993 "parser_cocci_menhir.ml" +# 25077 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 24999 "parser_cocci_menhir.ml" +# 25083 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_eexpr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_postfix_expr_eexpr_invalid_ = -# 1386 "parser_cocci_menhir.mly" +# 1370 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, _3, P.clt2mcode ")" _4)) ) -# 25009 "parser_cocci_menhir.ml" +# 25093 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25027,9 +25111,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1372 "parser_cocci_menhir.mly" +# 1356 "parser_cocci_menhir.mly" ( _1 ) -# 25033 "parser_cocci_menhir.ml" +# 25117 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25063,24 +25147,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 125 "parser_cocci_menhir.mly" +# 105 "parser_cocci_menhir.mly" (Data.clt) -# 25069 "parser_cocci_menhir.ml" +# 25153 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 125 "parser_cocci_menhir.mly" +# 105 "parser_cocci_menhir.mly" (Data.clt) -# 25075 "parser_cocci_menhir.ml" +# 25159 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1374 "parser_cocci_menhir.mly" +# 1358 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, P.clt2mcode "]" _4)) ) -# 25084 "parser_cocci_menhir.ml" +# 25168 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25110,17 +25194,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_ident = Obj.magic _3 in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 25116 "parser_cocci_menhir.ml" +# 25200 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1377 "parser_cocci_menhir.mly" +# 1361 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) -# 25124 "parser_cocci_menhir.ml" +# 25208 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25150,18 +25234,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_ident = Obj.magic _3 in let _2 : ( -# 127 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) -# 25156 "parser_cocci_menhir.ml" +# 25240 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1379 "parser_cocci_menhir.mly" +# 1363 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, _3)) ) -# 25165 "parser_cocci_menhir.ml" +# 25249 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25185,17 +25269,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 108 "parser_cocci_menhir.mly" +# 88 "parser_cocci_menhir.mly" (Data.clt) -# 25191 "parser_cocci_menhir.ml" +# 25275 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1382 "parser_cocci_menhir.mly" +# 1366 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) -# 25199 "parser_cocci_menhir.ml" +# 25283 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25219,17 +25303,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 108 "parser_cocci_menhir.mly" +# 88 "parser_cocci_menhir.mly" (Data.clt) -# 25225 "parser_cocci_menhir.ml" +# 25309 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1384 "parser_cocci_menhir.mly" +# 1368 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) -# 25233 "parser_cocci_menhir.ml" +# 25317 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25263,25 +25347,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 25269 "parser_cocci_menhir.ml" +# 25353 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 25275 "parser_cocci_menhir.ml" +# 25359 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_eexpr_nest_expressions_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_postfix_expr_eexpr_nest_expressions_ = -# 1386 "parser_cocci_menhir.mly" +# 1370 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, _3, P.clt2mcode ")" _4)) ) -# 25285 "parser_cocci_menhir.ml" +# 25369 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25303,9 +25387,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_postfix_expr_expr_invalid_ = -# 1372 "parser_cocci_menhir.mly" +# 1356 "parser_cocci_menhir.mly" ( _1 ) -# 25309 "parser_cocci_menhir.ml" +# 25393 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25339,24 +25423,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 125 "parser_cocci_menhir.mly" +# 105 "parser_cocci_menhir.mly" (Data.clt) -# 25345 "parser_cocci_menhir.ml" +# 25429 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 125 "parser_cocci_menhir.mly" +# 105 "parser_cocci_menhir.mly" (Data.clt) -# 25351 "parser_cocci_menhir.ml" +# 25435 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_postfix_expr_expr_invalid_ = -# 1374 "parser_cocci_menhir.mly" +# 1358 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.ArrayAccess (_1,P.clt2mcode "[" _2,_3, P.clt2mcode "]" _4)) ) -# 25360 "parser_cocci_menhir.ml" +# 25444 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25386,17 +25470,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_ident = Obj.magic _3 in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 25392 "parser_cocci_menhir.ml" +# 25476 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_postfix_expr_expr_invalid_ = -# 1377 "parser_cocci_menhir.mly" +# 1361 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordAccess(_1, P.clt2mcode "." _2, _3)) ) -# 25400 "parser_cocci_menhir.ml" +# 25484 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25426,18 +25510,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_ident = Obj.magic _3 in let _2 : ( -# 127 "parser_cocci_menhir.mly" +# 107 "parser_cocci_menhir.mly" (Data.clt) -# 25432 "parser_cocci_menhir.ml" +# 25516 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_postfix_expr_expr_invalid_ = -# 1379 "parser_cocci_menhir.mly" +# 1363 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.RecordPtAccess(_1, P.clt2mcode "->" _2, _3)) ) -# 25441 "parser_cocci_menhir.ml" +# 25525 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25461,17 +25545,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 108 "parser_cocci_menhir.mly" +# 88 "parser_cocci_menhir.mly" (Data.clt) -# 25467 "parser_cocci_menhir.ml" +# 25551 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_postfix_expr_expr_invalid_ = -# 1382 "parser_cocci_menhir.mly" +# 1366 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Inc _2)) ) -# 25475 "parser_cocci_menhir.ml" +# 25559 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25495,17 +25579,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 108 "parser_cocci_menhir.mly" +# 88 "parser_cocci_menhir.mly" (Data.clt) -# 25501 "parser_cocci_menhir.ml" +# 25585 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_postfix_expr_expr_invalid_ = -# 1384 "parser_cocci_menhir.mly" +# 1368 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Postfix (_1, P.clt2mcode Ast.Dec _2)) ) -# 25509 "parser_cocci_menhir.ml" +# 25593 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25539,25 +25623,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _4 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 25545 "parser_cocci_menhir.ml" +# 25629 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 25551 "parser_cocci_menhir.ml" +# 25635 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_postfix_expr_expr_invalid_ = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_postfix_expr_expr_invalid_ = -# 1386 "parser_cocci_menhir.mly" +# 1370 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.FunCall(_1,P.clt2mcode "(" _2, _3, P.clt2mcode ")" _4)) ) -# 25561 "parser_cocci_menhir.ml" +# 25645 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25579,9 +25663,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1391 "parser_cocci_menhir.mly" +# 1375 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Ident(_1)) ) -# 25585 "parser_cocci_menhir.ml" +# 25669 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25600,17 +25684,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 25606 "parser_cocci_menhir.ml" +# 25690 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1393 "parser_cocci_menhir.mly" +# 1377 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) -# 25614 "parser_cocci_menhir.ml" +# 25698 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25629,17 +25713,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 25635 "parser_cocci_menhir.ml" +# 25719 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1396 "parser_cocci_menhir.mly" +# 1380 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) -# 25643 "parser_cocci_menhir.ml" +# 25727 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25658,17 +25742,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 25664 "parser_cocci_menhir.ml" +# 25748 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1399 "parser_cocci_menhir.mly" +# 1383 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) -# 25672 "parser_cocci_menhir.ml" +# 25756 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25687,17 +25771,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 25693 "parser_cocci_menhir.ml" +# 25777 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1402 "parser_cocci_menhir.mly" +# 1386 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) -# 25701 "parser_cocci_menhir.ml" +# 25785 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25716,18 +25800,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 25722 "parser_cocci_menhir.ml" +# 25806 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1405 "parser_cocci_menhir.mly" +# 1389 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) ) -# 25731 "parser_cocci_menhir.ml" +# 25815 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25746,17 +25830,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 86 "parser_cocci_menhir.mly" +# 66 "parser_cocci_menhir.mly" (Parse_aux.expinfo) -# 25752 "parser_cocci_menhir.ml" +# 25836 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1409 "parser_cocci_menhir.mly" +# 1393 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) -# 25760 "parser_cocci_menhir.ml" +# 25844 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25775,18 +25859,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 25781 "parser_cocci_menhir.ml" +# 25865 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1412 "parser_cocci_menhir.mly" +# 1396 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) ) -# 25790 "parser_cocci_menhir.ml" +# 25874 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25805,18 +25889,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 25811 "parser_cocci_menhir.ml" +# 25895 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1416 "parser_cocci_menhir.mly" +# 1400 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) ) -# 25820 "parser_cocci_menhir.ml" +# 25904 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25835,18 +25919,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 25841 "parser_cocci_menhir.ml" +# 25925 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1420 "parser_cocci_menhir.mly" +# 1404 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) ) -# 25850 "parser_cocci_menhir.ml" +# 25934 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25875,23 +25959,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 25881 "parser_cocci_menhir.ml" +# 25965 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 25887 "parser_cocci_menhir.ml" +# 25971 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1424 "parser_cocci_menhir.mly" +# 1408 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, P.clt2mcode ")" _3)) ) -# 25895 "parser_cocci_menhir.ml" +# 25979 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25920,25 +26004,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 25926 "parser_cocci_menhir.ml" +# 26010 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in let _1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 25932 "parser_cocci_menhir.ml" +# 26016 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1427 "parser_cocci_menhir.mly" +# 1411 "parser_cocci_menhir.mly" ( let (mids,code) = _2 in Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, code, mids, P.clt2mcode ")" _3)) ) -# 25942 "parser_cocci_menhir.ml" +# 26026 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25960,9 +26044,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_dot_expressions_ = -# 1431 "parser_cocci_menhir.mly" +# 1415 "parser_cocci_menhir.mly" ( _1 ) -# 25966 "parser_cocci_menhir.ml" +# 26050 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -25984,9 +26068,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1391 "parser_cocci_menhir.mly" +# 1375 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Ident(_1)) ) -# 25990 "parser_cocci_menhir.ml" +# 26074 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26005,17 +26089,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 26011 "parser_cocci_menhir.ml" +# 26095 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1393 "parser_cocci_menhir.mly" +# 1377 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) -# 26019 "parser_cocci_menhir.ml" +# 26103 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26034,17 +26118,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 26040 "parser_cocci_menhir.ml" +# 26124 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1396 "parser_cocci_menhir.mly" +# 1380 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) -# 26048 "parser_cocci_menhir.ml" +# 26132 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26063,17 +26147,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 26069 "parser_cocci_menhir.ml" +# 26153 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1399 "parser_cocci_menhir.mly" +# 1383 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) -# 26077 "parser_cocci_menhir.ml" +# 26161 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26092,17 +26176,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 26098 "parser_cocci_menhir.ml" +# 26182 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1402 "parser_cocci_menhir.mly" +# 1386 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) -# 26106 "parser_cocci_menhir.ml" +# 26190 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26121,18 +26205,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 26127 "parser_cocci_menhir.ml" +# 26211 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1405 "parser_cocci_menhir.mly" +# 1389 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) ) -# 26136 "parser_cocci_menhir.ml" +# 26220 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26151,17 +26235,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 86 "parser_cocci_menhir.mly" +# 66 "parser_cocci_menhir.mly" (Parse_aux.expinfo) -# 26157 "parser_cocci_menhir.ml" +# 26241 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1409 "parser_cocci_menhir.mly" +# 1393 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) -# 26165 "parser_cocci_menhir.ml" +# 26249 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26180,18 +26264,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 26186 "parser_cocci_menhir.ml" +# 26270 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1412 "parser_cocci_menhir.mly" +# 1396 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) ) -# 26195 "parser_cocci_menhir.ml" +# 26279 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26210,18 +26294,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 26216 "parser_cocci_menhir.ml" +# 26300 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1416 "parser_cocci_menhir.mly" +# 1400 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) ) -# 26225 "parser_cocci_menhir.ml" +# 26309 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26240,18 +26324,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 26246 "parser_cocci_menhir.ml" +# 26330 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1420 "parser_cocci_menhir.mly" +# 1404 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) ) -# 26255 "parser_cocci_menhir.ml" +# 26339 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26280,23 +26364,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 26286 "parser_cocci_menhir.ml" +# 26370 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 26292 "parser_cocci_menhir.ml" +# 26376 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1424 "parser_cocci_menhir.mly" +# 1408 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, P.clt2mcode ")" _3)) ) -# 26300 "parser_cocci_menhir.ml" +# 26384 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26325,25 +26409,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 26331 "parser_cocci_menhir.ml" +# 26415 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in let _1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 26337 "parser_cocci_menhir.ml" +# 26421 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1427 "parser_cocci_menhir.mly" +# 1411 "parser_cocci_menhir.mly" ( let (mids,code) = _2 in Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, code, mids, P.clt2mcode ")" _3)) ) -# 26347 "parser_cocci_menhir.ml" +# 26431 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26365,9 +26449,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_invalid_ = -# 1431 "parser_cocci_menhir.mly" +# 1415 "parser_cocci_menhir.mly" ( _1 ) -# 26371 "parser_cocci_menhir.ml" +# 26455 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26389,9 +26473,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1391 "parser_cocci_menhir.mly" +# 1375 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Ident(_1)) ) -# 26395 "parser_cocci_menhir.ml" +# 26479 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26410,17 +26494,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 26416 "parser_cocci_menhir.ml" +# 26500 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1393 "parser_cocci_menhir.mly" +# 1377 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) -# 26424 "parser_cocci_menhir.ml" +# 26508 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26439,17 +26523,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 26445 "parser_cocci_menhir.ml" +# 26529 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1396 "parser_cocci_menhir.mly" +# 1380 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) -# 26453 "parser_cocci_menhir.ml" +# 26537 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26468,17 +26552,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 26474 "parser_cocci_menhir.ml" +# 26558 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1399 "parser_cocci_menhir.mly" +# 1383 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) -# 26482 "parser_cocci_menhir.ml" +# 26566 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26497,17 +26581,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 26503 "parser_cocci_menhir.ml" +# 26587 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1402 "parser_cocci_menhir.mly" +# 1386 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) -# 26511 "parser_cocci_menhir.ml" +# 26595 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26526,18 +26610,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 26532 "parser_cocci_menhir.ml" +# 26616 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1405 "parser_cocci_menhir.mly" +# 1389 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) ) -# 26541 "parser_cocci_menhir.ml" +# 26625 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26556,17 +26640,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 86 "parser_cocci_menhir.mly" +# 66 "parser_cocci_menhir.mly" (Parse_aux.expinfo) -# 26562 "parser_cocci_menhir.ml" +# 26646 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1409 "parser_cocci_menhir.mly" +# 1393 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) -# 26570 "parser_cocci_menhir.ml" +# 26654 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26585,18 +26669,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 26591 "parser_cocci_menhir.ml" +# 26675 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1412 "parser_cocci_menhir.mly" +# 1396 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) ) -# 26600 "parser_cocci_menhir.ml" +# 26684 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26615,18 +26699,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 26621 "parser_cocci_menhir.ml" +# 26705 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1416 "parser_cocci_menhir.mly" +# 1400 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) ) -# 26630 "parser_cocci_menhir.ml" +# 26714 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26645,18 +26729,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 26651 "parser_cocci_menhir.ml" +# 26735 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1420 "parser_cocci_menhir.mly" +# 1404 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) ) -# 26660 "parser_cocci_menhir.ml" +# 26744 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26685,23 +26769,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 26691 "parser_cocci_menhir.ml" +# 26775 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 26697 "parser_cocci_menhir.ml" +# 26781 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1424 "parser_cocci_menhir.mly" +# 1408 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, P.clt2mcode ")" _3)) ) -# 26705 "parser_cocci_menhir.ml" +# 26789 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26730,25 +26814,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 26736 "parser_cocci_menhir.ml" +# 26820 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_midzero_list_eexpr_eexpr_ = Obj.magic _2 in let _1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 26742 "parser_cocci_menhir.ml" +# 26826 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1427 "parser_cocci_menhir.mly" +# 1411 "parser_cocci_menhir.mly" ( let (mids,code) = _2 in Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, code, mids, P.clt2mcode ")" _3)) ) -# 26752 "parser_cocci_menhir.ml" +# 26836 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26770,9 +26854,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_eexpr_nest_expressions_ = -# 1431 "parser_cocci_menhir.mly" +# 1415 "parser_cocci_menhir.mly" ( _1 ) -# 26776 "parser_cocci_menhir.ml" +# 26860 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26794,9 +26878,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1391 "parser_cocci_menhir.mly" +# 1375 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Ident(_1)) ) -# 26800 "parser_cocci_menhir.ml" +# 26884 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26815,17 +26899,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 26821 "parser_cocci_menhir.ml" +# 26905 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1393 "parser_cocci_menhir.mly" +# 1377 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Int x) clt)) ) -# 26829 "parser_cocci_menhir.ml" +# 26913 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26844,17 +26928,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 26850 "parser_cocci_menhir.ml" +# 26934 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1396 "parser_cocci_menhir.mly" +# 1380 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Float x) clt)) ) -# 26858 "parser_cocci_menhir.ml" +# 26942 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26873,17 +26957,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 26879 "parser_cocci_menhir.ml" +# 26963 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1399 "parser_cocci_menhir.mly" +# 1383 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.String x) clt)) ) -# 26887 "parser_cocci_menhir.ml" +# 26971 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26902,17 +26986,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 26908 "parser_cocci_menhir.ml" +# 26992 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1402 "parser_cocci_menhir.mly" +# 1386 "parser_cocci_menhir.mly" ( let (x,clt) = _1 in Ast0.wrap(Ast0.Constant (P.clt2mcode (Ast.Char x) clt)) ) -# 26916 "parser_cocci_menhir.ml" +# 27000 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26931,18 +27015,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 26937 "parser_cocci_menhir.ml" +# 27021 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1405 "parser_cocci_menhir.mly" +# 1389 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.CONST,pure)) ) -# 26946 "parser_cocci_menhir.ml" +# 27030 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26961,17 +27045,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 86 "parser_cocci_menhir.mly" +# 66 "parser_cocci_menhir.mly" (Parse_aux.expinfo) -# 26967 "parser_cocci_menhir.ml" +# 27051 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1409 "parser_cocci_menhir.mly" +# 1393 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,clt) = _1 in Ast0.wrap(Ast0.MetaErr(P.clt2mcode nm clt,constraints,pure)) ) -# 26975 "parser_cocci_menhir.ml" +# 27059 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -26990,18 +27074,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 26996 "parser_cocci_menhir.ml" +# 27080 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1412 "parser_cocci_menhir.mly" +# 1396 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ANY,pure)) ) -# 27005 "parser_cocci_menhir.ml" +# 27089 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27020,18 +27104,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 27026 "parser_cocci_menhir.ml" +# 27110 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1416 "parser_cocci_menhir.mly" +# 1400 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.ID,pure)) ) -# 27035 "parser_cocci_menhir.ml" +# 27119 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27050,18 +27134,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 90 "parser_cocci_menhir.mly" +# 70 "parser_cocci_menhir.mly" (Parse_aux.typed_expinfo) -# 27056 "parser_cocci_menhir.ml" +# 27140 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1420 "parser_cocci_menhir.mly" +# 1404 "parser_cocci_menhir.mly" ( let (nm,constraints,pure,ty,clt) = _1 in Ast0.wrap (Ast0.MetaExpr(P.clt2mcode nm clt,constraints,ty,Ast.LocalID,pure)) ) -# 27065 "parser_cocci_menhir.ml" +# 27149 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27090,23 +27174,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 27096 "parser_cocci_menhir.ml" +# 27180 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 27102 "parser_cocci_menhir.ml" +# 27186 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1424 "parser_cocci_menhir.mly" +# 1408 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Paren(P.clt2mcode "(" _1,_2, P.clt2mcode ")" _3)) ) -# 27110 "parser_cocci_menhir.ml" +# 27194 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27135,25 +27219,25 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 27141 "parser_cocci_menhir.ml" +# 27225 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_midzero_list_expr_eexpr_ = Obj.magic _2 in let _1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 27147 "parser_cocci_menhir.ml" +# 27231 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1427 "parser_cocci_menhir.mly" +# 1411 "parser_cocci_menhir.mly" ( let (mids,code) = _2 in Ast0.wrap(Ast0.DisjExpr(P.clt2mcode "(" _1, code, mids, P.clt2mcode ")" _3)) ) -# 27157 "parser_cocci_menhir.ml" +# 27241 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27175,9 +27259,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_primary_expr_expr_invalid_ = -# 1431 "parser_cocci_menhir.mly" +# 1415 "parser_cocci_menhir.mly" ( _1 ) -# 27181 "parser_cocci_menhir.ml" +# 27265 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27197,9 +27281,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure = -# 213 "parser_cocci_menhir.mly" +# 193 "parser_cocci_menhir.mly" ( Ast0.Pure ) -# 27203 "parser_cocci_menhir.ml" +# 27287 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27219,9 +27303,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure = -# 214 "parser_cocci_menhir.mly" +# 194 "parser_cocci_menhir.mly" ( Ast0.Context ) -# 27225 "parser_cocci_menhir.ml" +# 27309 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27245,9 +27329,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_pure = -# 215 "parser_cocci_menhir.mly" +# 195 "parser_cocci_menhir.mly" ( Ast0.PureContext ) -# 27251 "parser_cocci_menhir.ml" +# 27335 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27271,9 +27355,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_pure = -# 216 "parser_cocci_menhir.mly" +# 196 "parser_cocci_menhir.mly" ( Ast0.PureContext ) -# 27277 "parser_cocci_menhir.ml" +# 27361 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27288,9 +27372,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_pure = -# 217 "parser_cocci_menhir.mly" +# 197 "parser_cocci_menhir.mly" ( Ast0.Impure ) -# 27294 "parser_cocci_menhir.ml" +# 27378 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27309,16 +27393,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 27315 "parser_cocci_menhir.ml" +# 27399 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident = -# 1445 "parser_cocci_menhir.mly" +# 1429 "parser_cocci_menhir.mly" ( _1 ) -# 27322 "parser_cocci_menhir.ml" +# 27406 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27338,9 +27422,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1448 "parser_cocci_menhir.mly" +# 1432 "parser_cocci_menhir.mly" ( "identifier" ) -# 27344 "parser_cocci_menhir.ml" +# 27428 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27360,9 +27444,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1449 "parser_cocci_menhir.mly" +# 1433 "parser_cocci_menhir.mly" ( "expression" ) -# 27366 "parser_cocci_menhir.ml" +# 27450 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27382,9 +27466,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1450 "parser_cocci_menhir.mly" +# 1434 "parser_cocci_menhir.mly" ( "statement" ) -# 27388 "parser_cocci_menhir.ml" +# 27472 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27404,9 +27488,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1451 "parser_cocci_menhir.mly" +# 1435 "parser_cocci_menhir.mly" ( "function" ) -# 27410 "parser_cocci_menhir.ml" +# 27494 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27426,9 +27510,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1452 "parser_cocci_menhir.mly" +# 1436 "parser_cocci_menhir.mly" ( "local" ) -# 27432 "parser_cocci_menhir.ml" +# 27516 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27448,9 +27532,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1453 "parser_cocci_menhir.mly" +# 1437 "parser_cocci_menhir.mly" ( "type" ) -# 27454 "parser_cocci_menhir.ml" +# 27538 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27470,9 +27554,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1454 "parser_cocci_menhir.mly" +# 1438 "parser_cocci_menhir.mly" ( "parameter" ) -# 27476 "parser_cocci_menhir.ml" +# 27560 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27492,9 +27576,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1455 "parser_cocci_menhir.mly" +# 1439 "parser_cocci_menhir.mly" ( "idexpression" ) -# 27498 "parser_cocci_menhir.ml" +# 27582 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27514,9 +27598,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1456 "parser_cocci_menhir.mly" +# 1440 "parser_cocci_menhir.mly" ( "initialiser" ) -# 27520 "parser_cocci_menhir.ml" +# 27604 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27536,9 +27620,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1457 "parser_cocci_menhir.mly" +# 1441 "parser_cocci_menhir.mly" ( "list" ) -# 27542 "parser_cocci_menhir.ml" +# 27626 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27558,9 +27642,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1458 "parser_cocci_menhir.mly" +# 1442 "parser_cocci_menhir.mly" ( "fresh" ) -# 27564 "parser_cocci_menhir.ml" +# 27648 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27580,9 +27664,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1459 "parser_cocci_menhir.mly" +# 1443 "parser_cocci_menhir.mly" ( "constant" ) -# 27586 "parser_cocci_menhir.ml" +# 27670 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27602,9 +27686,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1460 "parser_cocci_menhir.mly" +# 1444 "parser_cocci_menhir.mly" ( "error" ) -# 27608 "parser_cocci_menhir.ml" +# 27692 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27624,9 +27708,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1461 "parser_cocci_menhir.mly" +# 1445 "parser_cocci_menhir.mly" ( "words" ) -# 27630 "parser_cocci_menhir.ml" +# 27714 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27646,9 +27730,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1462 "parser_cocci_menhir.mly" +# 1446 "parser_cocci_menhir.mly" ( "pure" ) -# 27652 "parser_cocci_menhir.ml" +# 27736 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27668,9 +27752,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1463 "parser_cocci_menhir.mly" +# 1447 "parser_cocci_menhir.mly" ( "context" ) -# 27674 "parser_cocci_menhir.ml" +# 27758 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27690,9 +27774,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1464 "parser_cocci_menhir.mly" +# 1448 "parser_cocci_menhir.mly" ( "generated" ) -# 27696 "parser_cocci_menhir.ml" +# 27780 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27712,9 +27796,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1465 "parser_cocci_menhir.mly" +# 1449 "parser_cocci_menhir.mly" ( "typedef" ) -# 27718 "parser_cocci_menhir.ml" +# 27802 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27734,9 +27818,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1466 "parser_cocci_menhir.mly" +# 1450 "parser_cocci_menhir.mly" ( "declarer" ) -# 27740 "parser_cocci_menhir.ml" +# 27824 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27756,9 +27840,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1467 "parser_cocci_menhir.mly" +# 1451 "parser_cocci_menhir.mly" ( "iterator" ) -# 27762 "parser_cocci_menhir.ml" +# 27846 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27778,9 +27862,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1468 "parser_cocci_menhir.mly" +# 1452 "parser_cocci_menhir.mly" ( "name" ) -# 27784 "parser_cocci_menhir.ml" +# 27868 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27800,9 +27884,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_kwd = -# 1469 "parser_cocci_menhir.mly" +# 1453 "parser_cocci_menhir.mly" ( "position" ) -# 27806 "parser_cocci_menhir.ml" +# 27890 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27824,9 +27908,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1476 "parser_cocci_menhir.mly" +# 1460 "parser_cocci_menhir.mly" ( (None,P.id2name _1) ) -# 27830 "parser_cocci_menhir.ml" +# 27914 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27848,9 +27932,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1477 "parser_cocci_menhir.mly" +# 1461 "parser_cocci_menhir.mly" ( (None,_1) ) -# 27854 "parser_cocci_menhir.ml" +# 27938 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27872,9 +27956,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident = -# 1478 "parser_cocci_menhir.mly" +# 1462 "parser_cocci_menhir.mly" ( _1 ) -# 27878 "parser_cocci_menhir.ml" +# 27962 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27902,13 +27986,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_i_ in let _endpos = _endpos_optc_ in let _v : 'tv_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub_ = -# 1504 "parser_cocci_menhir.mly" +# 1488 "parser_cocci_menhir.mly" ( match optc with None -> (i, Ast0.NoConstraint) | Some c -> (i, c) ) -# 27912 "parser_cocci_menhir.ml" +# 27996 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27936,13 +28020,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_i_ in let _endpos = _endpos_optc_ in let _v : 'tv_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub_ = -# 1504 "parser_cocci_menhir.mly" +# 1488 "parser_cocci_menhir.mly" ( match optc with None -> (i, Ast0.NoConstraint) | Some c -> (i, c) ) -# 27946 "parser_cocci_menhir.ml" +# 28030 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -27970,13 +28054,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_i_ in let _endpos = _endpos_c_ in let _v : 'tv_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid_ = -# 1522 "parser_cocci_menhir.mly" +# 1506 "parser_cocci_menhir.mly" ( match c with None -> (i, Ast.IdNoConstraint) | Some constraint_ -> (i,constraint_) ) -# 27980 "parser_cocci_menhir.ml" +# 28064 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28004,14 +28088,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_i_ in let _endpos = _endpos_c_ in let _v : 'tv_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid_ = -# 1512 "parser_cocci_menhir.mly" +# 1496 "parser_cocci_menhir.mly" ( Common.Left (match c with None -> (i, Ast.IdNoConstraint) | Some constraint_ -> (i,constraint_)) ) -# 28015 "parser_cocci_menhir.ml" +# 28099 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28041,9 +28125,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid_ = -# 1518 "parser_cocci_menhir.mly" +# 1502 "parser_cocci_menhir.mly" ( Common.Right (P.id2name _3) ) -# 28047 "parser_cocci_menhir.ml" +# 28131 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28065,9 +28149,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_pure_ident_or_meta_ident_with_seed = -# 1481 "parser_cocci_menhir.mly" +# 1465 "parser_cocci_menhir.mly" ( (_1,Ast.NoVal) ) -# 28071 "parser_cocci_menhir.ml" +# 28155 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28099,11 +28183,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_pure_ident_or_meta_ident_with_seed = -# 1484 "parser_cocci_menhir.mly" +# 1468 "parser_cocci_menhir.mly" ( match _3 with [Ast.SeedString s] -> (_1,Ast.StringSeed s) | _ -> (_1,Ast.ListSeed _3) ) -# 28107 "parser_cocci_menhir.ml" +# 28191 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28131,11 +28215,11 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_i_ in let _endpos = _endpos_l_ in let _v : 'tv_pure_ident_or_meta_ident_with_x_eq_not_pos_ = -# 1498 "parser_cocci_menhir.mly" +# 1482 "parser_cocci_menhir.mly" ( (i, l) ) -# 28139 "parser_cocci_menhir.ml" +# 28223 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28157,9 +28241,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_re_ in let _endpos = _endpos_re_ in let _v : 'tv_re_or_not_eqe_or_sub = -# 1583 "parser_cocci_menhir.mly" +# 1567 "parser_cocci_menhir.mly" (Ast0.NotIdCstrt re) -# 28163 "parser_cocci_menhir.ml" +# 28247 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28181,9 +28265,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_ne_ in let _endpos = _endpos_ne_ in let _v : 'tv_re_or_not_eqe_or_sub = -# 1584 "parser_cocci_menhir.mly" +# 1568 "parser_cocci_menhir.mly" (Ast0.NotExpCstrt ne) -# 28187 "parser_cocci_menhir.ml" +# 28271 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28205,9 +28289,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_re_or_not_eqe_or_sub = -# 1585 "parser_cocci_menhir.mly" +# 1569 "parser_cocci_menhir.mly" (Ast0.SubExpCstrt s) -# 28211 "parser_cocci_menhir.ml" +# 28295 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28229,9 +28313,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_re_ in let _endpos = _endpos_re_ in let _v : 'tv_re_or_not_eqid = -# 1529 "parser_cocci_menhir.mly" +# 1513 "parser_cocci_menhir.mly" (Ast.IdRegExpConstraint re) -# 28235 "parser_cocci_menhir.ml" +# 28319 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28253,9 +28337,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_ne_ in let _endpos = _endpos_ne_ in let _v : 'tv_re_or_not_eqid = -# 1530 "parser_cocci_menhir.mly" +# 1514 "parser_cocci_menhir.mly" (ne) -# 28259 "parser_cocci_menhir.ml" +# 28343 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28278,21 +28362,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let re : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 28284 "parser_cocci_menhir.ml" +# 28368 "parser_cocci_menhir.ml" ) = Obj.magic re in let _startpos = _startpos__1_ in let _endpos = _endpos_re_ in let _v : 'tv_regexp_eqid = -# 1534 "parser_cocci_menhir.mly" +# 1518 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating then failwith "constraints not allowed in a generated rule file"); let (s,_) = re in Ast.IdRegExp (s,Str.regexp s) ) -# 28296 "parser_cocci_menhir.ml" +# 28380 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28315,21 +28399,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let re : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 28321 "parser_cocci_menhir.ml" +# 28405 "parser_cocci_menhir.ml" ) = Obj.magic re in let _startpos = _startpos__1_ in let _endpos = _endpos_re_ in let _v : 'tv_regexp_eqid = -# 1541 "parser_cocci_menhir.mly" +# 1525 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating then failwith "constraints not allowed in a generated rule file"); let (s,_) = re in Ast.IdNotRegExp (s,Str.regexp s) ) -# 28333 "parser_cocci_menhir.ml" +# 28417 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28344,13 +28428,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : ( -# 154 "parser_cocci_menhir.mly" +# 134 "parser_cocci_menhir.mly" (unit) -# 28350 "parser_cocci_menhir.ml" +# 28434 "parser_cocci_menhir.ml" ) = -# 195 "parser_cocci_menhir.mly" +# 175 "parser_cocci_menhir.mly" ( ) -# 28354 "parser_cocci_menhir.ml" +# 28438 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28372,9 +28456,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_rule_elem_statement = -# 957 "parser_cocci_menhir.mly" +# 937 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Decl((Ast0.default_info(),Ast0.context_befaft()),_1)) ) -# 28378 "parser_cocci_menhir.ml" +# 28462 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28398,17 +28482,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 28404 "parser_cocci_menhir.ml" +# 28488 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_expr = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_rule_elem_statement = -# 958 "parser_cocci_menhir.mly" +# 938 "parser_cocci_menhir.mly" ( P.exp_stm _1 _2 ) -# 28412 "parser_cocci_menhir.ml" +# 28496 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28437,22 +28521,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 28443 "parser_cocci_menhir.ml" +# 28527 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) -# 28449 "parser_cocci_menhir.ml" +# 28533 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_rule_elem_statement = -# 959 "parser_cocci_menhir.mly" +# 939 "parser_cocci_menhir.mly" ( P.ret_exp _1 _2 _3 ) -# 28456 "parser_cocci_menhir.ml" +# 28540 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28476,21 +28560,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 28482 "parser_cocci_menhir.ml" +# 28566 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) -# 28487 "parser_cocci_menhir.ml" +# 28571 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_rule_elem_statement = -# 960 "parser_cocci_menhir.mly" +# 940 "parser_cocci_menhir.mly" ( P.ret _1 _2 ) -# 28494 "parser_cocci_menhir.ml" +# 28578 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28514,21 +28598,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 28520 "parser_cocci_menhir.ml" +# 28604 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 80 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt) -# 28525 "parser_cocci_menhir.ml" +# 28609 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_rule_elem_statement = -# 961 "parser_cocci_menhir.mly" +# 941 "parser_cocci_menhir.mly" ( P.break _1 _2 ) -# 28532 "parser_cocci_menhir.ml" +# 28616 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28552,21 +28636,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 28558 "parser_cocci_menhir.ml" +# 28642 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 80 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt) -# 28563 "parser_cocci_menhir.ml" +# 28647 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_rule_elem_statement = -# 962 "parser_cocci_menhir.mly" +# 942 "parser_cocci_menhir.mly" ( P.cont _1 _2 ) -# 28570 "parser_cocci_menhir.ml" +# 28654 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28595,26 +28679,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 28601 "parser_cocci_menhir.ml" +# 28685 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_midzero_list_rule_elem_statement_rule_elem_statement_ = Obj.magic _2 in let _1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 28607 "parser_cocci_menhir.ml" +# 28691 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_rule_elem_statement = -# 964 "parser_cocci_menhir.mly" +# 944 "parser_cocci_menhir.mly" ( let (mids,code) = _2 in Ast0.wrap (Ast0.Disj(P.clt2mcode "(" _1, List.map (function x -> Ast0.wrap(Ast0.DOTS([x]))) code, mids, P.clt2mcode ")" _3)) ) -# 28618 "parser_cocci_menhir.ml" +# 28702 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28668,20 +28752,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in let _v : ( -# 176 "parser_cocci_menhir.mly" +# 156 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 28674 "parser_cocci_menhir.ml" +# 28758 "parser_cocci_menhir.ml" ) = let nm = # 39 "standard.mly" ( None ) -# 28679 "parser_cocci_menhir.ml" +# 28763 "parser_cocci_menhir.ml" in -# 225 "parser_cocci_menhir.mly" +# 205 "parser_cocci_menhir.mly" ( P.make_cocci_rule_name_result nm d i a e ee ) -# 28685 "parser_cocci_menhir.ml" +# 28769 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28741,21 +28825,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_x0_ in let _endpos = _endpos__8_ in let _v : ( -# 176 "parser_cocci_menhir.mly" +# 156 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 28747 "parser_cocci_menhir.ml" +# 28831 "parser_cocci_menhir.ml" ) = let nm = let x = x0 in # 41 "standard.mly" ( Some x ) -# 28753 "parser_cocci_menhir.ml" +# 28837 "parser_cocci_menhir.ml" in -# 225 "parser_cocci_menhir.mly" +# 205 "parser_cocci_menhir.mly" ( P.make_cocci_rule_name_result nm d i a e ee ) -# 28759 "parser_cocci_menhir.ml" +# 28843 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28813,13 +28897,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__8_ in let _v : ( -# 176 "parser_cocci_menhir.mly" +# 156 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 28819 "parser_cocci_menhir.ml" +# 28903 "parser_cocci_menhir.ml" ) = -# 230 "parser_cocci_menhir.mly" +# 210 "parser_cocci_menhir.mly" ( P.make_generated_rule_name_result None d i a e ee ) -# 28823 "parser_cocci_menhir.ml" +# 28907 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28859,13 +28943,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : ( -# 176 "parser_cocci_menhir.mly" +# 156 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 28865 "parser_cocci_menhir.ml" +# 28949 "parser_cocci_menhir.ml" ) = -# 232 "parser_cocci_menhir.mly" +# 212 "parser_cocci_menhir.mly" ( P.make_script_rule_name_result lang d ) -# 28869 "parser_cocci_menhir.ml" +# 28953 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28905,13 +28989,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : ( -# 176 "parser_cocci_menhir.mly" +# 156 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 28911 "parser_cocci_menhir.ml" +# 28995 "parser_cocci_menhir.ml" ) = -# 234 "parser_cocci_menhir.mly" +# 214 "parser_cocci_menhir.mly" ( P.make_initial_script_rule_name_result lang d ) -# 28915 "parser_cocci_menhir.ml" +# 28999 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28951,13 +29035,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : ( -# 176 "parser_cocci_menhir.mly" +# 156 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 28957 "parser_cocci_menhir.ml" +# 29041 "parser_cocci_menhir.ml" ) = -# 236 "parser_cocci_menhir.mly" +# 216 "parser_cocci_menhir.mly" ( P.make_final_script_rule_name_result lang d ) -# 28961 "parser_cocci_menhir.ml" +# 29045 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -28999,21 +29083,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let cocci : 'tv_pure_ident = Obj.magic cocci in let _3 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 29005 "parser_cocci_menhir.ml" +# 29089 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let py : 'tv_pure_ident = Obj.magic py in let _startpos = _startpos_py_ in let _endpos = _endpos__6_ in let _v : ( -# 182 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (string * Ast_cocci.meta_name) -# 29013 "parser_cocci_menhir.ml" +# 29097 "parser_cocci_menhir.ml" ) = -# 2064 "parser_cocci_menhir.mly" +# 2048 "parser_cocci_menhir.mly" ( (P.id2name py, (_3, P.id2name cocci)) ) -# 29017 "parser_cocci_menhir.ml" +# 29101 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29057,13 +29141,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_py_ in let _endpos = _endpos__6_ in let _v : ( -# 182 "parser_cocci_menhir.mly" +# 162 "parser_cocci_menhir.mly" (string * Ast_cocci.meta_name) -# 29063 "parser_cocci_menhir.ml" +# 29147 "parser_cocci_menhir.ml" ) = -# 2066 "parser_cocci_menhir.mly" +# 2050 "parser_cocci_menhir.mly" ( (P.id2name py, ("virtual", P.id2name cocci)) ) -# 29067 "parser_cocci_menhir.ml" +# 29151 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29082,16 +29166,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 29088 "parser_cocci_menhir.ml" +# 29172 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_seed_elem = -# 1489 "parser_cocci_menhir.mly" +# 1473 "parser_cocci_menhir.mly" ( let (x,_) = _1 in Ast.SeedString x ) -# 29095 "parser_cocci_menhir.ml" +# 29179 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29110,16 +29194,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 84 "parser_cocci_menhir.mly" +# 64 "parser_cocci_menhir.mly" (Parse_aux.idinfo) -# 29116 "parser_cocci_menhir.ml" +# 29200 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_seed_elem = -# 1490 "parser_cocci_menhir.mly" +# 1474 "parser_cocci_menhir.mly" ( let (x,_,_,_) = _1 in Ast.SeedId x ) -# 29123 "parser_cocci_menhir.ml" +# 29207 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29148,18 +29232,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _3 : 'tv_pure_ident = Obj.magic _3 in let _1 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 29154 "parser_cocci_menhir.ml" +# 29238 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_seed_elem = -# 1492 "parser_cocci_menhir.mly" +# 1476 "parser_cocci_menhir.mly" ( let nm = (_1,P.id2name _3) in P.check_meta(Ast.MetaIdDecl(Ast.NONE,nm)); Ast.SeedId nm ) -# 29163 "parser_cocci_menhir.ml" +# 29247 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29178,16 +29262,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let x : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 29184 "parser_cocci_menhir.ml" +# 29268 "parser_cocci_menhir.ml" ) = Obj.magic x in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : 'tv_separated_nonempty_list_TComma_TString_ = # 144 "standard.mly" ( [ x ] ) -# 29191 "parser_cocci_menhir.ml" +# 29275 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29216,16 +29300,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let xs : 'tv_separated_nonempty_list_TComma_TString_ = Obj.magic xs in let x : ( -# 110 "parser_cocci_menhir.mly" +# 90 "parser_cocci_menhir.mly" (string * Data.clt) -# 29222 "parser_cocci_menhir.ml" +# 29306 "parser_cocci_menhir.ml" ) = Obj.magic x in let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in let _v : 'tv_separated_nonempty_list_TComma_TString_ = # 146 "standard.mly" ( x :: xs ) -# 29229 "parser_cocci_menhir.ml" +# 29313 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29249,7 +29333,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_any_strict_ = # 144 "standard.mly" ( [ x ] ) -# 29253 "parser_cocci_menhir.ml" +# 29337 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29283,7 +29367,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_any_strict_ = # 146 "standard.mly" ( x :: xs ) -# 29287 "parser_cocci_menhir.ml" +# 29371 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29307,7 +29391,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_ctype_ = # 144 "standard.mly" ( [ x ] ) -# 29311 "parser_cocci_menhir.ml" +# 29395 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29341,7 +29425,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_ctype_ = # 146 "standard.mly" ( x :: xs ) -# 29345 "parser_cocci_menhir.ml" +# 29429 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29365,7 +29449,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_d_ident_ = # 144 "standard.mly" ( [ x ] ) -# 29369 "parser_cocci_menhir.ml" +# 29453 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29399,7 +29483,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_d_ident_ = # 146 "standard.mly" ( x :: xs ) -# 29403 "parser_cocci_menhir.ml" +# 29487 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29423,7 +29507,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_ident_or_const_ = # 144 "standard.mly" ( [ x ] ) -# 29427 "parser_cocci_menhir.ml" +# 29511 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29457,7 +29541,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_ident_or_const_ = # 146 "standard.mly" ( x :: xs ) -# 29461 "parser_cocci_menhir.ml" +# 29545 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29481,7 +29565,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_meta_ident_ = # 144 "standard.mly" ( [ x ] ) -# 29485 "parser_cocci_menhir.ml" +# 29569 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29515,7 +29599,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_meta_ident_ = # 146 "standard.mly" ( x :: xs ) -# 29519 "parser_cocci_menhir.ml" +# 29603 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29539,7 +29623,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_ = # 144 "standard.mly" ( [ x ] ) -# 29543 "parser_cocci_menhir.ml" +# 29627 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29573,7 +29657,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_ = # 146 "standard.mly" ( x :: xs ) -# 29577 "parser_cocci_menhir.ml" +# 29661 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29597,7 +29681,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = # 144 "standard.mly" ( [ x ] ) -# 29601 "parser_cocci_menhir.ml" +# 29685 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29631,7 +29715,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_ = # 146 "standard.mly" ( x :: xs ) -# 29635 "parser_cocci_menhir.ml" +# 29719 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29655,7 +29739,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = # 144 "standard.mly" ( [ x ] ) -# 29659 "parser_cocci_menhir.ml" +# 29743 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29689,7 +29773,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_not_ceq_or_sub__ = # 146 "standard.mly" ( x :: xs ) -# 29693 "parser_cocci_menhir.ml" +# 29777 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29713,7 +29797,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = # 144 "standard.mly" ( [ x ] ) -# 29717 "parser_cocci_menhir.ml" +# 29801 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29747,7 +29831,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_econstraint_re_or_not_eqe_or_sub__ = # 146 "standard.mly" ( x :: xs ) -# 29751 "parser_cocci_menhir.ml" +# 29835 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29771,7 +29855,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = # 144 "standard.mly" ( [ x ] ) -# 29775 "parser_cocci_menhir.ml" +# 29859 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29805,7 +29889,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_re_or_not_eqid__ = # 146 "standard.mly" ( x :: xs ) -# 29809 "parser_cocci_menhir.ml" +# 29893 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29829,7 +29913,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid__ = # 144 "standard.mly" ( [ x ] ) -# 29833 "parser_cocci_menhir.ml" +# 29917 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29863,7 +29947,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_idconstraint_virt_re_or_not_eqid__ = # 146 "standard.mly" ( x :: xs ) -# 29867 "parser_cocci_menhir.ml" +# 29951 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29887,7 +29971,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_seed_ = # 144 "standard.mly" ( [ x ] ) -# 29891 "parser_cocci_menhir.ml" +# 29975 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29921,7 +30005,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_seed_ = # 146 "standard.mly" ( x :: xs ) -# 29925 "parser_cocci_menhir.ml" +# 30009 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29945,7 +30029,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_x_eq_not_pos__ = # 144 "standard.mly" ( [ x ] ) -# 29949 "parser_cocci_menhir.ml" +# 30033 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -29979,7 +30063,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_pure_ident_or_meta_ident_with_x_eq_not_pos__ = # 146 "standard.mly" ( x :: xs ) -# 29983 "parser_cocci_menhir.ml" +# 30067 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30003,7 +30087,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_typedef_ident_ = # 144 "standard.mly" ( [ x ] ) -# 30007 "parser_cocci_menhir.ml" +# 30091 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30037,7 +30121,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TComma_typedef_ident_ = # 146 "standard.mly" ( x :: xs ) -# 30041 "parser_cocci_menhir.ml" +# 30125 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30061,7 +30145,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TCppConcatOp_seed_elem_ = # 144 "standard.mly" ( [ x ] ) -# 30065 "parser_cocci_menhir.ml" +# 30149 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30095,7 +30179,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _v : 'tv_separated_nonempty_list_TCppConcatOp_seed_elem_ = # 146 "standard.mly" ( x :: xs ) -# 30099 "parser_cocci_menhir.ml" +# 30183 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30117,9 +30201,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_single_statement = -# 972 "parser_cocci_menhir.mly" +# 952 "parser_cocci_menhir.mly" ( _1 ) -# 30123 "parser_cocci_menhir.ml" +# 30207 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30148,26 +30232,26 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 30154 "parser_cocci_menhir.ml" +# 30238 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_midzero_list_statement_statement_ = Obj.magic _2 in let _1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 30160 "parser_cocci_menhir.ml" +# 30244 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_single_statement = -# 976 "parser_cocci_menhir.mly" +# 956 "parser_cocci_menhir.mly" ( let (mids,code) = _2 in Ast0.wrap (Ast0.Disj(P.clt2mcode "(" _1, List.map (function x -> Ast0.wrap(Ast0.DOTS([x]))) code, mids, P.clt2mcode ")" _3)) ) -# 30171 "parser_cocci_menhir.ml" +# 30255 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30189,9 +30273,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_statement = -# 899 "parser_cocci_menhir.mly" +# 879 "parser_cocci_menhir.mly" ( _1 ) -# 30195 "parser_cocci_menhir.ml" +# 30279 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30210,16 +30294,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 30216 "parser_cocci_menhir.ml" +# 30300 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_statement = -# 901 "parser_cocci_menhir.mly" +# 881 "parser_cocci_menhir.mly" ( P.meta_stm _1 ) -# 30223 "parser_cocci_menhir.ml" +# 30307 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30243,17 +30327,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 30249 "parser_cocci_menhir.ml" +# 30333 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_expr = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_statement = -# 903 "parser_cocci_menhir.mly" +# 883 "parser_cocci_menhir.mly" ( P.exp_stm _1 _2 ) -# 30257 "parser_cocci_menhir.ml" +# 30341 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30293,27 +30377,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _5 : 'tv_single_statement = Obj.magic _5 in let _4 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 30299 "parser_cocci_menhir.ml" +# 30383 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 30305 "parser_cocci_menhir.ml" +# 30389 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) -# 30310 "parser_cocci_menhir.ml" +# 30394 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : 'tv_statement = -# 905 "parser_cocci_menhir.mly" +# 885 "parser_cocci_menhir.mly" ( P.ifthen _1 _2 _3 _4 _5 ) -# 30317 "parser_cocci_menhir.ml" +# 30401 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30363,33 +30447,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _7 : 'tv_single_statement = Obj.magic _7 in let _6 : ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) -# 30369 "parser_cocci_menhir.ml" +# 30453 "parser_cocci_menhir.ml" ) = Obj.magic _6 in let _5 : 'tv_single_statement = Obj.magic _5 in let _4 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 30375 "parser_cocci_menhir.ml" +# 30459 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 30381 "parser_cocci_menhir.ml" +# 30465 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) -# 30386 "parser_cocci_menhir.ml" +# 30470 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in let _v : 'tv_statement = -# 907 "parser_cocci_menhir.mly" +# 887 "parser_cocci_menhir.mly" ( P.ifthenelse _1 _2 _3 _4 _5 _6 _7 ) -# 30393 "parser_cocci_menhir.ml" +# 30477 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30449,39 +30533,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _9 : 'tv_single_statement = Obj.magic _9 in let _8 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 30455 "parser_cocci_menhir.ml" +# 30539 "parser_cocci_menhir.ml" ) = Obj.magic _8 in let _7 : 'tv_option_eexpr_ = Obj.magic _7 in let _6 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 30461 "parser_cocci_menhir.ml" +# 30545 "parser_cocci_menhir.ml" ) = Obj.magic _6 in let _5 : 'tv_option_eexpr_ = Obj.magic _5 in let _4 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 30467 "parser_cocci_menhir.ml" +# 30551 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_option_eexpr_ = Obj.magic _3 in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 30473 "parser_cocci_menhir.ml" +# 30557 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) -# 30478 "parser_cocci_menhir.ml" +# 30562 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__9_ in let _v : 'tv_statement = -# 910 "parser_cocci_menhir.mly" +# 890 "parser_cocci_menhir.mly" ( P.forloop _1 _2 _3 _4 _5 _6 _7 _8 _9 ) -# 30485 "parser_cocci_menhir.ml" +# 30569 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30521,27 +30605,27 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _5 : 'tv_single_statement = Obj.magic _5 in let _4 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 30527 "parser_cocci_menhir.ml" +# 30611 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 30533 "parser_cocci_menhir.ml" +# 30617 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) -# 30538 "parser_cocci_menhir.ml" +# 30622 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : 'tv_statement = -# 912 "parser_cocci_menhir.mly" +# 892 "parser_cocci_menhir.mly" ( P.whileloop _1 _2 _3 _4 _5 ) -# 30545 "parser_cocci_menhir.ml" +# 30629 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30590,38 +30674,38 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _7 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 30596 "parser_cocci_menhir.ml" +# 30680 "parser_cocci_menhir.ml" ) = Obj.magic _7 in let _6 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 30601 "parser_cocci_menhir.ml" +# 30685 "parser_cocci_menhir.ml" ) = Obj.magic _6 in let _5 : 'tv_eexpr = Obj.magic _5 in let _4 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 30607 "parser_cocci_menhir.ml" +# 30691 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) -# 30612 "parser_cocci_menhir.ml" +# 30696 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_single_statement = Obj.magic _2 in let _1 : ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) -# 30618 "parser_cocci_menhir.ml" +# 30702 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in let _v : 'tv_statement = -# 914 "parser_cocci_menhir.mly" +# 894 "parser_cocci_menhir.mly" ( P.doloop _1 _2 _3 _4 _5 _6 _7 ) -# 30625 "parser_cocci_menhir.ml" +# 30709 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30661,23 +30745,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _5 : 'tv_single_statement = Obj.magic _5 in let _4 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 30667 "parser_cocci_menhir.ml" +# 30751 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr_list_option = Obj.magic _3 in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 30673 "parser_cocci_menhir.ml" +# 30757 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_iter_ident = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : 'tv_statement = -# 916 "parser_cocci_menhir.mly" +# 896 "parser_cocci_menhir.mly" ( P.iterator _1 _2 _3 _4 _5 ) -# 30681 "parser_cocci_menhir.ml" +# 30765 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30731,39 +30815,39 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _8 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 30737 "parser_cocci_menhir.ml" +# 30821 "parser_cocci_menhir.ml" ) = Obj.magic _8 in let _7 : 'tv_list_case_line_ = Obj.magic _7 in let _6 : 'tv_list_decl_var_ = Obj.magic _6 in let _5 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 30744 "parser_cocci_menhir.ml" +# 30828 "parser_cocci_menhir.ml" ) = Obj.magic _5 in let _4 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 30749 "parser_cocci_menhir.ml" +# 30833 "parser_cocci_menhir.ml" ) = Obj.magic _4 in let _3 : 'tv_eexpr = Obj.magic _3 in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 30755 "parser_cocci_menhir.ml" +# 30839 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) -# 30760 "parser_cocci_menhir.ml" +# 30844 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__8_ in let _v : 'tv_statement = -# 918 "parser_cocci_menhir.mly" +# 898 "parser_cocci_menhir.mly" ( P.switch _1 _2 _3 _4 _5 (List.concat _6) _7 _8 ) -# 30767 "parser_cocci_menhir.ml" +# 30851 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30792,22 +30876,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 30798 "parser_cocci_menhir.ml" +# 30882 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_eexpr = Obj.magic _2 in let _1 : ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) -# 30804 "parser_cocci_menhir.ml" +# 30888 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_statement = -# 919 "parser_cocci_menhir.mly" +# 899 "parser_cocci_menhir.mly" ( P.ret_exp _1 _2 _3 ) -# 30811 "parser_cocci_menhir.ml" +# 30895 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30831,21 +30915,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 30837 "parser_cocci_menhir.ml" +# 30921 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 79 "parser_cocci_menhir.mly" +# 59 "parser_cocci_menhir.mly" (Data.clt) -# 30842 "parser_cocci_menhir.ml" +# 30926 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_statement = -# 920 "parser_cocci_menhir.mly" +# 900 "parser_cocci_menhir.mly" ( P.ret _1 _2 ) -# 30849 "parser_cocci_menhir.ml" +# 30933 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30869,21 +30953,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 30875 "parser_cocci_menhir.ml" +# 30959 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 80 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt) -# 30880 "parser_cocci_menhir.ml" +# 30964 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_statement = -# 921 "parser_cocci_menhir.mly" +# 901 "parser_cocci_menhir.mly" ( P.break _1 _2 ) -# 30887 "parser_cocci_menhir.ml" +# 30971 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30907,21 +30991,21 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 30913 "parser_cocci_menhir.ml" +# 30997 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : ( -# 80 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt) -# 30918 "parser_cocci_menhir.ml" +# 31002 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_statement = -# 922 "parser_cocci_menhir.mly" +# 902 "parser_cocci_menhir.mly" ( P.cont _1 _2 ) -# 30925 "parser_cocci_menhir.ml" +# 31009 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30945,17 +31029,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 30951 "parser_cocci_menhir.ml" +# 31035 "parser_cocci_menhir.ml" ) = Obj.magic _2 in let _1 : 'tv_ident = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_statement = -# 923 "parser_cocci_menhir.mly" +# 903 "parser_cocci_menhir.mly" ( P.label _1 _2 ) -# 30959 "parser_cocci_menhir.ml" +# 31043 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -30984,22 +31068,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 30990 "parser_cocci_menhir.ml" +# 31074 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_ident = Obj.magic _2 in let _1 : ( -# 80 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt) -# 30996 "parser_cocci_menhir.ml" +# 31080 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_statement = -# 924 "parser_cocci_menhir.mly" +# 904 "parser_cocci_menhir.mly" ( P.goto _1 _2 _3 ) -# 31003 "parser_cocci_menhir.ml" +# 31087 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31028,22 +31112,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 31034 "parser_cocci_menhir.ml" +# 31118 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_fun_start = Obj.magic _2 in let _1 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 31040 "parser_cocci_menhir.ml" +# 31124 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_statement = -# 926 "parser_cocci_menhir.mly" +# 906 "parser_cocci_menhir.mly" ( P.seq _1 _2 _3 ) -# 31047 "parser_cocci_menhir.ml" +# 31131 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31068,16 +31152,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let w : 'tv_list_whenppdecs_ = Obj.magic w in let _1 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 31074 "parser_cocci_menhir.ml" +# 31158 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos_w_ in let _v : 'tv_stm_dots = -# 930 "parser_cocci_menhir.mly" +# 910 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Dots(P.clt2mcode "..." _1, List.concat w)) ) -# 31081 "parser_cocci_menhir.ml" +# 31165 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31111,24 +31195,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let c : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 31117 "parser_cocci_menhir.ml" +# 31201 "parser_cocci_menhir.ml" ) = Obj.magic c in let b : 'tv_nest_start = Obj.magic b in let w : 'tv_list_whenppdecs_ = Obj.magic w in let _1 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 31124 "parser_cocci_menhir.ml" +# 31208 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos_c_ in let _v : 'tv_stm_dots = -# 932 "parser_cocci_menhir.mly" +# 912 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." _1, b, P.clt2mcode "...>" c, List.concat w, false)) ) -# 31132 "parser_cocci_menhir.ml" +# 31216 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31162,24 +31246,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let c : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 31168 "parser_cocci_menhir.ml" +# 31252 "parser_cocci_menhir.ml" ) = Obj.magic c in let b : 'tv_nest_start = Obj.magic b in let w : 'tv_list_whenppdecs_ = Obj.magic w in let _1 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 31175 "parser_cocci_menhir.ml" +# 31259 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos_c_ in let _v : 'tv_stm_dots = -# 935 "parser_cocci_menhir.mly" +# 915 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." _1, b, P.clt2mcode "...+>" c, List.concat w, true)) ) -# 31183 "parser_cocci_menhir.ml" +# 31267 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31198,16 +31282,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 75 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 31204 "parser_cocci_menhir.ml" +# 31288 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_storage = -# 861 "parser_cocci_menhir.mly" +# 841 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Static s ) -# 31211 "parser_cocci_menhir.ml" +# 31295 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31226,16 +31310,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 75 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 31232 "parser_cocci_menhir.ml" +# 31316 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_storage = -# 862 "parser_cocci_menhir.mly" +# 842 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Auto s ) -# 31239 "parser_cocci_menhir.ml" +# 31323 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31254,16 +31338,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 75 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 31260 "parser_cocci_menhir.ml" +# 31344 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_storage = -# 863 "parser_cocci_menhir.mly" +# 843 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Register s ) -# 31267 "parser_cocci_menhir.ml" +# 31351 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31282,16 +31366,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 75 "parser_cocci_menhir.mly" +# 55 "parser_cocci_menhir.mly" (Data.clt) -# 31288 "parser_cocci_menhir.ml" +# 31372 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_storage = -# 864 "parser_cocci_menhir.mly" +# 844 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Extern s ) -# 31295 "parser_cocci_menhir.ml" +# 31379 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31311,9 +31395,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_struct_decl = -# 615 "parser_cocci_menhir.mly" +# 595 "parser_cocci_menhir.mly" ( [] ) -# 31317 "parser_cocci_menhir.ml" +# 31401 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31342,19 +31426,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 31348 "parser_cocci_menhir.ml" +# 31432 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_d_ident = Obj.magic d in let t : 'tv_ctype = Obj.magic t in let _startpos = _startpos_t_ in let _endpos = _endpos_pv_ in let _v : 'tv_struct_decl = -# 617 "parser_cocci_menhir.mly" +# 597 "parser_cocci_menhir.mly" ( let (id,fn) = d in [Ast0.wrap(Ast0.UnInit(None,fn t,id,P.clt2mcode ";" pv))] ) -# 31358 "parser_cocci_menhir.ml" +# 31442 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31413,42 +31497,42 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 31419 "parser_cocci_menhir.ml" +# 31503 "parser_cocci_menhir.ml" ) = Obj.magic pv in let rp2 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 31424 "parser_cocci_menhir.ml" +# 31508 "parser_cocci_menhir.ml" ) = Obj.magic rp2 in let p : 'tv_decl_list_name_opt_decl_ = Obj.magic p in let lp2 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 31430 "parser_cocci_menhir.ml" +# 31514 "parser_cocci_menhir.ml" ) = Obj.magic lp2 in let rp1 : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 31435 "parser_cocci_menhir.ml" +# 31519 "parser_cocci_menhir.ml" ) = Obj.magic rp1 in let d : 'tv_d_ident = Obj.magic d in let st : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) -# 31441 "parser_cocci_menhir.ml" +# 31525 "parser_cocci_menhir.ml" ) = Obj.magic st in let lp1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 31446 "parser_cocci_menhir.ml" +# 31530 "parser_cocci_menhir.ml" ) = Obj.magic lp1 in let t : 'tv_ctype = Obj.magic t in let _startpos = _startpos_t_ in let _endpos = _endpos_pv_ in let _v : 'tv_struct_decl = -# 621 "parser_cocci_menhir.mly" +# 601 "parser_cocci_menhir.mly" ( let (id,fn) = d in let t = Ast0.wrap @@ -31456,7 +31540,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct (t,P.clt2mcode "(" lp1,P.clt2mcode "*" st,P.clt2mcode ")" rp1, P.clt2mcode "(" lp2,p,P.clt2mcode ")" rp2)) in [Ast0.wrap(Ast0.UnInit(None,fn t,id,P.clt2mcode ";" pv))] ) -# 31460 "parser_cocci_menhir.ml" +# 31544 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31485,9 +31569,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 31491 "parser_cocci_menhir.ml" +# 31575 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident = Obj.magic i in @@ -31497,15 +31581,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 31501 "parser_cocci_menhir.ml" +# 31585 "parser_cocci_menhir.ml" in -# 629 "parser_cocci_menhir.mly" +# 609 "parser_cocci_menhir.mly" ( let (id,fn) = d in let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in [Ast0.wrap(Ast0.UnInit(None,fn idtype,id,P.clt2mcode ";" pv))] ) -# 31509 "parser_cocci_menhir.ml" +# 31593 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31539,9 +31623,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let pv : ( -# 130 "parser_cocci_menhir.mly" +# 110 "parser_cocci_menhir.mly" (Data.clt) -# 31545 "parser_cocci_menhir.ml" +# 31629 "parser_cocci_menhir.ml" ) = Obj.magic pv in let d : 'tv_d_ident = Obj.magic d in let i : 'tv_pure_ident = Obj.magic i in @@ -31553,15 +31637,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 31557 "parser_cocci_menhir.ml" +# 31641 "parser_cocci_menhir.ml" in -# 629 "parser_cocci_menhir.mly" +# 609 "parser_cocci_menhir.mly" ( let (id,fn) = d in let idtype = P.make_cv cv (Ast0.wrap (Ast0.TypeName(P.id2mcode i))) in [Ast0.wrap(Ast0.UnInit(None,fn idtype,id,P.clt2mcode ";" pv))] ) -# 31565 "parser_cocci_menhir.ml" +# 31649 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31583,9 +31667,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_struct_decl_list = -# 634 "parser_cocci_menhir.mly" +# 614 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS(_1)) ) -# 31589 "parser_cocci_menhir.ml" +# 31673 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31607,9 +31691,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_struct_decl_list_start = -# 637 "parser_cocci_menhir.mly" +# 617 "parser_cocci_menhir.mly" ( _1 ) -# 31613 "parser_cocci_menhir.ml" +# 31697 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31637,9 +31721,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_struct_decl_list_start = -# 638 "parser_cocci_menhir.mly" +# 618 "parser_cocci_menhir.mly" ( _1@_2 ) -# 31643 "parser_cocci_menhir.ml" +# 31727 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31667,9 +31751,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_d_ in let _endpos = _endpos_r_ in let _v : 'tv_struct_decl_list_start = -# 640 "parser_cocci_menhir.mly" +# 620 "parser_cocci_menhir.mly" ( (P.mkddots "..." d)::r ) -# 31673 "parser_cocci_menhir.ml" +# 31757 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31688,16 +31772,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 72 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 31694 "parser_cocci_menhir.ml" +# 31778 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : 'tv_struct_or_union = -# 611 "parser_cocci_menhir.mly" +# 591 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Struct s ) -# 31701 "parser_cocci_menhir.ml" +# 31785 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31716,16 +31800,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let u : ( -# 72 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 31722 "parser_cocci_menhir.ml" +# 31806 "parser_cocci_menhir.ml" ) = Obj.magic u in let _startpos = _startpos_u_ in let _endpos = _endpos_u_ in let _v : 'tv_struct_or_union = -# 612 "parser_cocci_menhir.mly" +# 592 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Union u ) -# 31729 "parser_cocci_menhir.ml" +# 31813 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31751,7 +31835,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos_i_ in let _v : 'tv_sub = -# 1629 "parser_cocci_menhir.mly" +# 1613 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -31760,7 +31844,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct P.check_inherited_constraint i (function mv -> Ast.MetaExpDecl(Ast.NONE,mv,None)) in [i] ) -# 31764 "parser_cocci_menhir.ml" +# 31848 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31794,7 +31878,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_sub = -# 1638 "parser_cocci_menhir.mly" +# 1622 "parser_cocci_menhir.mly" ( (if !Data.in_iso then failwith "constraints not allowed in iso file"); (if !Data.in_generating @@ -31804,7 +31888,7 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct P.check_inherited_constraint i (function mv -> Ast.MetaExpDecl(Ast.NONE,mv,None))) l) -# 31808 "parser_cocci_menhir.ml" +# 31892 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31826,9 +31910,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_top_eexpr = -# 1259 "parser_cocci_menhir.mly" +# 1243 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.OTHER(Ast0.wrap(Ast0.Exp(_1)))) ) -# 31832 "parser_cocci_menhir.ml" +# 31916 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31857,22 +31941,22 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let _3 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 31863 "parser_cocci_menhir.ml" +# 31947 "parser_cocci_menhir.ml" ) = Obj.magic _3 in let _2 : 'tv_initialize_list = Obj.magic _2 in let _1 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 31869 "parser_cocci_menhir.ml" +# 31953 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_top_init = -# 1837 "parser_cocci_menhir.mly" +# 1821 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.InitList(P.clt2mcode "{" _1,_2,P.clt2mcode "}" _3)) ) -# 31876 "parser_cocci_menhir.ml" +# 31960 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31887,9 +31971,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_toplevel_after_dots = -# 1825 "parser_cocci_menhir.mly" +# 1809 "parser_cocci_menhir.mly" ([]) -# 31893 "parser_cocci_menhir.ml" +# 31977 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31915,9 +31999,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_dots = -# 1826 "parser_cocci_menhir.mly" +# 1810 "parser_cocci_menhir.mly" (_2) -# 31921 "parser_cocci_menhir.ml" +# 32005 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31945,9 +32029,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_dots = -# 1827 "parser_cocci_menhir.mly" +# 1811 "parser_cocci_menhir.mly" ((Ast0.wrap(Ast0.Exp(_1)))::_2) -# 31951 "parser_cocci_menhir.ml" +# 32035 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -31975,9 +32059,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_dots = -# 1828 "parser_cocci_menhir.mly" +# 1812 "parser_cocci_menhir.mly" (_1@_2) -# 31981 "parser_cocci_menhir.ml" +# 32065 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32003,9 +32087,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_dots_init = -# 1816 "parser_cocci_menhir.mly" +# 1800 "parser_cocci_menhir.mly" (_2) -# 32009 "parser_cocci_menhir.ml" +# 32093 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32033,9 +32117,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_dots_init = -# 1817 "parser_cocci_menhir.mly" +# 1801 "parser_cocci_menhir.mly" ((Ast0.wrap(Ast0.Exp(_1)))::_2) -# 32039 "parser_cocci_menhir.ml" +# 32123 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32063,9 +32147,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_dots_init = -# 1818 "parser_cocci_menhir.mly" +# 1802 "parser_cocci_menhir.mly" (_1@_2) -# 32069 "parser_cocci_menhir.ml" +# 32153 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32080,9 +32164,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_toplevel_after_exp = -# 1821 "parser_cocci_menhir.mly" +# 1805 "parser_cocci_menhir.mly" ([]) -# 32086 "parser_cocci_menhir.ml" +# 32170 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32110,9 +32194,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_exp = -# 1822 "parser_cocci_menhir.mly" +# 1806 "parser_cocci_menhir.mly" (_1::_2) -# 32116 "parser_cocci_menhir.ml" +# 32200 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32127,9 +32211,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _menhir_env.MenhirLib.EngineTypes.lexbuf.Lexing.lex_start_p in let _endpos = _startpos in let _v : 'tv_toplevel_after_stm = -# 1831 "parser_cocci_menhir.mly" +# 1815 "parser_cocci_menhir.mly" ([]) -# 32133 "parser_cocci_menhir.ml" +# 32217 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32157,9 +32241,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_stm = -# 1832 "parser_cocci_menhir.mly" +# 1816 "parser_cocci_menhir.mly" (_1::_2) -# 32163 "parser_cocci_menhir.ml" +# 32247 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32187,9 +32271,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_after_stm = -# 1833 "parser_cocci_menhir.mly" +# 1817 "parser_cocci_menhir.mly" (_1@_2) -# 32193 "parser_cocci_menhir.ml" +# 32277 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32217,9 +32301,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = -# 1811 "parser_cocci_menhir.mly" +# 1795 "parser_cocci_menhir.mly" ( _1::_2 ) -# 32223 "parser_cocci_menhir.ml" +# 32307 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32247,9 +32331,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = -# 1812 "parser_cocci_menhir.mly" +# 1796 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.Exp(_1)))::_2 ) -# 32253 "parser_cocci_menhir.ml" +# 32337 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32277,9 +32361,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_seq_start_toplevel_after_dots_ = -# 1813 "parser_cocci_menhir.mly" +# 1797 "parser_cocci_menhir.mly" ( _1@_2 ) -# 32283 "parser_cocci_menhir.ml" +# 32367 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32310,9 +32394,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let b : 'tv_toplevel_after_dots_init = Obj.magic b in let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in let a0 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 32316 "parser_cocci_menhir.ml" +# 32400 "parser_cocci_menhir.ml" ) = Obj.magic a0 in let _startpos = _startpos_a0_ in let _endpos = _endpos_b_ in @@ -32320,15 +32404,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let w = w0 in let a = a0 in -# 940 "parser_cocci_menhir.mly" +# 920 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Dots(P.clt2mcode "..." a, List.concat w)) ) -# 32326 "parser_cocci_menhir.ml" +# 32410 "parser_cocci_menhir.ml" in -# 1804 "parser_cocci_menhir.mly" +# 1788 "parser_cocci_menhir.mly" ( a::b ) -# 32332 "parser_cocci_menhir.ml" +# 32416 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32368,16 +32452,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_toplevel_after_dots_init = Obj.magic b in let c0 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 32374 "parser_cocci_menhir.ml" +# 32458 "parser_cocci_menhir.ml" ) = Obj.magic c0 in let b0 : 'tv_nest_start = Obj.magic b0 in let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in let a0 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 32381 "parser_cocci_menhir.ml" +# 32465 "parser_cocci_menhir.ml" ) = Obj.magic a0 in let _startpos = _startpos_a0_ in let _endpos = _endpos_b_ in @@ -32387,16 +32471,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let w = w0 in let a = a0 in -# 944 "parser_cocci_menhir.mly" +# 924 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." a, b, P.clt2mcode "...>" c, List.concat w, false)) ) -# 32394 "parser_cocci_menhir.ml" +# 32478 "parser_cocci_menhir.ml" in -# 1805 "parser_cocci_menhir.mly" +# 1789 "parser_cocci_menhir.mly" ( a::b ) -# 32400 "parser_cocci_menhir.ml" +# 32484 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32436,16 +32520,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let b : 'tv_toplevel_after_dots_init = Obj.magic b in let c0 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 32442 "parser_cocci_menhir.ml" +# 32526 "parser_cocci_menhir.ml" ) = Obj.magic c0 in let b0 : 'tv_nest_start = Obj.magic b0 in let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in let a0 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 32449 "parser_cocci_menhir.ml" +# 32533 "parser_cocci_menhir.ml" ) = Obj.magic a0 in let _startpos = _startpos_a0_ in let _endpos = _endpos_b_ in @@ -32455,16 +32539,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let w = w0 in let a = a0 in -# 947 "parser_cocci_menhir.mly" +# 927 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." a, b, P.clt2mcode "...+>" c, List.concat w, true)) ) -# 32462 "parser_cocci_menhir.ml" +# 32546 "parser_cocci_menhir.ml" in -# 1805 "parser_cocci_menhir.mly" +# 1789 "parser_cocci_menhir.mly" ( a::b ) -# 32468 "parser_cocci_menhir.ml" +# 32552 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32498,16 +32582,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let c0 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 32504 "parser_cocci_menhir.ml" +# 32588 "parser_cocci_menhir.ml" ) = Obj.magic c0 in let b0 : 'tv_nest_start = Obj.magic b0 in let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in let a0 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 32511 "parser_cocci_menhir.ml" +# 32595 "parser_cocci_menhir.ml" ) = Obj.magic a0 in let _startpos = _startpos_a0_ in let _endpos = _endpos_c0_ in @@ -32517,16 +32601,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let w = w0 in let a = a0 in -# 944 "parser_cocci_menhir.mly" +# 924 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<..." a, b, P.clt2mcode "...>" c, List.concat w, false)) ) -# 32524 "parser_cocci_menhir.ml" +# 32608 "parser_cocci_menhir.ml" in -# 1806 "parser_cocci_menhir.mly" +# 1790 "parser_cocci_menhir.mly" ( [a] ) -# 32530 "parser_cocci_menhir.ml" +# 32614 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32560,16 +32644,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let c0 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 32566 "parser_cocci_menhir.ml" +# 32650 "parser_cocci_menhir.ml" ) = Obj.magic c0 in let b0 : 'tv_nest_start = Obj.magic b0 in let w0 : 'tv_list_whenppdecs_ = Obj.magic w0 in let a0 : ( -# 96 "parser_cocci_menhir.mly" +# 76 "parser_cocci_menhir.mly" (Data.clt) -# 32573 "parser_cocci_menhir.ml" +# 32657 "parser_cocci_menhir.ml" ) = Obj.magic a0 in let _startpos = _startpos_a0_ in let _endpos = _endpos_c0_ in @@ -32579,16 +32663,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let w = w0 in let a = a0 in -# 947 "parser_cocci_menhir.mly" +# 927 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Nest(P.clt2mcode "<+..." a, b, P.clt2mcode "...+>" c, List.concat w, true)) ) -# 32586 "parser_cocci_menhir.ml" +# 32670 "parser_cocci_menhir.ml" in -# 1806 "parser_cocci_menhir.mly" +# 1790 "parser_cocci_menhir.mly" ( [a] ) -# 32592 "parser_cocci_menhir.ml" +# 32676 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32616,9 +32700,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = -# 1807 "parser_cocci_menhir.mly" +# 1791 "parser_cocci_menhir.mly" ( (Ast0.wrap(Ast0.Exp(_1)))::_2 ) -# 32622 "parser_cocci_menhir.ml" +# 32706 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32646,9 +32730,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_toplevel_seq_startne_toplevel_after_dots_init_ = -# 1808 "parser_cocci_menhir.mly" +# 1792 "parser_cocci_menhir.mly" ( _1@_2 ) -# 32652 "parser_cocci_menhir.ml" +# 32736 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32678,14 +32762,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 32684 "parser_cocci_menhir.ml" +# 32768 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 32689 "parser_cocci_menhir.ml" +# 32773 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -32695,28 +32779,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 529 "parser_cocci_menhir.mly" +# 509 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 32701 "parser_cocci_menhir.ml" +# 32785 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 32707 "parser_cocci_menhir.ml" +# 32791 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 32714 "parser_cocci_menhir.ml" +# 32798 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 32720 "parser_cocci_menhir.ml" +# 32804 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32746,14 +32830,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 32752 "parser_cocci_menhir.ml" +# 32836 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 32757 "parser_cocci_menhir.ml" +# 32841 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -32763,28 +32847,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 531 "parser_cocci_menhir.mly" +# 511 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 32769 "parser_cocci_menhir.ml" +# 32853 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 32775 "parser_cocci_menhir.ml" +# 32859 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 32782 "parser_cocci_menhir.ml" +# 32866 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 32788 "parser_cocci_menhir.ml" +# 32872 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32814,14 +32898,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 32820 "parser_cocci_menhir.ml" +# 32904 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 32825 "parser_cocci_menhir.ml" +# 32909 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -32831,28 +32915,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 533 "parser_cocci_menhir.mly" +# 513 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 32837 "parser_cocci_menhir.ml" +# 32921 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 32843 "parser_cocci_menhir.ml" +# 32927 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 32850 "parser_cocci_menhir.ml" +# 32934 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 32856 "parser_cocci_menhir.ml" +# 32940 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32882,14 +32966,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 32888 "parser_cocci_menhir.ml" +# 32972 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 32893 "parser_cocci_menhir.ml" +# 32977 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -32899,29 +32983,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 535 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 32906 "parser_cocci_menhir.ml" +# 32990 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 32912 "parser_cocci_menhir.ml" +# 32996 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 32919 "parser_cocci_menhir.ml" +# 33003 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 32925 "parser_cocci_menhir.ml" +# 33009 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -32960,19 +33044,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 32966 "parser_cocci_menhir.ml" +# 33050 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 32971 "parser_cocci_menhir.ml" +# 33055 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 32976 "parser_cocci_menhir.ml" +# 33060 "parser_cocci_menhir.ml" ) = Obj.magic r1 in let _startpos = _startpos_r1_ in let _endpos = _endpos_m_ in @@ -32984,33 +33068,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 538 "parser_cocci_menhir.mly" +# 518 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), Ast0.Impure (*will be ignored*))) ) -# 32995 "parser_cocci_menhir.ml" +# 33079 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 33001 "parser_cocci_menhir.ml" +# 33085 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 33008 "parser_cocci_menhir.ml" +# 33092 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 33014 "parser_cocci_menhir.ml" +# 33098 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33040,14 +33124,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 33046 "parser_cocci_menhir.ml" +# 33130 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 33051 "parser_cocci_menhir.ml" +# 33135 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -33057,28 +33141,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 545 "parser_cocci_menhir.mly" +# 525 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) -# 33063 "parser_cocci_menhir.ml" +# 33147 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 33069 "parser_cocci_menhir.ml" +# 33153 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 33076 "parser_cocci_menhir.ml" +# 33160 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 33082 "parser_cocci_menhir.ml" +# 33166 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33113,19 +33197,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 33119 "parser_cocci_menhir.ml" +# 33203 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 33124 "parser_cocci_menhir.ml" +# 33208 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 33129 "parser_cocci_menhir.ml" +# 33213 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -33137,31 +33221,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 547 "parser_cocci_menhir.mly" +# 527 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 33146 "parser_cocci_menhir.ml" +# 33230 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 33152 "parser_cocci_menhir.ml" +# 33236 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 33159 "parser_cocci_menhir.ml" +# 33243 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 33165 "parser_cocci_menhir.ml" +# 33249 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33191,14 +33275,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 33197 "parser_cocci_menhir.ml" +# 33281 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 33202 "parser_cocci_menhir.ml" +# 33286 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -33208,28 +33292,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 529 "parser_cocci_menhir.mly" +# 509 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 33214 "parser_cocci_menhir.ml" +# 33298 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 33220 "parser_cocci_menhir.ml" +# 33304 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 33227 "parser_cocci_menhir.ml" +# 33311 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 33233 "parser_cocci_menhir.ml" +# 33317 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33259,14 +33343,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 33265 "parser_cocci_menhir.ml" +# 33349 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 33270 "parser_cocci_menhir.ml" +# 33354 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -33276,28 +33360,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 531 "parser_cocci_menhir.mly" +# 511 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 33282 "parser_cocci_menhir.ml" +# 33366 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 33288 "parser_cocci_menhir.ml" +# 33372 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 33295 "parser_cocci_menhir.ml" +# 33379 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 33301 "parser_cocci_menhir.ml" +# 33385 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33327,14 +33411,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 33333 "parser_cocci_menhir.ml" +# 33417 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 33338 "parser_cocci_menhir.ml" +# 33422 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -33344,28 +33428,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 533 "parser_cocci_menhir.mly" +# 513 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 33350 "parser_cocci_menhir.ml" +# 33434 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 33356 "parser_cocci_menhir.ml" +# 33440 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 33363 "parser_cocci_menhir.ml" +# 33447 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 33369 "parser_cocci_menhir.ml" +# 33453 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33395,14 +33479,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 33401 "parser_cocci_menhir.ml" +# 33485 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 33406 "parser_cocci_menhir.ml" +# 33490 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -33412,29 +33496,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 535 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 33419 "parser_cocci_menhir.ml" +# 33503 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 33425 "parser_cocci_menhir.ml" +# 33509 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 33432 "parser_cocci_menhir.ml" +# 33516 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 33438 "parser_cocci_menhir.ml" +# 33522 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33473,19 +33557,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 33479 "parser_cocci_menhir.ml" +# 33563 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 33484 "parser_cocci_menhir.ml" +# 33568 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 33489 "parser_cocci_menhir.ml" +# 33573 "parser_cocci_menhir.ml" ) = Obj.magic r1 in let _startpos = _startpos_r1_ in let _endpos = _endpos_m_ in @@ -33497,33 +33581,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 538 "parser_cocci_menhir.mly" +# 518 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), Ast0.Impure (*will be ignored*))) ) -# 33508 "parser_cocci_menhir.ml" +# 33592 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 33514 "parser_cocci_menhir.ml" +# 33598 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 33521 "parser_cocci_menhir.ml" +# 33605 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 33527 "parser_cocci_menhir.ml" +# 33611 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33553,14 +33637,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 33559 "parser_cocci_menhir.ml" +# 33643 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 33564 "parser_cocci_menhir.ml" +# 33648 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -33570,28 +33654,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 545 "parser_cocci_menhir.mly" +# 525 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) -# 33576 "parser_cocci_menhir.ml" +# 33660 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 33582 "parser_cocci_menhir.ml" +# 33666 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 33589 "parser_cocci_menhir.ml" +# 33673 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 33595 "parser_cocci_menhir.ml" +# 33679 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33626,19 +33710,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 33632 "parser_cocci_menhir.ml" +# 33716 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 33637 "parser_cocci_menhir.ml" +# 33721 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 33642 "parser_cocci_menhir.ml" +# 33726 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let _startpos = _startpos_r0_ in let _endpos = _endpos_m_ in @@ -33650,31 +33734,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 547 "parser_cocci_menhir.mly" +# 527 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 33659 "parser_cocci_menhir.ml" +# 33743 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 33665 "parser_cocci_menhir.ml" +# 33749 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 33672 "parser_cocci_menhir.ml" +# 33756 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 33678 "parser_cocci_menhir.ml" +# 33762 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33699,9 +33783,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 33705 "parser_cocci_menhir.ml" +# 33789 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -33710,28 +33794,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 529 "parser_cocci_menhir.mly" +# 509 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 33716 "parser_cocci_menhir.ml" +# 33800 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 33722 "parser_cocci_menhir.ml" +# 33806 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 33729 "parser_cocci_menhir.ml" +# 33813 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 33735 "parser_cocci_menhir.ml" +# 33819 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33756,9 +33840,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 33762 "parser_cocci_menhir.ml" +# 33846 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -33767,28 +33851,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 531 "parser_cocci_menhir.mly" +# 511 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 33773 "parser_cocci_menhir.ml" +# 33857 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 33779 "parser_cocci_menhir.ml" +# 33863 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 33786 "parser_cocci_menhir.ml" +# 33870 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 33792 "parser_cocci_menhir.ml" +# 33876 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33813,9 +33897,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 33819 "parser_cocci_menhir.ml" +# 33903 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -33824,28 +33908,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 533 "parser_cocci_menhir.mly" +# 513 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 33830 "parser_cocci_menhir.ml" +# 33914 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 33836 "parser_cocci_menhir.ml" +# 33920 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 33843 "parser_cocci_menhir.ml" +# 33927 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 33849 "parser_cocci_menhir.ml" +# 33933 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33870,9 +33954,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 33876 "parser_cocci_menhir.ml" +# 33960 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let _startpos = _startpos_p00_ in let _endpos = _endpos_m_ in @@ -33881,29 +33965,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 535 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 33888 "parser_cocci_menhir.ml" +# 33972 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 33894 "parser_cocci_menhir.ml" +# 33978 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 33901 "parser_cocci_menhir.ml" +# 33985 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 33907 "parser_cocci_menhir.ml" +# 33991 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -33937,14 +34021,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 33943 "parser_cocci_menhir.ml" +# 34027 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 33948 "parser_cocci_menhir.ml" +# 34032 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let _startpos = _startpos_r00_ in let _endpos = _endpos_m_ in @@ -33955,33 +34039,33 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 538 "parser_cocci_menhir.mly" +# 518 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), Ast0.Impure (*will be ignored*))) ) -# 33966 "parser_cocci_menhir.ml" +# 34050 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 33972 "parser_cocci_menhir.ml" +# 34056 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 33979 "parser_cocci_menhir.ml" +# 34063 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 33985 "parser_cocci_menhir.ml" +# 34069 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34006,9 +34090,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 34012 "parser_cocci_menhir.ml" +# 34096 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -34017,28 +34101,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 545 "parser_cocci_menhir.mly" +# 525 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) -# 34023 "parser_cocci_menhir.ml" +# 34107 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 34029 "parser_cocci_menhir.ml" +# 34113 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 34036 "parser_cocci_menhir.ml" +# 34120 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 34042 "parser_cocci_menhir.ml" +# 34126 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34068,14 +34152,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 34074 "parser_cocci_menhir.ml" +# 34158 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 34079 "parser_cocci_menhir.ml" +# 34163 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let _startpos = _startpos_ty100_ in let _endpos = _endpos_m_ in @@ -34086,31 +34170,31 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 547 "parser_cocci_menhir.mly" +# 527 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 34095 "parser_cocci_menhir.ml" +# 34179 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 34101 "parser_cocci_menhir.ml" +# 34185 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 34108 "parser_cocci_menhir.ml" +# 34192 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 34114 "parser_cocci_menhir.ml" +# 34198 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34135,9 +34219,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 72 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 34141 "parser_cocci_menhir.ml" +# 34225 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -34146,28 +34230,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 555 "parser_cocci_menhir.mly" +# 535 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) ) -# 34152 "parser_cocci_menhir.ml" +# 34236 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 34158 "parser_cocci_menhir.ml" +# 34242 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 34165 "parser_cocci_menhir.ml" +# 34249 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 34171 "parser_cocci_menhir.ml" +# 34255 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34192,9 +34276,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 34198 "parser_cocci_menhir.ml" +# 34282 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -34203,28 +34287,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 557 "parser_cocci_menhir.mly" +# 537 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) ) -# 34209 "parser_cocci_menhir.ml" +# 34293 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 34215 "parser_cocci_menhir.ml" +# 34299 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 34222 "parser_cocci_menhir.ml" +# 34306 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 34228 "parser_cocci_menhir.ml" +# 34312 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34249,9 +34333,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 34255 "parser_cocci_menhir.ml" +# 34339 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let _startpos = _startpos_ty00_ in let _endpos = _endpos_m_ in @@ -34260,28 +34344,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 559 "parser_cocci_menhir.mly" +# 539 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) ) -# 34266 "parser_cocci_menhir.ml" +# 34350 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 34272 "parser_cocci_menhir.ml" +# 34356 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 34279 "parser_cocci_menhir.ml" +# 34363 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 34285 "parser_cocci_menhir.ml" +# 34369 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34312,9 +34396,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let m : 'tv_list_TMul_ = Obj.magic m in let i00 : 'tv_ident = Obj.magic i00 in let s00 : ( -# 72 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 34318 "parser_cocci_menhir.ml" +# 34402 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let _startpos = _startpos_s00_ in let _endpos = _endpos_m_ in @@ -34325,28 +34409,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 561 "parser_cocci_menhir.mly" +# 541 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)) ) -# 34331 "parser_cocci_menhir.ml" +# 34415 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 34337 "parser_cocci_menhir.ml" +# 34421 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 34344 "parser_cocci_menhir.ml" +# 34428 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 34350 "parser_cocci_menhir.ml" +# 34434 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34386,28 +34470,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 563 "parser_cocci_menhir.mly" +# 543 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) ) -# 34392 "parser_cocci_menhir.ml" +# 34476 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 34398 "parser_cocci_menhir.ml" +# 34482 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 34405 "parser_cocci_menhir.ml" +# 34489 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 34411 "parser_cocci_menhir.ml" +# 34495 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34447,15 +34531,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 34453 "parser_cocci_menhir.ml" +# 34537 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 34459 "parser_cocci_menhir.ml" +# 34543 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : 'tv_struct_or_union = Obj.magic s00 in let _startpos = _startpos_s00_ in @@ -34474,36 +34558,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 34478 "parser_cocci_menhir.ml" +# 34562 "parser_cocci_menhir.ml" in -# 566 "parser_cocci_menhir.mly" +# 546 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "structures must be named in the iso file"); Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), P.clt2mcode "{" l, d, P.clt2mcode "}" r)) ) -# 34488 "parser_cocci_menhir.ml" +# 34572 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 34494 "parser_cocci_menhir.ml" +# 34578 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 34501 "parser_cocci_menhir.ml" +# 34585 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 34507 "parser_cocci_menhir.ml" +# 34591 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34548,15 +34632,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 34554 "parser_cocci_menhir.ml" +# 34638 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 34560 "parser_cocci_menhir.ml" +# 34644 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let x000 : 'tv_ident = Obj.magic x000 in let s00 : 'tv_struct_or_union = Obj.magic s00 in @@ -34579,36 +34663,36 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 34583 "parser_cocci_menhir.ml" +# 34667 "parser_cocci_menhir.ml" in -# 566 "parser_cocci_menhir.mly" +# 546 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "structures must be named in the iso file"); Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), P.clt2mcode "{" l, d, P.clt2mcode "}" r)) ) -# 34593 "parser_cocci_menhir.ml" +# 34677 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 34599 "parser_cocci_menhir.ml" +# 34683 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 34606 "parser_cocci_menhir.ml" +# 34690 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 34612 "parser_cocci_menhir.ml" +# 34696 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34648,20 +34732,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 34654 "parser_cocci_menhir.ml" +# 34738 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 34660 "parser_cocci_menhir.ml" +# 34744 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 34665 "parser_cocci_menhir.ml" +# 34749 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let _startpos = _startpos_s00_ in let _endpos = _endpos_m_ in @@ -34676,30 +34760,30 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let l = l0 in let s = s0 in -# 572 "parser_cocci_menhir.mly" +# 552 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = s in let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) ) -# 34684 "parser_cocci_menhir.ml" +# 34768 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 34690 "parser_cocci_menhir.ml" +# 34774 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 34697 "parser_cocci_menhir.ml" +# 34781 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 34703 "parser_cocci_menhir.ml" +# 34787 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34724,9 +34808,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 34730 "parser_cocci_menhir.ml" +# 34814 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let _startpos = _startpos_p00_ in let _endpos = _endpos_m_ in @@ -34735,28 +34819,28 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 576 "parser_cocci_menhir.mly" +# 556 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) ) -# 34741 "parser_cocci_menhir.ml" +# 34825 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 34747 "parser_cocci_menhir.ml" +# 34831 "parser_cocci_menhir.ml" in let cv = # 39 "standard.mly" ( None ) -# 34754 "parser_cocci_menhir.ml" +# 34838 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 34760 "parser_cocci_menhir.ml" +# 34844 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34791,14 +34875,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 34797 "parser_cocci_menhir.ml" +# 34881 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 34802 "parser_cocci_menhir.ml" +# 34886 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -34809,15 +34893,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 529 "parser_cocci_menhir.mly" +# 509 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 34815 "parser_cocci_menhir.ml" +# 34899 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 34821 "parser_cocci_menhir.ml" +# 34905 "parser_cocci_menhir.ml" in let cv = @@ -34825,13 +34909,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 34829 "parser_cocci_menhir.ml" +# 34913 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 34835 "parser_cocci_menhir.ml" +# 34919 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34866,14 +34950,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 34872 "parser_cocci_menhir.ml" +# 34956 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 34877 "parser_cocci_menhir.ml" +# 34961 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -34884,15 +34968,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 531 "parser_cocci_menhir.mly" +# 511 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 34890 "parser_cocci_menhir.ml" +# 34974 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 34896 "parser_cocci_menhir.ml" +# 34980 "parser_cocci_menhir.ml" in let cv = @@ -34900,13 +34984,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 34904 "parser_cocci_menhir.ml" +# 34988 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 34910 "parser_cocci_menhir.ml" +# 34994 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -34941,14 +35025,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 34947 "parser_cocci_menhir.ml" +# 35031 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 34952 "parser_cocci_menhir.ml" +# 35036 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -34959,15 +35043,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 533 "parser_cocci_menhir.mly" +# 513 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 34965 "parser_cocci_menhir.ml" +# 35049 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 34971 "parser_cocci_menhir.ml" +# 35055 "parser_cocci_menhir.ml" in let cv = @@ -34975,13 +35059,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 34979 "parser_cocci_menhir.ml" +# 35063 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 34985 "parser_cocci_menhir.ml" +# 35069 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35016,14 +35100,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 35022 "parser_cocci_menhir.ml" +# 35106 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 35027 "parser_cocci_menhir.ml" +# 35111 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -35034,16 +35118,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 535 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 35041 "parser_cocci_menhir.ml" +# 35125 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 35047 "parser_cocci_menhir.ml" +# 35131 "parser_cocci_menhir.ml" in let cv = @@ -35051,13 +35135,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 35055 "parser_cocci_menhir.ml" +# 35139 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 35061 "parser_cocci_menhir.ml" +# 35145 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35101,19 +35185,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 35107 "parser_cocci_menhir.ml" +# 35191 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 35112 "parser_cocci_menhir.ml" +# 35196 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 35117 "parser_cocci_menhir.ml" +# 35201 "parser_cocci_menhir.ml" ) = Obj.magic r1 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -35126,20 +35210,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 538 "parser_cocci_menhir.mly" +# 518 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), Ast0.Impure (*will be ignored*))) ) -# 35137 "parser_cocci_menhir.ml" +# 35221 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 35143 "parser_cocci_menhir.ml" +# 35227 "parser_cocci_menhir.ml" in let cv = @@ -35147,13 +35231,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 35151 "parser_cocci_menhir.ml" +# 35235 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 35157 "parser_cocci_menhir.ml" +# 35241 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35188,14 +35272,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 35194 "parser_cocci_menhir.ml" +# 35278 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 35199 "parser_cocci_menhir.ml" +# 35283 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -35206,15 +35290,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 545 "parser_cocci_menhir.mly" +# 525 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) -# 35212 "parser_cocci_menhir.ml" +# 35296 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 35218 "parser_cocci_menhir.ml" +# 35302 "parser_cocci_menhir.ml" in let cv = @@ -35222,13 +35306,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 35226 "parser_cocci_menhir.ml" +# 35310 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 35232 "parser_cocci_menhir.ml" +# 35316 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35268,19 +35352,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 35274 "parser_cocci_menhir.ml" +# 35358 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 35279 "parser_cocci_menhir.ml" +# 35363 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 35284 "parser_cocci_menhir.ml" +# 35368 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -35293,18 +35377,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 547 "parser_cocci_menhir.mly" +# 527 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 35302 "parser_cocci_menhir.ml" +# 35386 "parser_cocci_menhir.ml" in -# 581 "parser_cocci_menhir.mly" +# 561 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Signed r,Some ty)) ) -# 35308 "parser_cocci_menhir.ml" +# 35392 "parser_cocci_menhir.ml" in let cv = @@ -35312,13 +35396,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 35316 "parser_cocci_menhir.ml" +# 35400 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 35322 "parser_cocci_menhir.ml" +# 35406 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35353,14 +35437,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 35359 "parser_cocci_menhir.ml" +# 35443 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 35364 "parser_cocci_menhir.ml" +# 35448 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -35371,15 +35455,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 529 "parser_cocci_menhir.mly" +# 509 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 35377 "parser_cocci_menhir.ml" +# 35461 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 35383 "parser_cocci_menhir.ml" +# 35467 "parser_cocci_menhir.ml" in let cv = @@ -35387,13 +35471,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 35391 "parser_cocci_menhir.ml" +# 35475 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 35397 "parser_cocci_menhir.ml" +# 35481 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35428,14 +35512,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 35434 "parser_cocci_menhir.ml" +# 35518 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 35439 "parser_cocci_menhir.ml" +# 35523 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -35446,15 +35530,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 531 "parser_cocci_menhir.mly" +# 511 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 35452 "parser_cocci_menhir.ml" +# 35536 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 35458 "parser_cocci_menhir.ml" +# 35542 "parser_cocci_menhir.ml" in let cv = @@ -35462,13 +35546,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 35466 "parser_cocci_menhir.ml" +# 35550 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 35472 "parser_cocci_menhir.ml" +# 35556 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35503,14 +35587,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 35509 "parser_cocci_menhir.ml" +# 35593 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 35514 "parser_cocci_menhir.ml" +# 35598 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -35521,15 +35605,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 533 "parser_cocci_menhir.mly" +# 513 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 35527 "parser_cocci_menhir.ml" +# 35611 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 35533 "parser_cocci_menhir.ml" +# 35617 "parser_cocci_menhir.ml" in let cv = @@ -35537,13 +35621,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 35541 "parser_cocci_menhir.ml" +# 35625 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 35547 "parser_cocci_menhir.ml" +# 35631 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35578,14 +35662,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 35584 "parser_cocci_menhir.ml" +# 35668 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 35589 "parser_cocci_menhir.ml" +# 35673 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -35596,16 +35680,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 535 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 35603 "parser_cocci_menhir.ml" +# 35687 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 35609 "parser_cocci_menhir.ml" +# 35693 "parser_cocci_menhir.ml" in let cv = @@ -35613,13 +35697,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 35617 "parser_cocci_menhir.ml" +# 35701 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 35623 "parser_cocci_menhir.ml" +# 35707 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35663,19 +35747,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 35669 "parser_cocci_menhir.ml" +# 35753 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 35674 "parser_cocci_menhir.ml" +# 35758 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let r1 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 35679 "parser_cocci_menhir.ml" +# 35763 "parser_cocci_menhir.ml" ) = Obj.magic r1 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -35688,20 +35772,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 538 "parser_cocci_menhir.mly" +# 518 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), Ast0.Impure (*will be ignored*))) ) -# 35699 "parser_cocci_menhir.ml" +# 35783 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 35705 "parser_cocci_menhir.ml" +# 35789 "parser_cocci_menhir.ml" in let cv = @@ -35709,13 +35793,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 35713 "parser_cocci_menhir.ml" +# 35797 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 35719 "parser_cocci_menhir.ml" +# 35803 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35750,14 +35834,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 35756 "parser_cocci_menhir.ml" +# 35840 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 35761 "parser_cocci_menhir.ml" +# 35845 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -35768,15 +35852,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 545 "parser_cocci_menhir.mly" +# 525 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) -# 35774 "parser_cocci_menhir.ml" +# 35858 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 35780 "parser_cocci_menhir.ml" +# 35864 "parser_cocci_menhir.ml" in let cv = @@ -35784,13 +35868,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 35788 "parser_cocci_menhir.ml" +# 35872 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 35794 "parser_cocci_menhir.ml" +# 35878 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35830,19 +35914,19 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 35836 "parser_cocci_menhir.ml" +# 35920 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 35841 "parser_cocci_menhir.ml" +# 35925 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let r0 : ( -# 73 "parser_cocci_menhir.mly" +# 53 "parser_cocci_menhir.mly" (Data.clt) -# 35846 "parser_cocci_menhir.ml" +# 35930 "parser_cocci_menhir.ml" ) = Obj.magic r0 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -35855,18 +35939,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 547 "parser_cocci_menhir.mly" +# 527 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 35864 "parser_cocci_menhir.ml" +# 35948 "parser_cocci_menhir.ml" in -# 583 "parser_cocci_menhir.mly" +# 563 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Signed(P.clt2mcode Ast.Unsigned r,Some ty)) ) -# 35870 "parser_cocci_menhir.ml" +# 35954 "parser_cocci_menhir.ml" in let cv = @@ -35874,13 +35958,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 35878 "parser_cocci_menhir.ml" +# 35962 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 35884 "parser_cocci_menhir.ml" +# 35968 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35910,9 +35994,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 35916 "parser_cocci_menhir.ml" +# 36000 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -35922,15 +36006,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 529 "parser_cocci_menhir.mly" +# 509 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.CharType,[P.clt2mcode "char" ty])) ) -# 35928 "parser_cocci_menhir.ml" +# 36012 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 35934 "parser_cocci_menhir.ml" +# 36018 "parser_cocci_menhir.ml" in let cv = @@ -35938,13 +36022,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 35942 "parser_cocci_menhir.ml" +# 36026 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 35948 "parser_cocci_menhir.ml" +# 36032 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -35974,9 +36058,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 35980 "parser_cocci_menhir.ml" +# 36064 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -35986,15 +36070,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 531 "parser_cocci_menhir.mly" +# 511 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.ShortType,[P.clt2mcode "short" ty])) ) -# 35992 "parser_cocci_menhir.ml" +# 36076 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 35998 "parser_cocci_menhir.ml" +# 36082 "parser_cocci_menhir.ml" in let cv = @@ -36002,13 +36086,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 36006 "parser_cocci_menhir.ml" +# 36090 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 36012 "parser_cocci_menhir.ml" +# 36096 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36038,9 +36122,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 36044 "parser_cocci_menhir.ml" +# 36128 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -36050,15 +36134,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 533 "parser_cocci_menhir.mly" +# 513 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.IntType,[P.clt2mcode "int" ty])) ) -# 36056 "parser_cocci_menhir.ml" +# 36140 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 36062 "parser_cocci_menhir.ml" +# 36146 "parser_cocci_menhir.ml" in let cv = @@ -36066,13 +36150,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 36070 "parser_cocci_menhir.ml" +# 36154 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 36076 "parser_cocci_menhir.ml" +# 36160 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36102,9 +36186,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 36108 "parser_cocci_menhir.ml" +# 36192 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -36114,16 +36198,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 535 "parser_cocci_menhir.mly" +# 515 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = p in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 36121 "parser_cocci_menhir.ml" +# 36205 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 36127 "parser_cocci_menhir.ml" +# 36211 "parser_cocci_menhir.ml" in let cv = @@ -36131,13 +36215,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 36135 "parser_cocci_menhir.ml" +# 36219 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 36141 "parser_cocci_menhir.ml" +# 36225 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36176,14 +36260,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 36182 "parser_cocci_menhir.ml" +# 36266 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let r00 : ( -# 69 "parser_cocci_menhir.mly" +# 49 "parser_cocci_menhir.mly" (string) -# 36187 "parser_cocci_menhir.ml" +# 36271 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -36195,20 +36279,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let p = p0 in let r = r0 in -# 538 "parser_cocci_menhir.mly" +# 518 "parser_cocci_menhir.mly" ( let nm = (r,P.id2name p) in (* this is only possible when we are in a metavar decl. Otherwise, it will be represented already as a MetaType *) let _ = P.check_meta(Ast.MetaTypeDecl(Ast.NONE,nm)) in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm (P.id2clt p), Ast0.Impure (*will be ignored*))) ) -# 36206 "parser_cocci_menhir.ml" +# 36290 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 36212 "parser_cocci_menhir.ml" +# 36296 "parser_cocci_menhir.ml" in let cv = @@ -36216,13 +36300,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 36220 "parser_cocci_menhir.ml" +# 36304 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 36226 "parser_cocci_menhir.ml" +# 36310 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36252,9 +36336,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 36258 "parser_cocci_menhir.ml" +# 36342 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -36264,15 +36348,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 545 "parser_cocci_menhir.mly" +# 525 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.LongType,[P.clt2mcode "long" ty])) ) -# 36270 "parser_cocci_menhir.ml" +# 36354 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 36276 "parser_cocci_menhir.ml" +# 36360 "parser_cocci_menhir.ml" in let cv = @@ -36280,13 +36364,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 36284 "parser_cocci_menhir.ml" +# 36368 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 36290 "parser_cocci_menhir.ml" +# 36374 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36321,14 +36405,14 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty200 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 36327 "parser_cocci_menhir.ml" +# 36411 "parser_cocci_menhir.ml" ) = Obj.magic ty200 in let ty100 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 36332 "parser_cocci_menhir.ml" +# 36416 "parser_cocci_menhir.ml" ) = Obj.magic ty100 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -36340,18 +36424,18 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty2 = ty20 in let ty1 = ty10 in -# 547 "parser_cocci_menhir.mly" +# 527 "parser_cocci_menhir.mly" ( Ast0.wrap (Ast0.BaseType (Ast.LongLongType, [P.clt2mcode "long" ty1;P.clt2mcode "long" ty2])) ) -# 36349 "parser_cocci_menhir.ml" +# 36433 "parser_cocci_menhir.ml" in -# 584 "parser_cocci_menhir.mly" +# 564 "parser_cocci_menhir.mly" ( ty ) -# 36355 "parser_cocci_menhir.ml" +# 36439 "parser_cocci_menhir.ml" in let cv = @@ -36359,13 +36443,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 36363 "parser_cocci_menhir.ml" +# 36447 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 36369 "parser_cocci_menhir.ml" +# 36453 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36395,9 +36479,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 72 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 36401 "parser_cocci_menhir.ml" +# 36485 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -36407,15 +36491,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 555 "parser_cocci_menhir.mly" +# 535 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.VoidType,[P.clt2mcode "void" ty])) ) -# 36413 "parser_cocci_menhir.ml" +# 36497 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 36419 "parser_cocci_menhir.ml" +# 36503 "parser_cocci_menhir.ml" in let cv = @@ -36423,13 +36507,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 36427 "parser_cocci_menhir.ml" +# 36511 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 36433 "parser_cocci_menhir.ml" +# 36517 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36459,9 +36543,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 36465 "parser_cocci_menhir.ml" +# 36549 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -36471,15 +36555,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 557 "parser_cocci_menhir.mly" +# 537 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.DoubleType,[P.clt2mcode "double" ty])) ) -# 36477 "parser_cocci_menhir.ml" +# 36561 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 36483 "parser_cocci_menhir.ml" +# 36567 "parser_cocci_menhir.ml" in let cv = @@ -36487,13 +36571,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 36491 "parser_cocci_menhir.ml" +# 36575 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 36497 "parser_cocci_menhir.ml" +# 36581 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36523,9 +36607,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let ty00 : ( -# 71 "parser_cocci_menhir.mly" +# 51 "parser_cocci_menhir.mly" (Data.clt) -# 36529 "parser_cocci_menhir.ml" +# 36613 "parser_cocci_menhir.ml" ) = Obj.magic ty00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -36535,15 +36619,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let ty = ty0 in -# 559 "parser_cocci_menhir.mly" +# 539 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.BaseType(Ast.FloatType,[P.clt2mcode "float" ty])) ) -# 36541 "parser_cocci_menhir.ml" +# 36625 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 36547 "parser_cocci_menhir.ml" +# 36631 "parser_cocci_menhir.ml" in let cv = @@ -36551,13 +36635,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 36555 "parser_cocci_menhir.ml" +# 36639 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 36561 "parser_cocci_menhir.ml" +# 36645 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36593,9 +36677,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let m : 'tv_list_TMul_ = Obj.magic m in let i00 : 'tv_ident = Obj.magic i00 in let s00 : ( -# 72 "parser_cocci_menhir.mly" +# 52 "parser_cocci_menhir.mly" (Data.clt) -# 36599 "parser_cocci_menhir.ml" +# 36683 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -36607,15 +36691,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 561 "parser_cocci_menhir.mly" +# 541 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.EnumName(P.clt2mcode "enum" s, i)) ) -# 36613 "parser_cocci_menhir.ml" +# 36697 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 36619 "parser_cocci_menhir.ml" +# 36703 "parser_cocci_menhir.ml" in let cv = @@ -36623,13 +36707,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 36627 "parser_cocci_menhir.ml" +# 36711 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 36633 "parser_cocci_menhir.ml" +# 36717 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36675,15 +36759,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let i = i0 in let s = s0 in -# 563 "parser_cocci_menhir.mly" +# 543 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.StructUnionName(s, Some i)) ) -# 36681 "parser_cocci_menhir.ml" +# 36765 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 36687 "parser_cocci_menhir.ml" +# 36771 "parser_cocci_menhir.ml" in let cv = @@ -36691,13 +36775,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 36695 "parser_cocci_menhir.ml" +# 36779 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 36701 "parser_cocci_menhir.ml" +# 36785 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36742,15 +36826,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 36748 "parser_cocci_menhir.ml" +# 36832 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 36754 "parser_cocci_menhir.ml" +# 36838 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : 'tv_struct_or_union = Obj.magic s00 in let x0 : 'tv_const_vol = Obj.magic x0 in @@ -36770,23 +36854,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 39 "standard.mly" ( None ) -# 36774 "parser_cocci_menhir.ml" +# 36858 "parser_cocci_menhir.ml" in -# 566 "parser_cocci_menhir.mly" +# 546 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "structures must be named in the iso file"); Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), P.clt2mcode "{" l, d, P.clt2mcode "}" r)) ) -# 36784 "parser_cocci_menhir.ml" +# 36868 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 36790 "parser_cocci_menhir.ml" +# 36874 "parser_cocci_menhir.ml" in let cv = @@ -36794,13 +36878,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 36798 "parser_cocci_menhir.ml" +# 36882 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 36804 "parser_cocci_menhir.ml" +# 36888 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36850,15 +36934,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 36856 "parser_cocci_menhir.ml" +# 36940 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 36862 "parser_cocci_menhir.ml" +# 36946 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let x000 : 'tv_ident = Obj.magic x000 in let s00 : 'tv_struct_or_union = Obj.magic s00 in @@ -36882,23 +36966,23 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 36886 "parser_cocci_menhir.ml" +# 36970 "parser_cocci_menhir.ml" in -# 566 "parser_cocci_menhir.mly" +# 546 "parser_cocci_menhir.mly" ( (if i = None && !Data.in_iso then failwith "structures must be named in the iso file"); Ast0.wrap(Ast0.StructUnionDef(Ast0.wrap(Ast0.StructUnionName(s, i)), P.clt2mcode "{" l, d, P.clt2mcode "}" r)) ) -# 36896 "parser_cocci_menhir.ml" +# 36980 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 36902 "parser_cocci_menhir.ml" +# 36986 "parser_cocci_menhir.ml" in let cv = @@ -36906,13 +36990,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 36910 "parser_cocci_menhir.ml" +# 36994 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 36916 "parser_cocci_menhir.ml" +# 37000 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -36957,20 +37041,20 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let r00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 36963 "parser_cocci_menhir.ml" +# 37047 "parser_cocci_menhir.ml" ) = Obj.magic r00 in let d00 : 'tv_struct_decl_list = Obj.magic d00 in let l00 : ( -# 124 "parser_cocci_menhir.mly" +# 104 "parser_cocci_menhir.mly" (Data.clt) -# 36969 "parser_cocci_menhir.ml" +# 37053 "parser_cocci_menhir.ml" ) = Obj.magic l00 in let s00 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 36974 "parser_cocci_menhir.ml" +# 37058 "parser_cocci_menhir.ml" ) = Obj.magic s00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -36986,17 +37070,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let l = l0 in let s = s0 in -# 572 "parser_cocci_menhir.mly" +# 552 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = s in let ty = Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) in Ast0.wrap(Ast0.StructUnionDef(ty,P.clt2mcode "{" l,d,P.clt2mcode "}" r)) ) -# 36994 "parser_cocci_menhir.ml" +# 37078 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 37000 "parser_cocci_menhir.ml" +# 37084 "parser_cocci_menhir.ml" in let cv = @@ -37004,13 +37088,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 37008 "parser_cocci_menhir.ml" +# 37092 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 37014 "parser_cocci_menhir.ml" +# 37098 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37040,9 +37124,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let m : 'tv_list_TMul_ = Obj.magic m in let p00 : ( -# 81 "parser_cocci_menhir.mly" +# 61 "parser_cocci_menhir.mly" (string * Data.clt) -# 37046 "parser_cocci_menhir.ml" +# 37130 "parser_cocci_menhir.ml" ) = Obj.magic p00 in let x0 : 'tv_const_vol = Obj.magic x0 in let _startpos = _startpos_x0_ in @@ -37052,15 +37136,15 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let ty = let p = p0 in -# 576 "parser_cocci_menhir.mly" +# 556 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TypeName(P.id2mcode p)) ) -# 37058 "parser_cocci_menhir.ml" +# 37142 "parser_cocci_menhir.ml" in -# 585 "parser_cocci_menhir.mly" +# 565 "parser_cocci_menhir.mly" ( ty ) -# 37064 "parser_cocci_menhir.ml" +# 37148 "parser_cocci_menhir.ml" in let cv = @@ -37068,13 +37152,13 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct # 41 "standard.mly" ( Some x ) -# 37072 "parser_cocci_menhir.ml" +# 37156 "parser_cocci_menhir.ml" in -# 602 "parser_cocci_menhir.mly" +# 582 "parser_cocci_menhir.mly" ( P.pointerify (P.make_cv cv ty) m ) -# 37078 "parser_cocci_menhir.ml" +# 37162 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37103,24 +37187,24 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 37109 "parser_cocci_menhir.ml" +# 37193 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_midzero_list_ctype_ctype_ = Obj.magic t in let lp : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 37115 "parser_cocci_menhir.ml" +# 37199 "parser_cocci_menhir.ml" ) = Obj.magic lp in let _startpos = _startpos_lp_ in let _endpos = _endpos_rp_ in let _v : 'tv_typedef_ctype = -# 604 "parser_cocci_menhir.mly" +# 584 "parser_cocci_menhir.mly" ( let (mids,code) = t in Ast0.wrap (Ast0.DisjType(P.clt2mcode "(" lp,code,mids, P.clt2mcode ")" rp)) ) -# 37124 "parser_cocci_menhir.ml" +# 37208 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37142,9 +37226,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_typedef_ident = -# 1710 "parser_cocci_menhir.mly" +# 1694 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.TypeName(P.id2mcode _1)) ) -# 37148 "parser_cocci_menhir.ml" +# 37232 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37163,17 +37247,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 87 "parser_cocci_menhir.mly" +# 67 "parser_cocci_menhir.mly" (Parse_aux.info) -# 37169 "parser_cocci_menhir.ml" +# 37253 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_typedef_ident = -# 1712 "parser_cocci_menhir.mly" +# 1696 "parser_cocci_menhir.mly" ( let (nm,pure,clt) = _1 in Ast0.wrap(Ast0.MetaType(P.clt2mcode nm clt,pure)) ) -# 37177 "parser_cocci_menhir.ml" +# 37261 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37195,9 +37279,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1348 "parser_cocci_menhir.mly" +# 1332 "parser_cocci_menhir.mly" ( _1 ) -# 37201 "parser_cocci_menhir.ml" +# 37285 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37222,16 +37306,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _2 in let _1 : ( -# 108 "parser_cocci_menhir.mly" +# 88 "parser_cocci_menhir.mly" (Data.clt) -# 37228 "parser_cocci_menhir.ml" +# 37312 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1350 "parser_cocci_menhir.mly" +# 1334 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) ) -# 37235 "parser_cocci_menhir.ml" +# 37319 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37256,16 +37340,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _2 in let _1 : ( -# 108 "parser_cocci_menhir.mly" +# 88 "parser_cocci_menhir.mly" (Data.clt) -# 37262 "parser_cocci_menhir.ml" +# 37346 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1352 "parser_cocci_menhir.mly" +# 1336 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) ) -# 37269 "parser_cocci_menhir.ml" +# 37353 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37293,9 +37377,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1354 "parser_cocci_menhir.mly" +# 1338 "parser_cocci_menhir.mly" ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 37299 "parser_cocci_menhir.ml" +# 37383 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37320,17 +37404,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _2 in let _1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 37326 "parser_cocci_menhir.ml" +# 37410 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1356 "parser_cocci_menhir.mly" +# 1340 "parser_cocci_menhir.mly" ( let mcode = P.clt2mcode Ast.Not _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 37334 "parser_cocci_menhir.ml" +# 37418 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37355,16 +37439,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_dot_expressions_ = Obj.magic _2 in let _1 : ( -# 80 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt) -# 37361 "parser_cocci_menhir.ml" +# 37445 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1359 "parser_cocci_menhir.mly" +# 1343 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) ) -# 37368 "parser_cocci_menhir.ml" +# 37452 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37398,29 +37482,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 37404 "parser_cocci_menhir.ml" +# 37488 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 37410 "parser_cocci_menhir.ml" +# 37494 "parser_cocci_menhir.ml" ) = Obj.magic lp in let s : ( -# 80 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt) -# 37415 "parser_cocci_menhir.ml" +# 37499 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_rp_ in let _v : 'tv_unary_expr_eexpr_dot_expressions_ = -# 1361 "parser_cocci_menhir.mly" +# 1345 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s, P.clt2mcode "(" lp,t, P.clt2mcode ")" rp)) ) -# 37424 "parser_cocci_menhir.ml" +# 37508 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37442,9 +37526,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1348 "parser_cocci_menhir.mly" +# 1332 "parser_cocci_menhir.mly" ( _1 ) -# 37448 "parser_cocci_menhir.ml" +# 37532 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37469,16 +37553,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_invalid_ = Obj.magic _2 in let _1 : ( -# 108 "parser_cocci_menhir.mly" +# 88 "parser_cocci_menhir.mly" (Data.clt) -# 37475 "parser_cocci_menhir.ml" +# 37559 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1350 "parser_cocci_menhir.mly" +# 1334 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) ) -# 37482 "parser_cocci_menhir.ml" +# 37566 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37503,16 +37587,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_invalid_ = Obj.magic _2 in let _1 : ( -# 108 "parser_cocci_menhir.mly" +# 88 "parser_cocci_menhir.mly" (Data.clt) -# 37509 "parser_cocci_menhir.ml" +# 37593 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1352 "parser_cocci_menhir.mly" +# 1336 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) ) -# 37516 "parser_cocci_menhir.ml" +# 37600 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37540,9 +37624,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1354 "parser_cocci_menhir.mly" +# 1338 "parser_cocci_menhir.mly" ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 37546 "parser_cocci_menhir.ml" +# 37630 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37567,17 +37651,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_invalid_ = Obj.magic _2 in let _1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 37573 "parser_cocci_menhir.ml" +# 37657 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1356 "parser_cocci_menhir.mly" +# 1340 "parser_cocci_menhir.mly" ( let mcode = P.clt2mcode Ast.Not _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 37581 "parser_cocci_menhir.ml" +# 37665 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37602,16 +37686,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_invalid_ = Obj.magic _2 in let _1 : ( -# 80 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt) -# 37608 "parser_cocci_menhir.ml" +# 37692 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1359 "parser_cocci_menhir.mly" +# 1343 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) ) -# 37615 "parser_cocci_menhir.ml" +# 37699 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37645,29 +37729,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 37651 "parser_cocci_menhir.ml" +# 37735 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 37657 "parser_cocci_menhir.ml" +# 37741 "parser_cocci_menhir.ml" ) = Obj.magic lp in let s : ( -# 80 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt) -# 37662 "parser_cocci_menhir.ml" +# 37746 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_rp_ in let _v : 'tv_unary_expr_eexpr_invalid_ = -# 1361 "parser_cocci_menhir.mly" +# 1345 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s, P.clt2mcode "(" lp,t, P.clt2mcode ")" rp)) ) -# 37671 "parser_cocci_menhir.ml" +# 37755 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37689,9 +37773,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1348 "parser_cocci_menhir.mly" +# 1332 "parser_cocci_menhir.mly" ( _1 ) -# 37695 "parser_cocci_menhir.ml" +# 37779 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37716,16 +37800,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _2 in let _1 : ( -# 108 "parser_cocci_menhir.mly" +# 88 "parser_cocci_menhir.mly" (Data.clt) -# 37722 "parser_cocci_menhir.ml" +# 37806 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1350 "parser_cocci_menhir.mly" +# 1334 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) ) -# 37729 "parser_cocci_menhir.ml" +# 37813 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37750,16 +37834,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _2 in let _1 : ( -# 108 "parser_cocci_menhir.mly" +# 88 "parser_cocci_menhir.mly" (Data.clt) -# 37756 "parser_cocci_menhir.ml" +# 37840 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1352 "parser_cocci_menhir.mly" +# 1336 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) ) -# 37763 "parser_cocci_menhir.ml" +# 37847 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37787,9 +37871,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1354 "parser_cocci_menhir.mly" +# 1338 "parser_cocci_menhir.mly" ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 37793 "parser_cocci_menhir.ml" +# 37877 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37814,17 +37898,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _2 in let _1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 37820 "parser_cocci_menhir.ml" +# 37904 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1356 "parser_cocci_menhir.mly" +# 1340 "parser_cocci_menhir.mly" ( let mcode = P.clt2mcode Ast.Not _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 37828 "parser_cocci_menhir.ml" +# 37912 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37849,16 +37933,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_eexpr_nest_expressions_ = Obj.magic _2 in let _1 : ( -# 80 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt) -# 37855 "parser_cocci_menhir.ml" +# 37939 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1359 "parser_cocci_menhir.mly" +# 1343 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) ) -# 37862 "parser_cocci_menhir.ml" +# 37946 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37892,29 +37976,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 37898 "parser_cocci_menhir.ml" +# 37982 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 37904 "parser_cocci_menhir.ml" +# 37988 "parser_cocci_menhir.ml" ) = Obj.magic lp in let s : ( -# 80 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt) -# 37909 "parser_cocci_menhir.ml" +# 37993 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_rp_ in let _v : 'tv_unary_expr_eexpr_nest_expressions_ = -# 1361 "parser_cocci_menhir.mly" +# 1345 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s, P.clt2mcode "(" lp,t, P.clt2mcode ")" rp)) ) -# 37918 "parser_cocci_menhir.ml" +# 38002 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37936,9 +38020,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1348 "parser_cocci_menhir.mly" +# 1332 "parser_cocci_menhir.mly" ( _1 ) -# 37942 "parser_cocci_menhir.ml" +# 38026 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37963,16 +38047,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_expr_invalid_ = Obj.magic _2 in let _1 : ( -# 108 "parser_cocci_menhir.mly" +# 88 "parser_cocci_menhir.mly" (Data.clt) -# 37969 "parser_cocci_menhir.ml" +# 38053 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1350 "parser_cocci_menhir.mly" +# 1334 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Inc _1)) ) -# 37976 "parser_cocci_menhir.ml" +# 38060 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -37997,16 +38081,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_expr_invalid_ = Obj.magic _2 in let _1 : ( -# 108 "parser_cocci_menhir.mly" +# 88 "parser_cocci_menhir.mly" (Data.clt) -# 38003 "parser_cocci_menhir.ml" +# 38087 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1352 "parser_cocci_menhir.mly" +# 1336 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.Infix (_2, P.clt2mcode Ast.Dec _1)) ) -# 38010 "parser_cocci_menhir.ml" +# 38094 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38034,9 +38118,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1354 "parser_cocci_menhir.mly" +# 1338 "parser_cocci_menhir.mly" ( let mcode = _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 38040 "parser_cocci_menhir.ml" +# 38124 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38061,17 +38145,17 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_expr_invalid_ = Obj.magic _2 in let _1 : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 38067 "parser_cocci_menhir.ml" +# 38151 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1356 "parser_cocci_menhir.mly" +# 1340 "parser_cocci_menhir.mly" ( let mcode = P.clt2mcode Ast.Not _1 in Ast0.wrap(Ast0.Unary(_2, mcode)) ) -# 38075 "parser_cocci_menhir.ml" +# 38159 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38096,16 +38180,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct } = _menhir_stack in let _2 : 'tv_unary_expr_expr_invalid_ = Obj.magic _2 in let _1 : ( -# 80 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt) -# 38102 "parser_cocci_menhir.ml" +# 38186 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1359 "parser_cocci_menhir.mly" +# 1343 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfExpr (P.clt2mcode "sizeof" _1, _2)) ) -# 38109 "parser_cocci_menhir.ml" +# 38193 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38139,29 +38223,29 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct }; } = _menhir_stack in let rp : ( -# 100 "parser_cocci_menhir.mly" +# 80 "parser_cocci_menhir.mly" (Data.clt) -# 38145 "parser_cocci_menhir.ml" +# 38229 "parser_cocci_menhir.ml" ) = Obj.magic rp in let t : 'tv_ctype = Obj.magic t in let lp : ( -# 99 "parser_cocci_menhir.mly" +# 79 "parser_cocci_menhir.mly" (Data.clt) -# 38151 "parser_cocci_menhir.ml" +# 38235 "parser_cocci_menhir.ml" ) = Obj.magic lp in let s : ( -# 80 "parser_cocci_menhir.mly" +# 60 "parser_cocci_menhir.mly" (Data.clt) -# 38156 "parser_cocci_menhir.ml" +# 38240 "parser_cocci_menhir.ml" ) = Obj.magic s in let _startpos = _startpos_s_ in let _endpos = _endpos_rp_ in let _v : 'tv_unary_expr_expr_invalid_ = -# 1361 "parser_cocci_menhir.mly" +# 1345 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.SizeOfType (P.clt2mcode "sizeof" s, P.clt2mcode "(" lp,t, P.clt2mcode ")" rp)) ) -# 38165 "parser_cocci_menhir.ml" +# 38249 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38180,16 +38264,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 116 "parser_cocci_menhir.mly" +# 96 "parser_cocci_menhir.mly" (Data.clt) -# 38186 "parser_cocci_menhir.ml" +# 38270 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1365 "parser_cocci_menhir.mly" +# 1349 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.GetRef _1 ) -# 38193 "parser_cocci_menhir.ml" +# 38277 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38208,16 +38292,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) -# 38214 "parser_cocci_menhir.ml" +# 38298 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1366 "parser_cocci_menhir.mly" +# 1350 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.DeRef _1 ) -# 38221 "parser_cocci_menhir.ml" +# 38305 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38236,16 +38320,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 121 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) -# 38242 "parser_cocci_menhir.ml" +# 38326 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1367 "parser_cocci_menhir.mly" +# 1351 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.UnPlus _1 ) -# 38249 "parser_cocci_menhir.ml" +# 38333 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38264,16 +38348,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 121 "parser_cocci_menhir.mly" +# 101 "parser_cocci_menhir.mly" (Data.clt) -# 38270 "parser_cocci_menhir.ml" +# 38354 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1368 "parser_cocci_menhir.mly" +# 1352 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.UnMinus _1 ) -# 38277 "parser_cocci_menhir.ml" +# 38361 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38292,16 +38376,16 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 122 "parser_cocci_menhir.mly" +# 102 "parser_cocci_menhir.mly" (Data.clt) -# 38298 "parser_cocci_menhir.ml" +# 38382 "parser_cocci_menhir.ml" ) = Obj.magic _1 in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : 'tv_unary_op = -# 1369 "parser_cocci_menhir.mly" +# 1353 "parser_cocci_menhir.mly" ( P.clt2mcode Ast.Tilde _1 ) -# 38305 "parser_cocci_menhir.ml" +# 38389 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38329,9 +38413,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_when_start = -# 1930 "parser_cocci_menhir.mly" +# 1914 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS((Ast0.wrap(Ast0.Exp(_1)))::_2)) ) -# 38335 "parser_cocci_menhir.ml" +# 38419 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38359,9 +38443,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : 'tv_when_start = -# 1932 "parser_cocci_menhir.mly" +# 1916 "parser_cocci_menhir.mly" ( Ast0.wrap(Ast0.DOTS(_1@_2)) ) -# 38365 "parser_cocci_menhir.ml" +# 38449 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38383,9 +38467,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos_w_ in let _endpos = _endpos_w_ in let _v : 'tv_whenppdecs = -# 951 "parser_cocci_menhir.mly" +# 931 "parser_cocci_menhir.mly" ( w ) -# 38389 "parser_cocci_menhir.ml" +# 38473 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38419,9 +38503,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = -# 1998 "parser_cocci_menhir.mly" +# 1982 "parser_cocci_menhir.mly" ( [Ast0.WhenNot w] ) -# 38425 "parser_cocci_menhir.ml" +# 38509 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38455,9 +38539,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = -# 1999 "parser_cocci_menhir.mly" +# 1983 "parser_cocci_menhir.mly" ( [Ast0.WhenAlways w] ) -# 38461 "parser_cocci_menhir.ml" +# 38545 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38487,9 +38571,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = -# 2001 "parser_cocci_menhir.mly" +# 1985 "parser_cocci_menhir.mly" ( List.map (function x -> Ast0.WhenModifier(x)) _2 ) -# 38493 "parser_cocci_menhir.ml" +# 38577 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38523,9 +38607,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = -# 2002 "parser_cocci_menhir.mly" +# 1986 "parser_cocci_menhir.mly" ( [Ast0.WhenNotTrue e] ) -# 38529 "parser_cocci_menhir.ml" +# 38613 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38559,9 +38643,9 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : 'tv_whens_when_start_rule_elem_statement_any_strict_ = -# 2003 "parser_cocci_menhir.mly" +# 1987 "parser_cocci_menhir.mly" ( [Ast0.WhenNotFalse e] ) -# 38565 "parser_cocci_menhir.ml" +# 38649 "parser_cocci_menhir.ml" in _menhir_env.MenhirLib.EngineTypes.stack <- { MenhirLib.EngineTypes.state = _menhir_s; @@ -38582,106 +38666,106 @@ module MenhirInterpreter = MenhirLib.TableInterpreter.Make (struct let rec script_meta_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1820 lexer lexbuf) : ( -# 182 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1826 lexer lexbuf) : ( +# 162 "parser_cocci_menhir.mly" (string * Ast_cocci.meta_name) -# 38589 "parser_cocci_menhir.ml" +# 38673 "parser_cocci_menhir.ml" )) and rule_name = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1748 lexer lexbuf) : ( -# 176 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1754 lexer lexbuf) : ( +# 156 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 38597 "parser_cocci_menhir.ml" +# 38681 "parser_cocci_menhir.ml" )) and reinit = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1746 lexer lexbuf) : ( -# 154 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1752 lexer lexbuf) : ( +# 134 "parser_cocci_menhir.mly" (unit) -# 38605 "parser_cocci_menhir.ml" +# 38689 "parser_cocci_menhir.ml" )) and plus_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1710 lexer lexbuf) : ( -# 163 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1716 lexer lexbuf) : ( +# 143 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 38613 "parser_cocci_menhir.ml" +# 38697 "parser_cocci_menhir.ml" )) and plus_exp_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1702 lexer lexbuf) : ( -# 166 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1708 lexer lexbuf) : ( +# 146 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 38621 "parser_cocci_menhir.ml" +# 38705 "parser_cocci_menhir.ml" )) and never_used = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1696 lexer lexbuf) : ( -# 191 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1702 lexer lexbuf) : ( +# 171 "parser_cocci_menhir.mly" (unit) -# 38629 "parser_cocci_menhir.ml" +# 38713 "parser_cocci_menhir.ml" )) and minus_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1616 lexer lexbuf) : ( -# 157 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1622 lexer lexbuf) : ( +# 137 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 38637 "parser_cocci_menhir.ml" +# 38721 "parser_cocci_menhir.ml" )) and minus_exp_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1604 lexer lexbuf) : ( -# 160 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1610 lexer lexbuf) : ( +# 140 "parser_cocci_menhir.mly" (Ast0_cocci.rule) -# 38645 "parser_cocci_menhir.ml" +# 38729 "parser_cocci_menhir.ml" )) and meta_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1601 lexer lexbuf) : ( -# 180 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1607 lexer lexbuf) : ( +# 160 "parser_cocci_menhir.mly" ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list) -# 38653 "parser_cocci_menhir.ml" +# 38737 "parser_cocci_menhir.ml" )) and iso_rule_name = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1597 lexer lexbuf) : ( -# 172 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1603 lexer lexbuf) : ( +# 152 "parser_cocci_menhir.mly" (Ast_cocci.rulename) -# 38661 "parser_cocci_menhir.ml" +# 38745 "parser_cocci_menhir.ml" )) and iso_meta_main = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry 1343 lexer lexbuf) : ( -# 188 "parser_cocci_menhir.mly" + (Obj.magic (MenhirInterpreter.entry 1349 lexer lexbuf) : ( +# 168 "parser_cocci_menhir.mly" ((Ast_cocci.metavar,Ast_cocci.metavar) Common.either list) -# 38669 "parser_cocci_menhir.ml" +# 38753 "parser_cocci_menhir.ml" )) and iso_main = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry 18 lexer lexbuf) : ( -# 185 "parser_cocci_menhir.mly" +# 165 "parser_cocci_menhir.mly" (Ast0_cocci.anything list list) -# 38677 "parser_cocci_menhir.ml" +# 38761 "parser_cocci_menhir.ml" )) and include_main = fun lexer lexbuf -> (Obj.magic (MenhirInterpreter.entry 0 lexer lexbuf) : ( -# 169 "parser_cocci_menhir.mly" +# 149 "parser_cocci_menhir.mly" (Data.incl_iso list) -# 38685 "parser_cocci_menhir.ml" +# 38769 "parser_cocci_menhir.ml" )) diff --git a/parsing_cocci/parser_cocci_menhir.mly b/parsing_cocci/parser_cocci_menhir.mly index cdec1e9..b081347 100644 --- a/parsing_cocci/parser_cocci_menhir.mly +++ b/parsing_cocci/parser_cocci_menhir.mly @@ -1,27 +1,7 @@ /* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - */ - - -/* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -1164,6 +1144,8 @@ initialize_list_start: initialize2 TComma { [$1;Ast0.wrap(Ast0.IComma(P.clt2mcode "," $2))] } | initialize2 TComma initialize_list_start { $1::Ast0.wrap(Ast0.IComma(P.clt2mcode "," $2))::$3 } +| TNothing initialize_list_start + { $2 } /* + code only */ | d=edots_when(TEllipsis,initialize) r=comma_initializers(edots_when(TEllipsis,initialize)) { (P.mkidots "..." d):: @@ -1173,12 +1155,14 @@ comma_initializers(dotter): /* empty */ { [] } | d=dotter r=comma_initializers2(dotter) { (function dot_builder -> [dot_builder d])::r } +| TNothing r=comma_initializers(dotter) { r } | i=initialize2 c=TComma r=comma_initializers(dotter) { (function dot_builder -> [i; Ast0.wrap(Ast0.IComma(P.clt2mcode "," c))]):: r } comma_initializers2(dotter): /* empty */ { [] } +| TNothing r=comma_initializers(dotter) { r } | i=initialize2 c=TComma r=comma_initializers(dotter) { (function dot_builder -> [i; Ast0.wrap(Ast0.IComma(P.clt2mcode "," c))]):: r } diff --git a/parsing_cocci/plus.ml b/parsing_cocci/plus.ml index 7968618..386c76c 100644 --- a/parsing_cocci/plus.ml +++ b/parsing_cocci/plus.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/plus.mli b/parsing_cocci/plus.mli index 6f1a719..01f573b 100644 --- a/parsing_cocci/plus.mli +++ b/parsing_cocci/plus.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/pretty_print_cocci.ml b/parsing_cocci/pretty_print_cocci.ml index 947646c..d669192 100644 --- a/parsing_cocci/pretty_print_cocci.ml +++ b/parsing_cocci/pretty_print_cocci.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -493,7 +473,7 @@ and initialiser i = Ast.MetaInit(name,_,_) -> mcode print_meta name; print_string " " | Ast.InitExpr(exp) -> expression exp - | Ast.InitList(lb,initlist,rb,whencode) -> + | Ast.InitList(allminus,lb,initlist,rb,whencode) -> mcode print_string lb; open_box 0; if not (whencode = []) then diff --git a/parsing_cocci/pretty_print_cocci.mli b/parsing_cocci/pretty_print_cocci.mli index f0580ee..14ca82b 100644 --- a/parsing_cocci/pretty_print_cocci.mli +++ b/parsing_cocci/pretty_print_cocci.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/semantic_cocci.ml b/parsing_cocci/semantic_cocci.ml index b68e36e..b8a9ccb 100644 --- a/parsing_cocci/semantic_cocci.ml +++ b/parsing_cocci/semantic_cocci.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/simple_assignments.ml b/parsing_cocci/simple_assignments.ml index d9fa6e7..367f5f1 100644 --- a/parsing_cocci/simple_assignments.ml +++ b/parsing_cocci/simple_assignments.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/simple_assignments.mli b/parsing_cocci/simple_assignments.mli index c8b1ecd..5a45d93 100644 --- a/parsing_cocci/simple_assignments.mli +++ b/parsing_cocci/simple_assignments.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/single_statement.ml b/parsing_cocci/single_statement.ml index 2d198dd..f2a65db 100644 --- a/parsing_cocci/single_statement.ml +++ b/parsing_cocci/single_statement.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/single_statement.mli b/parsing_cocci/single_statement.mli index 84eddaf..6b43ffc 100644 --- a/parsing_cocci/single_statement.mli +++ b/parsing_cocci/single_statement.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/test.cocci b/parsing_cocci/test.cocci index 59dc692..8dc1a95 100644 --- a/parsing_cocci/test.cocci +++ b/parsing_cocci/test.cocci @@ -1,4 +1,6 @@ -// Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen +// Copyright 2010, INRIA, University of Copenhagen +// Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix +// Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen // Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix // This file is part of Coccinelle. // diff --git a/parsing_cocci/test2.cocci b/parsing_cocci/test2.cocci index 047b149..2c4e050 100644 --- a/parsing_cocci/test2.cocci +++ b/parsing_cocci/test2.cocci @@ -1,4 +1,6 @@ -// Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen +// Copyright 2010, INRIA, University of Copenhagen +// Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix +// Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen // Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix // This file is part of Coccinelle. // diff --git a/parsing_cocci/test_exps.ml b/parsing_cocci/test_exps.ml index 4e9b0dc..b4843b2 100644 --- a/parsing_cocci/test_exps.ml +++ b/parsing_cocci/test_exps.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/test_exps.mli b/parsing_cocci/test_exps.mli index 74f89f6..35f1d00 100644 --- a/parsing_cocci/test_exps.mli +++ b/parsing_cocci/test_exps.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/top_level.ml b/parsing_cocci/top_level.ml index 37ae75f..6dd7eed 100644 --- a/parsing_cocci/top_level.ml +++ b/parsing_cocci/top_level.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/top_level.mli b/parsing_cocci/top_level.mli index 3e2358f..289f997 100644 --- a/parsing_cocci/top_level.mli +++ b/parsing_cocci/top_level.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/type_cocci.ml b/parsing_cocci/type_cocci.ml index 1e9663d..0c2fbb4 100644 --- a/parsing_cocci/type_cocci.ml +++ b/parsing_cocci/type_cocci.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/type_cocci.mli b/parsing_cocci/type_cocci.mli index a6248fb..1672c0b 100644 --- a/parsing_cocci/type_cocci.mli +++ b/parsing_cocci/type_cocci.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/type_infer.ml b/parsing_cocci/type_infer.ml index 7001492..ad74514 100644 --- a/parsing_cocci/type_infer.ml +++ b/parsing_cocci/type_infer.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/type_infer.mli b/parsing_cocci/type_infer.mli index aff8ded..893e983 100644 --- a/parsing_cocci/type_infer.mli +++ b/parsing_cocci/type_infer.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/unify_ast.ml b/parsing_cocci/unify_ast.ml index fe90032..ebbe5d0 100644 --- a/parsing_cocci/unify_ast.ml +++ b/parsing_cocci/unify_ast.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -337,8 +317,8 @@ and unify_initialiser i1 i2 = (Ast.MetaInit(_,_,_),_) | (_,Ast.MetaInit(_,_,_)) -> return true | (Ast.InitExpr(expa),Ast.InitExpr(expb)) -> unify_expression expa expb - | (Ast.InitList(_,initlista,_,whena), - Ast.InitList(_,initlistb,_,whenb)) -> + | (Ast.InitList(_,_,initlista,_,whena), + Ast.InitList(_,_,initlistb,_,whenb)) -> (* ignore whencode - returns true safely *) unify_lists unify_initialiser (function _ -> false) initlista initlistb | (Ast.InitGccExt(designatorsa,_,inia), diff --git a/parsing_cocci/unify_ast.mli b/parsing_cocci/unify_ast.mli index 54c28ed..87b6f46 100644 --- a/parsing_cocci/unify_ast.mli +++ b/parsing_cocci/unify_ast.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/unitary_ast0.ml b/parsing_cocci/unitary_ast0.ml index 6d46bc7..35e9261 100644 --- a/parsing_cocci/unitary_ast0.ml +++ b/parsing_cocci/unitary_ast0.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/unitary_ast0.mli b/parsing_cocci/unitary_ast0.mli index cfbef97..2361df1 100644 --- a/parsing_cocci/unitary_ast0.mli +++ b/parsing_cocci/unitary_ast0.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/unparse_ast0.ml b/parsing_cocci/unparse_ast0.ml index b12855e..961c039 100644 --- a/parsing_cocci/unparse_ast0.ml +++ b/parsing_cocci/unparse_ast0.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/unparse_ast0.mli b/parsing_cocci/unparse_ast0.mli index c95d5e1..3818b77 100644 --- a/parsing_cocci/unparse_ast0.mli +++ b/parsing_cocci/unparse_ast0.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/visitor_ast.ml b/parsing_cocci/visitor_ast.ml index 8fd2add..9822b67 100644 --- a/parsing_cocci/visitor_ast.ml +++ b/parsing_cocci/visitor_ast.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -296,7 +276,7 @@ let combiner bind option_default match Ast.unwrap i with Ast.MetaInit(name,_,_) -> meta_mcode name | Ast.InitExpr(exp) -> expression exp - | Ast.InitList(lb,initlist,rb,whencode) -> + | Ast.InitList(allminus,lb,initlist,rb,whencode) -> multibind [string_mcode lb; multibind (List.map initialiser initlist); @@ -794,8 +774,9 @@ let rebuilder Ast.MetaInit(name,keep,inherited) -> Ast.MetaInit(meta_mcode name,keep,inherited) | Ast.InitExpr(exp) -> Ast.InitExpr(expression exp) - | Ast.InitList(lb,initlist,rb,whencode) -> - Ast.InitList(string_mcode lb, List.map initialiser initlist, + | Ast.InitList(allminus,lb,initlist,rb,whencode) -> + Ast.InitList(allminus, + string_mcode lb, List.map initialiser initlist, string_mcode rb, List.map initialiser whencode) | Ast.InitGccName(name,eq,ini) -> Ast.InitGccName(ident name, string_mcode eq, initialiser ini) diff --git a/parsing_cocci/visitor_ast.mli b/parsing_cocci/visitor_ast.mli index 9407c0d..97130c7 100644 --- a/parsing_cocci/visitor_ast.mli +++ b/parsing_cocci/visitor_ast.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/visitor_ast0.ml b/parsing_cocci/visitor_ast0.ml index 53facab..e64ff94 100644 --- a/parsing_cocci/visitor_ast0.ml +++ b/parsing_cocci/visitor_ast0.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/visitor_ast0.mli b/parsing_cocci/visitor_ast0.mli index f73953b..43590fa 100644 --- a/parsing_cocci/visitor_ast0.mli +++ b/parsing_cocci/visitor_ast0.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/parsing_cocci/visitor_ast0_types.ml b/parsing_cocci/visitor_ast0_types.ml index b9a812f..98c284a 100644 --- a/parsing_cocci/visitor_ast0_types.ml +++ b/parsing_cocci/visitor_ast0_types.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl/Makefile b/popl/Makefile index 4ad2df1..9302461 100644 --- a/popl/Makefile +++ b/popl/Makefile @@ -1,4 +1,6 @@ -# Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen +# Copyright 2010, INRIA, University of Copenhagen +# Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix # This file is part of Coccinelle. # diff --git a/popl/ast_popl.ml b/popl/ast_popl.ml index 173e567..abb6b03 100644 --- a/popl/ast_popl.ml +++ b/popl/ast_popl.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl/asttopopl.ml b/popl/asttopopl.ml index 50859be..5fbf9f8 100644 --- a/popl/asttopopl.ml +++ b/popl/asttopopl.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl/asttopopl.mli b/popl/asttopopl.mli index c98cdac..37e4b82 100644 --- a/popl/asttopopl.mli +++ b/popl/asttopopl.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl/insert_befaft.ml b/popl/insert_befaft.ml index 15aaa7e..ad6caad 100644 --- a/popl/insert_befaft.ml +++ b/popl/insert_befaft.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl/insert_befaft.mli b/popl/insert_befaft.mli index ccadde2..4aaf5af 100644 --- a/popl/insert_befaft.mli +++ b/popl/insert_befaft.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl/insert_quantifiers.ml b/popl/insert_quantifiers.ml index c808fa5..3a0980e 100644 --- a/popl/insert_quantifiers.ml +++ b/popl/insert_quantifiers.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl/insert_quantifiers.mli b/popl/insert_quantifiers.mli index 646a79c..0276dba 100644 --- a/popl/insert_quantifiers.mli +++ b/popl/insert_quantifiers.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl/popl.ml b/popl/popl.ml index 6b653ec..c32ae10 100644 --- a/popl/popl.ml +++ b/popl/popl.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl/popl.mli b/popl/popl.mli index dbbc91a..1185a79 100644 --- a/popl/popl.mli +++ b/popl/popl.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl/popltoctl.ml b/popl/popltoctl.ml index e2c32b1..1f7f457 100644 --- a/popl/popltoctl.ml +++ b/popl/popltoctl.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl/popltoctl.mli b/popl/popltoctl.mli index c8312e3..c8dd49e 100644 --- a/popl/popltoctl.mli +++ b/popl/popltoctl.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl/pretty_print_popl.ml b/popl/pretty_print_popl.ml index 669d5d0..0515ad7 100644 --- a/popl/pretty_print_popl.ml +++ b/popl/pretty_print_popl.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl/pretty_print_popl.mli b/popl/pretty_print_popl.mli index 5cb0503..d4ae105 100644 --- a/popl/pretty_print_popl.mli +++ b/popl/pretty_print_popl.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl09/Makefile b/popl09/Makefile index d7a818b..db143ea 100644 --- a/popl09/Makefile +++ b/popl09/Makefile @@ -1,4 +1,6 @@ -# Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen +# Copyright 2010, INRIA, University of Copenhagen +# Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix # This file is part of Coccinelle. # diff --git a/popl09/ast_popl.ml b/popl09/ast_popl.ml index 3d6dae4..e153487 100644 --- a/popl09/ast_popl.ml +++ b/popl09/ast_popl.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl09/asttopopl.ml b/popl09/asttopopl.ml index f323e61..530560d 100644 --- a/popl09/asttopopl.ml +++ b/popl09/asttopopl.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl09/asttopopl.mli b/popl09/asttopopl.mli index c98cdac..37e4b82 100644 --- a/popl09/asttopopl.mli +++ b/popl09/asttopopl.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl09/flag_popl.ml b/popl09/flag_popl.ml index 5f34bd4..c509121 100644 --- a/popl09/flag_popl.ml +++ b/popl09/flag_popl.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl09/insert_quantifiers.ml b/popl09/insert_quantifiers.ml index 50762b5..ce86d0c 100644 --- a/popl09/insert_quantifiers.ml +++ b/popl09/insert_quantifiers.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl09/insert_quantifiers.mli b/popl09/insert_quantifiers.mli index 646a79c..0276dba 100644 --- a/popl09/insert_quantifiers.mli +++ b/popl09/insert_quantifiers.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl09/popl.ml b/popl09/popl.ml index d2d3d70..76c4a57 100644 --- a/popl09/popl.ml +++ b/popl09/popl.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl09/popl.mli b/popl09/popl.mli index dbbc91a..1185a79 100644 --- a/popl09/popl.mli +++ b/popl09/popl.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl09/popltoctl.ml b/popl09/popltoctl.ml index 5c261aa..9d347dd 100644 --- a/popl09/popltoctl.ml +++ b/popl09/popltoctl.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl09/popltoctl.mli b/popl09/popltoctl.mli index c8312e3..c8dd49e 100644 --- a/popl09/popltoctl.mli +++ b/popl09/popltoctl.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl09/pretty_print_popl.ml b/popl09/pretty_print_popl.ml index 664806f..cf4b9ce 100644 --- a/popl09/pretty_print_popl.ml +++ b/popl09/pretty_print_popl.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/popl09/pretty_print_popl.mli b/popl09/pretty_print_popl.mli index 5cb0503..d4ae105 100644 --- a/popl09/pretty_print_popl.mli +++ b/popl09/pretty_print_popl.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/pycaml/._d/pycaml.d b/pycaml/._d/pycaml.d deleted file mode 100644 index 991ed77..0000000 --- a/pycaml/._d/pycaml.d +++ /dev/null @@ -1,2 +0,0 @@ -pycaml.cmo: -pycaml.cmx: diff --git a/pycaml/dllpycaml_stubs.so b/pycaml/dllpycaml_stubs.so deleted file mode 100755 index 77cd440a6f6dec1186546ac13aa1619c6e7b9718..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47422 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

Ss^-Fmjge5oCuy&=LXt8ikyg} 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 diff --git a/pycaml/pycaml.a b/pycaml/pycaml.a deleted file mode 100644 index 05baba6ba8a090ebb186d74b8229c93cb4fb3ab4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37708 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 K9E8Jg6#h>`3byS4 diff --git a/pycaml/pycaml.cma b/pycaml/pycaml.cma deleted file mode 100644 index 5fbe7614d09f8dfb1c4a9100ac78faa7340b9a06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13426 zcmeI2dw5jE8OC>E5<&=wpp+^_prD&;ArLB)rO4Sw%oiBO6hvDtAf3^Q*pXcy9-}#+) z&N*{tCdq35(6mVBo;`c^&CBZ%2xOld6$k|GsO|o7pX=OqqucJ1!hPDiEm*a8>6o0; z#%;B5{F~%C+r;_)Zj;;uoO?Zv&2g0Wr5@ro`N%b;?GA41=r-}P)pMKX^&EF7P}gmp zWXFBZUA%Zv@2w_Z(|c-HPg~s6PMi%b({Xs((xMi&Q^B^&?cz zr@D;laa0eYx+~Q;P+gDe&%eC$rNd zn>+eFL#EqrSbTDS>EyP*q7t=z2i4~#~WPX_*LF< z_vJ~|wWOVfS2%vPcf6-}zT96%3McDs=kJB{YdqJN+_j$TM^3(<((B3hRQ~n8;<*9j zntJY5a$oh_KyvyWn>^1Ta`HWx-pgQe%~H6prEtwtxEoTq7Ac(E%;}mbPJZW- zYwPprx+rcWIb9dU6_C?)QQUXQ>Drepr|X-zJ1D2?TQZlAbH&N;lKwOF^_)DH?{s~W zTnRZ{-^5KJr|Vm?>*@NIET`+6xG=S;>szum2jg6E{El?pNY%9|I)3DO+-EvQ#8sjVT?=%Mi{p88 zH_lDwLY|wCeQi_Ur{um*uF%Ux$mu(iT#TIduefq@+E3z^kkfTT9QTVpueb*(r|X8e z736fBi~Aut9p~Z}kkjWC_Yk>hsKqTJSL(UN~ zN^-iU$bGINH^=ef<~bd1QoSaLdEll7<0V{tqN7or_;JYKZ# z#Vy5ox=!dg7su~buOaS9%IP)4Z6~MK5cd>09k1fJuXVhN`x)hQyo%dNPS*`_Ja%>6 z5cdnp>AE3q54lRz;+`R=V^Z9+|S);5ce*%sq03vHuar}dyjJZ&cywJoW2)vC&|5lTHFWZUi91_$?fyp zpUCMPmp1ji*LC}y+$NtjpH+Y7+sp0WRduBL?}Gc>zMK#U_RIn8~_dk z2ZKYwVc>9Z1UM2L1&#*CfMdb&-~{k)a3WX)7K4+)DPROF1*2dLjDyp`d%>CDEO0hB z7n}z!02hLbz$M@^a5=aFtOOqhSAna+HQ+jMJ!rv=;3jZ0xCPt_ZUeW2JHVabE^s%v z2YeRX3%&sE1NVamz*oS7;34n`coaMaz7D!K5qVg?l$=}cH4Qk^_0SW7OdRtmbP^F<04oR2pG4Vo2!r6j6k4upzVl6q5D6= zM+CD^S^H3D*)J$5jd$->5HFLRF?6)7SdK>A(cG$Yr-i153qrA2C=nPYr$!U;ifANU zP#i0pR(*JsJKVME+^V`@QaD}^Dk_QvqE2*(CMJbT3qz4eFtCH_Gnd!FJgO-lqmi}JN8Uz_r^DPNoNhVq8;hVq8;X_QZ+d>ZA`D4$OGbjqhwKArM)C|`&2 zbtqql@)?xRpnL}9Gbmq|@^vX+m-2NfpGo;l%4bqOlk)W_Uyt(jC|{5AS(MMBd=}-i zC|_Uly{aZsxU{??7A`1{hYF__6o#Uq!jgC*Sii`fkRuZ+UR>ekluXKCeYuJ`5p3h8 zcjb7nwH>EZIcMTf6V zJNW!RH=TI>*MGmYU6)-hHbmBjyf=eyo!)TbRI|j{`1yfDR=#PixsbP`^^id=_Pq4| z*fUcWuNfEJmT$A8iHg!0u~2k+C{hu&ouY|LMb~IzT3JzrTPjLQOXAhL*4=&81D1#5 zq1dEysU=ZR7%7t{wz;~z#LKE4&;Iv%^FKY57EHJ8qKV>Aq&#ffx{Jr$V>p(Ul~%JN z60vE)I&L#=3%YKw=DamuSo05S&RX-SH6L5^XKOyR<^yX^TJx?o$E|tWnm4R@&6=au z9Jc15H7{GU-`kmDW^R^Pn}$ ztXXW$LTlz*GuN8?t(j@f3~S=n+*5VWiD=lGNPgdZ_pzp)9WTL!{>eF%y V%Sww&Cgs~MMUl(S&nYj<{}1w%S4;o^ diff --git a/pycaml/pycaml.cmi b/pycaml/pycaml.cmi deleted file mode 100644 index 278b1ea05314741c7f106f76b32f4cb4752c4805..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39117 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࢙Z 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 Vd2dVT^s^rPTIgMh*7?7o{|AGV-)8^- diff --git a/pycaml/pycaml.cmo b/pycaml/pycaml.cmo deleted file mode 100644 index 6c6fe4ed7f39c5304370a74e809dc94dfaa97966..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13306 zcmeI2eV9zw9mi)l%UVm)5Y7gh)QCO-C0@2?qqfrD}tgzqN3|1 zigKcYiinD;h@gllsv_R1sD_HRc@ot$Nh_u2xBLA)j&H~O)&95hJU5^FyPx|#_ug~Q zIlDX3Jv1iLx?{(V{W3Bh2n1SuIxr9j465k<<34w}?OwM%DTVtqaa*u-@5V7Xr=i;_ z;P|)5bGDZA-Q6a+VL1109GmPY?MvO;ZSs+8O507{*350JeB%M=@Pu$-ue*Jr@-=+Eus+Uv!0@dTF&ZfE_)elnLnCco-U%z(q z{r{Ef6IAb}`gN+8Q2iX$g;Zxz{Rq_$P<d(Kt`FYM${adQvqIxye^QfLo^=PUeqq;lQt*E}6>dLNu%FP}9 zo*~Wc-{H1zxJ~})x6{G%aGEn9It+hZsg?qDZQS2Pvu|ltDbv^Ty4)i zOzvx*>p@PxW0U9UNlv~8(|hSfu1*s7^(3xt5_eA$S1*Z^d%V?s*7sa*?CTi3&vSjq zHAv#*J3YM~=Nct(jXn1W_Vr$xBymkW*Ozk5JojyKvL5Muvb*1Nk5aBh64x?`Yn8-h zByp`h*AM&JFKv>zwn6$F=JCxJ)H<8mdQ=I(HCD+#H z({)kY0CKu6ipwIW>!P^tk<+y=QBK!4af2wQ>sun1iF3ut?~?vAboHD(m+y3alUyD- zUEjowBB$$HqU-7UmMEv|o47Ewsq0&!HhbY*ar};S-AL4?&VO;k=z2QG6FHs7iJZ<= zak2k$KrY+MMabzplU$6P_OG}?a@tSgo+qd4hB)pQeO_@dQcl+madXM( zI2ZRLayrh%O(&<%D{daSF{s7OB$w~GS>y^l$L}HPxp9=!aVOVf7xQx5pW645n@w%T zz1$DUY2Qn34mq92;(kI-?@ipRxlkM-x3apK{N7ZUH%6 zQ{+AulAG-1Hjta*xz*&p@41!arh0A_IUOT%FP5B+*F^oP^H>~@!5L^r9FG_6dvPz| zJY6SroQvaktJe_s8s+pF;?|SXYlwTDoQ_v<+}Ao@#r>ReI$p(XB&X|!I3ByYZixFO z<#gQ;w}o5@YH@Fp(=jP-D>)sLiQ3dLnW#-2lZo1V3D*$!7F}5w{!rIzFxE_K}_n zd)Y_s6)*Q|ayrK)w~3st8{+npTZ3BM0dha{+(B|{J$Hzl&SPnl$ICh|$Kyrkxa5ve zn>xqEy-iN%xVXdQbdHOAgPhLsL~bL_756*JX*=Rhk<-3Ul=}tF6?cMin>}}uoUR** z+SGL;(Y@%pA?^&dsq03fHuar}J4-ozXX5@qPTz~TbL6(87I&W94$u9O+)mH^iJZ=H zX;a^O6}R8qZSqr_GO1u1m=4N0;`Kb)m#rpP3#<*^1=a!Ug7v`qU<0rb*aU0_-Ve3}Gr%@rJFq?2 z0hIoc`|AvL0W-mF;6q>!uou_|>LEz=_}_a0)mToDR+aXM)dzv%xvwT(AV34=w~3fs4VV;4;vHE5McD zDsTXt&AGjYp2p$3tgGa!l;BoLIcnUlX zo(0c=AAlFYi{K^jWAHL~1^g8J4EzH87x*Q34U`4p4!2(cG+-q#6-)!u!Rp}c;2mI1 zuohSwybG)Y)&=W<^}z;UBd`hB47?v~31)z8z;X!6+C5Mn%1Go{~1a1bmfLpmy5OL5CXa8Mv%9t;F3zMmQhGzc{6U!3j!fAIdn78k6Y z*IM?o^77;D+hxTIWM>E+Ey$Il5qGpz>A7P8_FBX8_K6pK85lrlux02CCXQ#d?m_PqI_k_SEhVr%2%d* zD&P&SEYP9<mY=>*r}#?zYLDIvj#+E2Wo&5ByJx*EyFVCudDN`M zk4M*K+7{8`qWp2OP;_i4QWUn$qs2Fhw$b7-1vy1-smROEiC1R<|AwVY|TY$&RcWNnlsj%vgU*}N3D6!nnTtcux6h% z?^v_TnjO|`v*t}}He2(CbxVSI&6>5=thQ#QH7{GU%$gSH6_-(Xw7VEW?3`C fnrYTdvF2H8CRj7hnz%Jjm)>)6G;B>I(|!H}`j;x( diff --git a/pycaml/pycaml.cmx b/pycaml/pycaml.cmx deleted file mode 100644 index 7d19378a290c219b737e220c4c28cd2614bf02bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2256 zcmdUx%WD%s9LFbhtMO#T$Dx$c`l=L!*_qjwB1|GGx%H|ZmRJ%=Nz#zS!XDI15B3(7 zdJv&=P%nB2D42^9P(hI51L`S4ksdsF@Nw~RaW?aV5R%^?;IibwcOIYbhh=w9WlKdn z2!eCewwG5QJSQZn2qBwu103bv~^BJUzpn=xLd9-4%2r@$t)AXKNz* zQU7};v$~;_HAb6xdmJd6+Ic^Dtq^D#cq=VN>tIM(YUd<^{g2p`vdCR`EVp2luhYr8TbC-X*Px_>2#gjz3$Q51&qM@BBJmy8R~_n|}2V6S^i7 diff --git a/pycaml/pycaml.cmxa b/pycaml/pycaml.cmxa deleted file mode 100644 index 368cc3abee29e15f18c8e9c0b0753362c34718bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 276 zcmZ=x%*`>hw6u&eFf?eHx@;c<1H%^}RtMs#KwP(B!2%8j1`P(afXZZ`QWnMqEKCjy z7N|NF6(v?0%$dLRqnvK$q$BEgpIj7c>0GctDCU+_`l2 zv#Yw%7N9oIyb?1LgR6|!Ud+GqM5gjn$!|B$saF>)U=c9bpyKJSu;cKfs1I44v!V;u zI5;>gZ~_vJ20I?C-Y&;>=Z979v|p71ibow5DC_1VgNWP(YPvb4C7C%3RCIGvau#Un z<`k4<6s0DnEYJorD@!u+^NjS&7U+REAos@?my{+IJ1nr)_0caaF4E7*Owxxd(@)ON JOUq1m005N4ZczXL diff --git a/pycaml/pycaml.customtop b/pycaml/pycaml.customtop deleted file mode 100755 index a29c0f70abd8e38aef3ac0c2cd27f8d9321586a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1142339 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�HbbG@IRwYgsY*GGCk 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%0D2pX$2SI>~o)d*R! z?YjDV^e6cjf}UTpz%xa;FL-8vv$nnO4A{2RSzXqbpEh}N>tvw({^40bzdJze`}}jC z^0#+QrF!M4b;{X5n@lnJ^g$-S%GZ5?!ankL+WYby_VQcOouFZ2~QzIWBy);rE`WqhA7`s8y|f31?7YPsE_}|Y$H&#aZt#m9}lrq%Q1Ye7C-x@K&i~; z^%ytjQJ=2H?bT^3#yZ}Z-IXz5A06x9`})S+i)4E*b=PhLZ0MQTDJJZzkK{5L_VJyX z?2jfUOW&6dS@kLZo(#wJgyJ4F9kOQ`+_M@rq$P{<44A3AYMIR zmN?_D)krBPWB0B`*5}V1nS(hC)n@sU74>3O&@C!auposlOP~FzyW6Yd!F;**oF7egIt?P{Qsdd33JUB@}@wUR$rg?>1e;au=iv2sWV<4^o#%aER~;1 z{awB4o~O;UcY2=kIo?WRL1*)8EA7T*yd$l5R(mGJ2+wawy!NDSyyV%qud#eAz%>Z1m?aeaOZzn94#*6J2_wAU>*5lxEatRpTzY-;ErIc+_cVn zoqc?ID3}5T_faMp*DAC3>6ATtgPmk&YQ>FT`4kUrHfWdk*|hOgrq$Q&`&M4_$9v+B zQ>ocH1$We<;n=a(_K$LLCS#r5&4Em>{D{LC$LFTcAGMt?*e@q;5BQGXz9N38AFb!F#

# zzj0jF%egGQoL^#GUu>p5#)@vmJYVoPZl4k0!9Kj)oz_f&(s6A$>9d1E2HY3$8(Aj< zGJau>wZ2&6LMC+0PYwCtJX)hT+twJ9V{CHnp9sn2x!;p<1rI)~|EgI=N9vdMAI%v4 zd?^QiE$sNCku&o6-Lu@rgHF$VI-M1zzI%7t@cU-4ukB@hF>_?>4V21wN7_(XYI4SY z+ZkT@=R)fGMtkJAl>aH2hph$ZSdL|ACBL%CeSffy_bW3FuUiAM$MKzPKbdtvH^EnOn!(-3hl|1$6Jk+Z)>21PA8YJwM(f&Vl{z=J)1cI7^lBIcXmb_6C{yuzm7}56{mvIfnwWp3DYz%7YIC zZwbh$9UE!aKJ9YCPm$wpTXVqY4+Z$);vE&L)BSZe=y`lNZT_;CJv;rbhI7eRUm2mJ ze;>)1LZ&<1e=2_Pb|ao=dy_ zd?4*||EifgT?+0aKV$qPAH)l{@#jnJ-#D+SFV*7U=S}tZSd%sO$9ASxw$!KW_&woC z*YdOW%QEKYJqjPNvp$%ISFz!1g^cGhKBet_X&(*vptfuCD__2SZj;Tg{LDW6`rTb^ z?dt>27;~QMWUpIq|Aj#8)$UsR`OzM7yI-v@4pX3XOnrSY1zQbq+}i_d;GOg56*_SOHXaVhzK-Y3SL#w;FJlIAy-djQW ztmAKwv*ldkx*4$Dx$M51<~ExZ^4X;S%fsgz{A*Kn@dNZe^8X!D`1zgyM};oFAXllc zcKiL>Ls^IWx;3XV{(GObJ-_aEZpGGq_K$h+vp=!@J=NOx1G9ZQ>G)QPy(oBd5R)#;{n1%Y^?Yyoqn&^CSFh}U{i6S5`gri`fmtrz zmojebxq*5!pu^npdG6pm#^?Vnze8LaLU5e>dw= zUA{N1WtUp+t4{VTr(}bpN`c38#rUeS6IolMv(sWX*XjR&#rQl9Bf}0|4 z-J63@wpIjDP__qD6h%<6R6<1&+#3)Npoj>Fh@i&n|IK@?JbC+lYbFT%e15&=Ip6nn zAD-uZzi+LqrhmmW&!%6=VHFqqU??nBlkb^OBdqBpZ4H?`7|a59sAz=L5q?5o6^Vo#IWXQ#>h5q z-^l6laKg=;IGES}$S+=y<9?~GKbkReJ~oi!_FOU5FP`dGO!cd#+F7;kWIztCKbbEd zjCrTWg+BIuMY#Oj;J?alEWGpD=RQ_@mZ`6wYM+Dj-K*-;L2bqRxj*sr-ziV`vad^D z?W|kRE_M6WbImkfeK$<~15;g_*=YaSsXmvw`sLf-k3MHbd(<$qkEAw-n|Jx|OFaI-zr2uBJyV}Otg&v-zk2Ga*Z%9LLe(O41_h()E>0Wl%q}RPb?`wnV{lrPn$4+zg)u*Ok8Ekn&WTe`D#@o-n z-&szJtM$Gkl-*~Up@A-Ji)PH+wGQ7)t%p{|G-Z9Pb_Y?p2qiuXa#xk|E ztDJvV#u~5j98~6=S&xVNPW}3+e#2Dno9gEI{;B`_r}~{!?H%6!@m)cGYZ~Wc{U@gS zi>LZar&{dIzhv0E{AB4C5q zp9&U%az!xqkEYMh&OqB~F5AYA1vduTKz2XdptC>tq<~!Gz8i6V4g@%D2Db(C?sl5mkc5MX4+ulmMe92|Ue2?`C zedh3>7eCKu=fRjcvThH=h3#y6aX`ks%X;_nJr<9H)408jop-^lpmz^nz-WKE%Q1Pf zCm>s1kg;m-qZuF9_WM11`1fVOmnXMwO-;rkQ24X5cTa8e_J}oqh=ViW{Ej&y)`tT7 zY72P^KbSH1)@A$Y&)8%(SJ~}ZLAH2$7KP^0?+1oH|E=@=wV9)b9KOOEXZsr~HtEw> zuG)CWiFLknmyumLX)g1JzuyyxJ??xcSLnB%?B+M#3cZ&HcsdLGFwbp!$?<-y&F;Bf zn;EMOt;KmG5a&M}2R4SIE^Ydc1bYL8d}~+fFwSo0{L0k(17qDI#=i5sI`tglR0_2Du*(> z9V5Kl$7~co^6*eP$KElvwT;d4bf-Q$Hv*h`mR4~h183{yc5_kfyo)0_U!U(q@VY$^ z$HM`B*92_n+zn~-^L+uE$W`#rcK%oK;7c((7Tg%%1h_8(#Ts13HTKkB*76sAa`Jo- z7cXt%FYDx?F&yy`H?{n=@1fwyV2nrS78&;}=>0ptBlc#FjIQUy>cWlP=I9&e?BTaQ zf5c%CC~Ppk2o!xjWQ+5EHub)M9-P%%fgITk_(6P(lQZrWOKTnotQX75O>?=Ae|rAN z;cq@z1p4ez&wY`hXPifQh67zkr}nL><(U1W9`dan{lI^GHpX#x`bPqOR~`(G1@Z^a zt$@ECooemc=Zwk~V?M9JB2X5~e=j_H@KfZkeD8kT4h0*5ayqCTe4%aa?E$|Y2pS*U z`1?elZJoP-9XQDkcX&_^z=_b30beZShpd!b2Pyb9&ff zPHayGihNUA-<38#jfu~5ioMl+W!hvLvre2ntBuV;?|kg)Y3!=h%{Q`rk54!M$}734 zuT=m1d1HPnXv{n#4{tvEQs1l$Th;=;K}SF@N*R*9Cti z`1`?M+;!PyepP_=r8uzx{Fb_L?-8cRoLTMHb5=evpeN1BD;S zXb!l0Dkse)&s$Ufk?a@Khk`zX_NHxb$3L9*+k-a+&0RiM$oM}agC6qfIS_~^Uiz!J ziJ`e`gHuzR40o5$;$)Qj@wDY+W6Brw@>BD%yyzv{-FjVM4f*(z_Z{&&ACqr1Tqf`o1DxxLzK}Lvz-V*_hHrFaOACysr+{G8_8X(8W7gGw_{s6wS^ftzhCiO> ztaCp3f*+0tWPbMW8HV3B1M%oNtKDRfH|CA~#v3a(ynI^Myy26|NORktwI4s_bRd76 z8#38sY#y@=JtKegj|Sx25a1`S{O;apd|#UOz5wU)F?T2k?PWQWfBA`C^2n&YhtuXe zSanXCx43KH6zrPto%y-8HraCLEkXT87e3?vN7KXU)6cIsoD38(XIp*ywzSus$v0)r z`92%)DPQ#b$hlSTF#K?DKnp$W^sFkGH=d)`QLp9)3(nzo96cmZa#x_H!d~*!&V$b)WUm6hjN^x6_hTZOE~@_5?2f{z>4l4&j7;+T*t7gKy%pGbQ%s13ODE#21GQ~!9^u(sUgQRmY9sIy0gayk$X zF>GA^*^pS zPkFVIl#r#cfdHqKDTi#xZzgPLr-qBBuDZ9)2NZR{@aqM{d z&X(L$9=uR3KjWQGyZ44Xv{w0{{2treQ#bElw;X*shxkfN>}hOzx49!d?Nh1AZf%Zk#TfsL`S1PZKwzDHit{Va`&sSzX`c)fXMI;N`upbeHv`;m z2<&A8dDgK>+xQ|-I@bC`#`Xn#XD#3H55Dr~A+}P8&-J5oQUO_jVd?G$LC})F519p(Zm#2c-V!b(Ii$EFom#g;| zddtH*g!qy9zCheQGf=uluG*uJ&qp|W-=+UjfSYv+8I|2LO=icm>9g)_!Mg*z@KEjw z__Y4u8~!*G@Htz=#C|z+JW#%V`gyuDMaO{vC;nFCDL!PK3lw=&UY-$$1MB&FoRf>@ z@T%XvCw^5H_k8?l`i}(GZ3O1O`XcjRbCLN!zQg>n$iFeb6)xo2CoIp3Gk7py!y zb>@E7K#Dyd$R4p6_ux!+rao#PpW65Jm#|N+%+JzX|Nj#?@@TG~Zs)hW>HHHJe75%e z$xGnLe{)_RyvV-h`@53wa&J5XzawML2)U0AvYiFK<$hgT04KF?&4o)m zDr?EJ4i~m=q{jcA!1&dHHSB|~qjxi?UvQ8+$AZz9ogaN!KjFC*@MGKc$r$6eWxoEE zoAg!&ZsnBb_BeS;*NN%z0LQ)t*4+Y~nVGoWw<*YSyimCjx-q|<)aA0oC zWn6$C>hCnSeOb;&Ge(~8ysXzg6L^lE4#d9P+0XU|0{ccErn}6wQ>pv@C-)R``mTnj zHEcZ@C=Xt!mUUx5uQiSL4-YXAo5R6Ia4cx9;zL(;h-0~X-(z#f#KvA@8)<)f_Tr$en3E$48{`dJ`PDhbt$yPlYwan=McRt7 z>LlM@rF+Mi%Ab1!pZ&f$r}**N-H&Wm&7ClBlybNqqyD_@?8 z)jW6cWuN)KxI-S+_su2oSJdT24qh(}yx07t$aBsf3Z4w^3E0Ngj(<4qw+GJgcs6jw z=`XM0#4l`?Pa~(^Z{*MY!B!mPo#%SDrMiTdWz+*<7~x{goJAAMwMt z5B>T!!`o}{==!m}YAxH22kiKfoMZ89|3m4ERr`NEeZK7d)H~h$M)0|r?|pvxv`;R+ zEaUB`d)dcN>niuZ=65*E-xT1Xd~N=_V>LfkkGg$4_35*Z9{KT~^50MYV!qEFWj&Jr zK0Q<0cKp-m8)eldW3}a5v&Nl5U*}uPIqT%ihw{4-SET00+TPkaGUbQbnXu3M+MBbF z?5=I?PO~Og=4H>F*4Rt8ad!U8{7iH7=eNW@T&qKU-PG3xa@!vJ*G}W)8E1={J!9a1MIupux*2p>$ z911o9dz>l$aDM!}3}5oeJrG#aXDpdG&_jm3#`Jx5eeu+HUfd1lB62z3zXQStb0B8EUKFw_#kEMNMz+N(~r+;2#m@9bgot-)W5 zA=b#p#^#Z<_XRkSi+5vW&tK0Tc{;A&Okcr;Z)(r8;qo09;qtP`{To?B=BS(h@#Jsk z7GM0DJGj~VH`naV)HZLv;iGlFV^@9mofF@^85{ZROW!&=|5nyG+v7aGVlN-}2a0*; zG0V5dy3e?H+DGQ!-a%$_Va#9oCU5(*1@^hGa1hV$iacW@N9O|e`MY@6OEFXX2?o6YR~p6q28zWRT6*8h7$e{T0ZS${adNnWslJ@=^qH3&kW0(td#pzOI&ZTprk{^0abBdYu>V|u6S;~zgcr#hfe$F;@X5H(So_D* zR`Mq$mj8dttKOT*;vZ{w2j7>q#`JOdtLe)XedVju=lAiQ?Mr5BK4)4}8F!^mhukwp z&ykGj_x#ZHr}Iu&J>Fx>%iK2&@2v8#vc&!8vrpf%wR`CJ(Tw9Ne>*Q%t?PdG=r?BF z71KDotha_9wXr(_YZdPk#=IwfD8cbw@i7iV%IN>*GA`f@``+Ap$^M}CqFTJy{cIN> z`d48i&3H9w^rYWU{Y(-4h3DNbcLmQ4o(L548^M`?Z`ef+A6QS$c&0|ZI91<^(#Fl6^0n8zJqH6^`G60P2fKq0 z40nX}n}I?AC-SuCcCwc|XYFD>rwdQ( zo16SVA35x9pU$%Z|CnQk_*WM{D9y>uwAsc7)q}JCMxgM4cS406V7D`Gm34cUt*6fs zPKTzkRLechL9*+2x;=N<(!1tJ+U42%IYZkqDF=I?`Ef(q{9q4$3Y~mGHebk(lY#PJ zK!3T?iJLLS+QzN#0p!wuK6os+JK(q50(qg}M3?#6n&xt!+`c~`=h{Gw=SI#+4|0+}?-hr%Z%=uExH-epP zZmhFxnO6&ql%s)|E8?L~_s-Atk6qqn{3IVA3Emm}@!)JWe|_+M!LI}-@VP0OC)8{K?l^(uS$g{6G zk5^+ho)7ZqYwX5#do#{9rF(Jen7ufa+sK0ej@)JM;aOHeLGzex38+5Bi!* z%?GlM2WkSpNa#;tGb*Cd-d7SoNioKac9$YfmrZ2+3Myrop^PgeeIu18y|Y`XZL(P zIcI{=$F*}a<2Oum8{{tz~_qf z^+j!`=SX0WQk^H##sgnE_@udFuiVfda|O@ZBUkukl|S$~7Tg%H*K_xag1ize|CYUb z&Kmsj;eYoLTQ&m4bJHq&t;I=OoURGJD6n6_y|JM0;ef2p)8RZH3e0Z>^LaAL1Hbx< zz2n~bzOg@Fo2^Ux#Nfhvz$aby!)g285cW;=OH&&McjjAy-x<6k_}>HLe<=7P!3U;( z*Q-CcV$8U`e<7$p*skCy{>KA8`pEFE<}N-Ej6UES>kkFu!{$*I`>eN5;csZ1d%t^^ z_^N$>U(ecO7+e6?YS_$?USA6 z>8%e&nf2rE9Jt~z_aoaz8KWP|Z!Z7t?0IeQa4@bXYxH09^-RXs>FAzOhcRHcvwmM{ zG5L}}xhZ%!sP3(_oqgqs0B_Kyw|TXZ_Q$R9hjUD(yQliK>&IWncXRl>ZqJ20yDM!u zu^BX{(p>62pL)DIw$d+GYpkzt@Vq%-zx=IT^0D`oHdy=gxxM_dKaf5cBje=M?|ADB zZ|`M;?|tOw{s0&Iajd`Hspi}>YhzeRIdU z@ob6hu3)}DW-QC;{3{ms2QLc9btm(eJ>%cEVXO6EO?9QYwDqynjnB){CabySGgi`Z z`TX6RdL3Un*i-#-_<8B`i!&(B4+L_84YvmLGMUL6S#yOQ z;-Q=g_?^w-rm$I@8w>N|JhzbSpi+EueN z6z5J+*ROlhe!^gi_O8JBZd}^l%2;{GsY8MFJ#!mrgS(*XjE~N4$M_fpVMbE#z*$tFwJkIHeUbAMSc=*+{j`#ZqEC@0B=5~ zLw+cW<-bqofL!C_-NCH^&fU{HU7zh__{`w`B%984Io8~;56E~ZkoVO$uF3F{XY+;a z#|@_B|FY<*{i*BgE7Rs5ImC7aH(c1hiWmEESOf|Ve99i<_VFDV2LtwrQ90Vr4m!n9 zU)x%3J_fR&vAR8NIt~QZvu|9Fx3P7+ab!>L7B!H+2o!mWQ}6HER_=`f{bHw2CR^#Q zUq_yMGp?Bb!oVJS4hKDt^Eo!+#t(}?>0N^pyA|{J8za|ytUkYW?yhzJNZsE3of%fi?J@3p&RKc-CLeL*wC| zbI$GC$yaAHFJI0C<=*)9eD#jGBWv(cf58QC zkuTQ<{K(&Q%USX_0_9X7@9zz~qwG&z;NSMTI!l)EIG?)qi;eXozgMI$Ulca+2`mDo zcQs#^BffK+N4~rAZJPLea`0op&j+{c$~$E6&A~qlp1V8G<=~Fsy}_$C@^iJ|mI(jt z!S@6|9$fL9{0uwzksQXSg5MUWJP`a;@L(MJ4})I_J}yqVDv0Q3_q z{5=#z-LkMnKHndFb?^;M zX=m$ljo;Z-tm*UbfwbK*_KI!CEoEzU%aK*O%h7zfxNDE6UoPhGEho0g!`;zpoGvw4 z_G$A0`{UGZpIyqCpuCy~_=EAOIF{KGGs!77>7(?8DD&vKv~`n*aQmN`O4<5+#C zGG@;rpmSYZ*`ruL`gj$G<|SQp&-FIvai*Is*2-7%*iXm4z*(2S`ps{?B-42LpG=#s zb^Q5Sne#8#D>KJ_a&f>7FTV6MXguoI#v5n*S8>J>XEMZ;Tx0Z;y$Hx$$Jd-P@|9ya zcqig3`9z2Fj|X1L2Zx`jcU|wB+Q4_@;Zkna@Y6a@{JRxYhP`Ca&rVz_3-8+9oMzL( zK#i|ro&DW+BJJ8a{~eRj#z!U_$2Dvci#g_e&C8|cVRLVhF=es*_ktf9hx(?n>c8fs zK0EEjbDa;HhwNoH`|+vV`qWtYi6P(Oxp$~vn)daNwRh&fy_a`%ne($- zc~e~2gzZvj_XRY^i^V;-m1#|v5+s8k2;cxAp;NM1m&jS1J zn#OS?$2x61ZwTzQuX60sW+#4qp6pB8y86xYmOXC>_yX@Ah!Nf)@LL3mcPu=g&`Eho zKn^{|adPGqK7K4<`{986F)zO%wsn2a9zWvCCN+hcY&o;L616k~{ zx3-^7yYV}jw!#)UW^Z}ox05}6hoa-HL3Q9o2YbfASw8(aneSuKIojU%5fn zu|OQ%kM$W_`H8;qZZN;jFV-vntNX=W&o|8*Hr3Cyb)BELvbH`ITjxo6H0XHqKn&<= zj;Nh^zLg`R@7)t(A_jC@)BW0V4(It@VXS)jA0KDXc+XFt0rZ)N`vP|W9txi2Re6Up zCZBQRmpy?s^x()AchN_pz_>mg_U#MUV$WRx4mj24Y~^z~xCpKe$Y3+sF9X|szAekOyC@~v$0`0|bbH-#?qc-uS17zc8VJLhV?XdI5Gy%GHC@Hg4n zz;E=^Rld!aIp>~h>w8D8*i${$uo(wBE0f);WU|j5>**#3@7kN@QV&_;!@uk7F9$MfYs~#9Tk)>0Rh-N> zF01y}M|j%bd*NdI_GYcZCv4{5=0oGf?)p^QINywUfZrleuk(dm5ckm+tKyD3KGv=B z#mH;qi`z~9`;6DdG(U>V!eB~$XszeC zJ7F^*!~MqZ_2cNnXOm}SHSf-*jdydnB+XH9Z7~RJF z4y3~OY+dzxvuv`boYt)qC+|Ve5BR6{)F<9c&SiWv5Qo|-_WZjQ*faKVH`n)^2hx5+ z@PYsjGIyu84#z%k=u}33EYiO&pqFpxxjwM=WT1HNDC+9eZw}Jq9FpOjtL_e5m#OZ}ea(uex>TZn%eQ04 zerM%k_KOkw<(X1>Wb;jPMO-c>Ygg7ZHe`N72FRDsUpckqLi28()8fufYgYMCd`BPl zIlhr`_VVe8;6Siy|Gtcm`x}FC3^y^rW6V+cC_ZHKg*i37>c-|3X>SG!U(~f9SAIL>O{sn6R{v%JXE6ah{4C;CsYi&3e!{zqv(Ltg^?rtS zbLu(RH6LrA9Jb3pdabQ5)ckbkp8S&{7ILe(YhFC`?Og;4pPvi10`qd5kL9Q{GsbD& z|MARIC*JnDpI;p)joItd#^nivDPIwgbE)g?+X(IsJV)>(+wTn?ON}d=$QyIzQ`4uH zJ??k8QycNL5BF1nz0GNDYs>%kv^Rr?gWls;4fAPk=WXwCI(JWN@Vqf?`snA^jX)Xi z>-t&D@aozxP8X*kjy*?mJ`uXlxYpYQsP zYMpr95{TEnfKTcR`pQ|`xVYJemoauN0)Ab`D=ED!_K?8_@tD7ZShqFJc|Ys(GegUJ zrCiu4uYNMY$Co^Q>$B+QjC&TTf3pyEOP{c@Ts)81G{W2>XuRdfbHY>H_;MpS8#G2e zPx^d3=JX={eSusfx4N72S7vN~z(3^lPLNOHZI5S#{bbWYhW+E6lkPGH$+13kx6jcc zZMLWt?cD*pzAsS7Y|QAUkF4sX&)FBV13}OKwQ1iP@L%($Hpsov2C|@jxRi5jJw8Cs z4@MC#hXS#{g}sV#pXaPKZZ8gC?>~MPd)d-hweI`N@6Fr@w(DOkKg1fRYXV%IpGE3@ z0e{yo@}ToYJ*zN zG*58iE92$K_vROYGTuLp+hRHM^qO+$dAct1?hEKQXHU7;E;<&0 zQhm(}a_09jKW_!qL8f>r9b5I8P%c_Ww)m*!xA$$_-*|~QmUW~4=Ii;4QFm`yLDI*ax*UIcu>X8Opc^JJhnD@tp!`Yhp7`g#uB&-fe& z@L~Ve0lTeZ+sH+qznv5N$hjB?>+GT1TJ_nf7H9WwXl(1MFOFx7zxYi|?B!$cQaCMw zD}z;jmUs5>8?M$hf7bbH^wZ~Oef`us0k83SHri9WoLTQM>?+7=%1FnrG+Jz9nGezQA5{ICbr#4huwi(6MOHhI9(f*16xFl zt;2^eJFjnk5s2L#fmkc_SttMPb+7;bA<9qmECQwWlOvwEcpt<~&ene8uZnPfG`JB^_XjT0bh~Ty*T3t zbdzyyuv3iPr{vrg{8~THyF>Y9-95;5F~-l`<^6LVr-XM|@F%x%(Pk(ARTp{U*q9uj z`g48H&-hOIzfqzMq~pxX;^OS8rv_Z=HaXax~ajwl46lJ@oMN{J-UPhv3M*M+5)e4ZCaq zJT_v1d!MU|w3Ws3-wW|RoVNRcoj(?5;P6oJ{lVRVIr-}SSgiTsp1?X>#Ai>iKQIp` z1BHEZtj|?Gu-=$Boe##f^~KqYv#sw7Y_*nbbL^56Y&Q<&VQihfjq9PTxhmirXWG59 z2-tDQRHxdO$>xQDl*RJj3pKvu`lIRd$(T=;i;MeG;V1m%f^nZ06gG(CB2dJ5ZpWyL z3~NRiG+k zIdC}OhUzGf>bpL32LdvT{di>5Po8Q*~zmRreP21~gKKthpEcW<36g(N= z@#BHwjP?xTyXrIYR>sYZ-|@OL@V`0W=T&>j9rx}{Uu+e6EAvR&9Vhd70Y9}CJN~#S z;OC^tW$z#Udj~$G3lIC;54Cv}FLK>?{oLiE%2V)PrZwUCuJ~?8X{zJi4Q=e~f`InJLCobgjiMlbvjV@zko)6d~zxY`!7lE=^ z{(E7~$+UL|qc3r@2al@*^ZG#U{QTpr&_N%2@ZndS?BPfAxXqs-M>9spxPFno(mB2& z!@HxiOctK}rsg|(Jfrso`o`n7<$For!|~b*dPeFm&lKF)QhA=un}Jdu+V=*2C&71l zex{)Q%|cWyeaf$Vjm!9RAY*JUdN02rW8x<_|5Ya0$%pVz@MO?D9QSNwytY3)wZ*B= zN%LUuW+t>x1$f|CJ^akC;#J?{av-p_d)U)=+4rOkubb-jSJhitQ@M?)e3*|ppT`5` z{dtzlDLm~_zb{}5|H(BqZtRdB=E!(!fOpRyJ>wbYtLAxYx}0I>a&K@)uqRN;(>y(^ z{B?WAHv|5c$BRG_uZ=*AzcNs8wgzwU{r=$Yz`b%?Fn@QxCS&69uVXL{-NRmaqu@Ay zKi~^|+*9@CB5eg9@gDPO-v1pIri^hX2l$}vbv51e@TW5Oqd9BD>iPg*z7Yd$>kkF| zA{VW3zpTqkxl`cO_PToRYcarecfhao>Cg5Y?-&wpro?urE)gQ+&S&TCGj}AwVW+ucnZGfRQ*vDH z-xr7%|1>|zG-n(a<9**W_gG+#&mIowKNpZ&Klc7(FJ63vdpWROzxLKw%|$-OL49xF zIq=~qDDZ82U7aP%y9lS#fjwl(34QrQ{u6=1R_D+9#{=bCq7(nK0gn7&-Tt8a{uIMg z*kbSTfNkF}JyW_*jO>%w9pfKk%HX}uscHW`>6=KH8r~yfx-v(2j4i=FG`K?RROuy zHWo+IJ}`})NzJDEhwh#e`|0~PlRvB>%N=IFdG~=>ota$O6__e zZMJ#$WD`H(WBt1Wak)95%O1J%Z0xu@>-pS%oX!Vx`~L0BKAdsi9k5HE-PZ)q);_jv z1d153L2fiBJtH3v6!*3{w%5kPY3~pCfgcrIa9WpFe>!)5^NN1F#qphmL#uxgnYttfQ3K`}-J0f!XU4XqW z8hpd|VoLYVuF<`fIeO$l>+0JncY1Dd<_Er0_zXAka8}3^=hl_I$e2U%4j(>0ut%=xi<`dK(63LnIX2@!w)SFb>x(Op zS6iJsG4I`RDDA5Pc|@k%8oviM2I4G!2Lrs==`5WOUJ%gX*=SCT|3k>(@KEq%a5UHz znESbD4qx-%A9Oy=k2>%74fDs+zA+#RsvCd4Vej1mt_mHv_RQdXI1o=dH-b^-R{D60 zC0XJ~#vK9M6!PR8ncgMvAk+LPE8XQ=k3RJW-Q*Q-C*ayYsgYZc9CWhUCL@0d8z<4(v;N^tIT? zN6##UuSR>nY_M03*y{}J4eEz9m-jke^RYhn?6U_(`EMWOJ0sTNb9JDMYabZaUYWVB zrT47?f0f(mv~lS>u(b~dbnsj2b#dq&Mt0Bs&1v($y=voX@tViQz9act9<`ZY#rfXA zcU6BmwePCbzgdW??K`DhF7>;rFU{VU1wTKWeKtK5xF5t!uGO#Z*!KqP=L_?nKlJUr zHTZ==-YQwUvxclk1G1bGu^shw&F5qs$Nw0aVq>k`mj~mW*tw3&{mnqGc_!Pp5#Z?D z&}WaFkS{%(`_kSM@FhLgxOXZS7kNic{oU`_N1!0`{~8Ewov z&HjL|`1_HdzM7u{Yjy`)LE}XSJJ|>9=>4=vTUjjseY!rHKL1q4-n99UFK`tja*X3d zE>6a@fnDYg1_|4;kC$<4FJ=9)th+IgfAvYhZFh7^aCU$nO{Iyr105hYH?u`i8*zt$_dN={Yj*962ZZ0w#`o@Ykoy9oGHl(>@XG3+ypYhc!K) zwZ|MTd~`D4hgG&6$~aw$z2w=a=I_rB?4^S*jD239Sg-$_pg!gQM+1c%zE#_6Jsac! z+#39+IAM`mSuFp3y2inpUmDifM~1uH+|nqT#u_L4?+MtbjjPy&!V*0ji}aPoj}B|`@ZQ7+a-VE5sotKsz9&DB zIr8o8T$qXj1*WZ#hKkN(SF~0Jx>v0pW;{iS!`5a`bHB z%lQx=J{1eGerv!E-0kDnU4b?9iK+4Ndjz)HD|be_jNK8?r8HK?$-~cjGR3*|BJGV} z+{-?;9183s6L~c|8E3mw(i6^)6Y25?3Xw8?Fw+kvuE9ZN1<#6 z%|mC^*<{~%hAf5pplkTHkOTJd4}ZNf-zVWfFZsPM-ITh_I22MWDE= z>2(I(mA{9L2VI$iC(@A1x-}rF~+mwdcT1Zt;iu3j+B|wmV+kXA(~1eg1~@ zZwmOce(STv*k6jRe0g<%ul4(aM}nPX^7Czh&qB_A?WF%s4o?v?Jaze;YgLjfL&b>?wa&IIKw2fLQf=HI!%f35#Iz20_wHFsQ$!FZ| z2=G_rNPS9owk_poTO&rBfi+~%u?UprLt}35$X%@IKOfYO?oBdqk&pEBp0!@z9PWJi z6|qyCZV$wOz3R~y?_INoEIPXX%CzlwM(|KNFOM4|E{Lf+8o7W5h(HlH)YIA`VR$UD3z)GpTbqn9S(3; z>@|jyytcRV$I`wr;A3zmaJerSZR;Iu&A%IT@FSkMjIy@UXUk~MB7KD~oQ1iM>{%s? zPBwHOj^_h59Sm@g7xr7jzWN4l_OL~+cFiJfMef*NE@KXpPgi|~8!iey_2+nBnp+i* z113_=1~`uUkEf3#U-65Wp9<~>a8s&#^f4~hv$1y>+4{KS^_)N3!oKz>8h{?aXcl=J7X&pR@I7&~vI!ule3};zNe9;{hA~#-Nif zvRB#Q{A~rbVQ<>}u8@fznf&_YgUs47-u1@HsrOv%6Gw8y?oERnev$_`i~s1i&swpL z?T-iekR_Jo!0&v}JB3d7)~`ek-R561$n3p^H=d*JPaM|Of9w2YZ*}sScc0OBZ2Otq zYkYirP)7;>VO@R0PIlQ>83)tmw?&}HV{7EXso>V&zsFg8V9$>Rj|B3cyq5(} zW!|1~{&4#En)k(&`G?!1=>%5h(WlYy!A1_5NU< z`!F|dZOo*Q|5J^Jd}X}&R-f7d2=?fsbSmBaP>-t^ged1|>ea-7@xTe4H|J>tio6|64CI|8YCai@SK^FU|_PK0bTa*;SwXwjJb-zUTjYgWWj|d~;K9XYiSU zSiC)WZ}8>82ZC=6{%Y{|f*%StBH;Sqrr;I9x!|*dHwW(u{ z_~*e-2OpP&I2pV#@c$F|hk~yP`2Q2u*wOerZ^it9?6db1cbL0!#he@`H4gv^Gs^{PX}yUCFl8B?5>}mBQ|^9 zIqS-sbLW%Qv;UdtlUdo#9OnyrZ`fg;uTBSJJpNehy&_|cW415-w~?AH=EgYL%eVWo(EHgKlY{AtJ^RPF zjQ8CB?5n(0&#K1d;qdAiz=6&K*}E$D#T@T-IyWz(v-{{cn6>ndb{$E7%r*1;$c{6C zeTTAd6*v1bwatxh=DyCgxRf`>p?*G`&8yBSxz6dx{YchcjC*xw>yr1;?Aa+El|SEi z>{;%sJvUy$KEAC!`|y*C9ZPe`{di=p@=fosau=VQvi4%WvF=3|S%;f-pFG)tSN$i? z52g=$0z5_zFWy16_c@;vn*V<^KQ~~TJ{i9+ee?27U0-aby)U58y0gJOfn0PSyd*mD zy?LrnOuX%1b^g4c%15$J2kY{c-Sk`)(DTw2wz;#Ea%~RWlC`VO3L7%Dl=re{A@A0U z$g3^%*T27Y`ngQG(Yrs`2-xN<>NjV^w)}6);>KX~p)+Ys^{w)qILjA$s=IPOC35F? z>b|Vw7cs$0EMJ~=&AIA7lJPO$Dm%l=J-4seb1-vc@3ij~7ui>Tep|i>_AZ}vNcTV|4Kj5vtW~w_r)}!u6vd-OnI-sXNbK^6%^Zm2=*;sADU;OZV zYw(<4Cq3PlWlJ9HZ4Qx9A8e*AE($-K4|*1wEAmZgE_I$9rLmAFWW6P@_FN#gxZvM- z5C_(jhgjIF@63`dHtO*{*=e2JI36f}C;3-d&TVCN%o_SCn@+`8?ZdIL-D@(XcT9QL zr;E&4W1PR(OIDvpqyPDs?Q|~!WwHGC!k9DDers~H$@IM-U8e)KoeY#Q=Xa$KbOD*x z9t_we7q1KOfcFLR%bj7Io$}#{K;c{C_nwe0XX< zp4u8~?f=55mPf`nrhdoy>!pFS#D?Zmb>nEw`-0weIPn$z&k07k#>~w*y(wcj;Z7d^ z(R(D|H{&CxN7EnY=e&G(yNZ`M;?O&$_8K!c@}lpbC#U)F%L4IX583SZ41PhNxX0uR zh$oEgj*WHaTX)YWpRd}lZ(f=)@xW#77jf*|=o5V9+${lrs>PFk$?011#E*aE-TQ(u zuI@j+B1>G!u*aCWx&MA3{^PsL1A6(JT)?wqjcw=Hft#F|bL*NpH}S@Ut~obzBey@8 z{)+q~Q5OvFXBd>w-PzJge9?x8p#@@y1;7PZ6 zzC0By0_A96+32gA)5po4ReHwx`m1M@eD=@%g;#m-7rFKrGxt#N;i>(2YW|^Lyvb`0 zi6g$oYyUW3Zel%hOLu!co#MJbsK1QKDfuVQ6tS6HxSaFO#E0~q3KoIFhuz~2W*>ga z*dO`Gd-jp_zJOkwjjQRJ`^os|r!P+5d*6=*iagQ(Xa5V}CuSVR{{NA{k37e@Ur+9P zqUS$MJpNniVy@$gtTXmYGtS2T&5E&c-TPO}+xIm=^;=)v>bb7!SC6v4J!|RzfnXdT z+k7c!iuM%Ugw!#ZwuVb*34ygE@53em#MXL8#~O=J=Ztq=}yA+eZf5e-eF5L~J;NP)JW%cpKKp`FU=)JX6>$Zs44dTRmdINBma~?RSkiW4mT+##|%Qx-tHA zT`c}R59&UX*l|N}Wq@c5Kmkd`5A>h?SD%8?u)-0;BtDxzSLy075FYopZdJi zcvrr?uMKeC49GBNub6p$KOVd%uy4Ho@KLOp$IMw*_-55ypWE~*w*>k6Zu$GOT5|qfguW!-yS^fLbMURfKMDRzKrWs>H?%f(IIvfFWALHi zd@#S4|7XWu9hnL{>ElQ7#s?3zIkou{!8&{8j5YVg-Y*UQY<#(uKL3j&uGObaCYu+5 z@(IC0BZZt(!6Hzs#b*&H`gkn@#d>+S2o!#D7hjY5WUzZ0^Ld_)hXQ-d%gy%%?nOCw zbs&b;*r$l=L&1jwdgY_O^CJiA6MOi~Cl(#(rz+R{;Wg8xR_sWpC zBQ?HC*EC1@VDy*0ioZwCp85kfpDF1X$G&&+k$w35$*FH$&-zW%91i~~7j)yvN6s7@ z=+dW0A5Y(x;l>s^PX)$r56Cj^e3!GoG1PhE2LiI>n6*mf-k3Ih8-edM$i`t2DD<5R znup}f$8aNu-OA~J46@|Fnc&f>y-2MzPW}!Dy_*3)*^4I~J?rlK#*SaCTLcREY#HUq zF}ms0UIdDL^R*|JGf#g8W#1Ts+7_D2B9~s3Tq1|x$UhJmza!(lTloTiG3N6{FdsXg zF}9gk@T<*a@`FCz)?6Mm#&Qq`Ibhs+?=!DULeRthJ_D>XzI!&#$JXJ|n94))`pjs3 zGGhwg^d9K5p*3z%bJ-UR+^pRU+&O0g`^8xN>E=H^s~&OYGeyo>$1Xo7Q0!l5q?l)G zW2CK+ZyovcvVZ*Do%S=l^lS5u5BOpckTvGns(fvpSy$9gWGIW}zZbZQ<5qy1++k9= z^P4&G7K8nPF?x+P#_Sn$!ZQGm%3Y+b^jysUdkFbvKiLNY?|ANKV`S4y*YQC4$3ra3 z!CpReFC9*84<5MUVb1d(FLV5=W;Z{{>&;*zsK3)(auEAd0sc7b3OrxPygg_>sc|N= zvQJNab7ateM}V&)U--5@=YQzENEdlMlhw&Dd}WSKaio)7`s9}b-6sQuK5H*U->-*! z{1vu~1>fSsFN;7~mB;L}?o7}-L!bTb)vHq<3FL{py8hx181v=FX0fu54-~v`!r@$? z@R1lO=5e`KC)q*Y#ss$U_o1QRc-x1QdJ$NwR>nPzgZawapEjM%UtHM4{^NoEj|?_h zE9co{uKtvp<#AmN=JP@%CL|9y@Tw>X}+JGBNu&sVx#@| z>sOwbJJ-1E4;qhMvG&u_-w4!-ef1q*DU~J8weiuk_32myihjA`)aRzTg@0147r*9W zp8?}u>#D~yWN)wtl*RJjr|YBXn`Z+V-B*6E2jM4&j$KzWhWokkA9bg z?301=;Du^g_d62vWHnE;FAo~$Cue5@r_rbO(MJb+YOk2?57ZrdS=#njr`jE`?(Yok z%iJ9NY)rwG4D#hNE_6EM{HgGr^HO_P_1Pny8>J)qa676HGxupmOnjYH6QGuqxUPm-#dM;g+H#%1@YP!D7cY97Mc86u4;1m zm%KkY$g6+JJsXg5Ca{MbJjm?1PjmS!aVE*!8<5c)uup%U2R*yHGN<7F`^696C zK67sgHUf6lM_og2?bYUQ@2|MmpG2V0`}LPe>kMW@?-7<2otsZFzq>xI18jc<`CN zd?oYF$YghY$+k~U|8T&b%4qK2oUx6da*m~~)L+fB*3QOUHaiot+@k^e+oqpSZw$11KA)Sm_ZWQD^vHXD*bE*B$RfXUX>Q-YJ)eA~@H3mp zWs5%h<%J?&-5+$Y&%RSZW*u8TLDPOr&P z`h0)F5AKdLSx29-k4sG-KRZkKoC(Bhe^7tROL18QihYYD)=rM&`GI@%-4k2oy5w=aXsgp2p-Ixre5)RMU4o7yfQ7JFf|D2#y3V4%h(X zDP)s#Jay%Co(((Ak33fGXV*^q#cHQ{KGnkrzpA74+3XIF$pUcnsjhU-`eDMD8+?(1QI78j@ z_Fw&IyWabK&$R11^2a*JbmusOo{!a|F6Vyc#>u!lSAG3dZ>BD?+n>kGcu_DoP;JJs%9{n~XP zZF1@T%K!4rynQfzKC6!UzrGuFkl~s9v-yL3W6s!bP7J>}bM&*kf8jq~ zkZn!JUZ1h?T>tbhJhT6u>5sPK_L5=$8#2!y9~+44+^^>B;SY7^J(u+x%NI`l8>YH8 z(q-L=slH{ZJ(rEUch$E~^(&{^GuHTGs_&fYGgE!nRG*vb*QVwd@$k9hRX_ODQ}^UD z^nVicrk{H1sdwZT3cf9Wxa!aS%u`Q&Z$1EL$+izS;sd(uRgY)?$)A6wKVSGCF038- z@|}IJp6dFj`COmW=2uMXYGdo>ZqK#*gxrqbIQ3sN)#l1~tgR!H9g0}JDtLMDnmkY5 zkotoWx|O=mMQ63o^;O-^6P(APdHId3#p>NNbfbEs}hRn+eoaD=)K)&$jMxfy4F1E)S z_YT{wRnv3#MdVm>&$Nb&9}OM}s>l4j7n#5BBJ=m}Fn=uaZw%M~@?=je6@NL+Coc(b zyEFK-!1;Jv@D;%~2HzgweIx>27Mu#cDERW=s{%GWu!e(NyDj+Dth+X~oKAE3TzoKl z3ri3^K^)<=kG&1=o#0&=@Qp{&LymKPT1w|WMujBS(Ivf%>9Gg z=VsD*9er>xeSWhKztaIf)t)zJ!u>h!Igq|G*J*#po}2dmU>w7vF&O_Y%2sr^7e^g< zk-;|pe>iKLp>Yi!?nveS++F0i|LN)XJ+k~){T-36fB9_xi!O0L`_2UH;=5I`7=3W5 ze&LVa7k4H=`QOr?;`o;M!n4JFKl+2uGPU#*o%mS)NCxZo-U)oSJE#udz4iT@pKH@y zY13`YdG`B48>!u2`vc{k02hTk{`UNI=8pv8;_S1%{{C>jr@`&5;WozYZ)RMMl0ybN z&3j(6j|{d{&NoeR&d=n0;1cEVQ+*&m6ucgdyyi`PMn7NRux{VmE^*&z^Bcl-?0-fre|P+MPvea*xz_)l zN!L53`u9%t?@KL4t9&JA=$QLT{*d|mvv<|LxsR>={H&el@R5wOk#F9adHTllAjj#h z?Tz!8>tr@hr|>V=lj9jIula@_oBxN>W&_(4a?RfpRE9A*Z{7I*b9MR(PTeE+im|(c zRWi)4dp`)xr4QZ}AC$MVU7q~&?#VxRSz}I&`G|iXoA!46aK>;~&ID}XOS0axM%K7z zT>svzZ@=d@U*|2){}*I#%>8^Fviv?tPA&q)XQsXrA57c%%eL*$9&E);{QF*yyUz;E zuQBF)(0KYj;PvURg4`I#Up)0wZQmK>UX#8Y!5If}?C0!EFXM>^-{M^#e9Pp6_sx9p z!HGAX&eqsG z_m+(%Tk=?d@|JtiXu#~Yr51J$DPdZy1DTwR%`n)p*qo366V?e30t7NFNf_*~jR}Ma z1Q@dg$OeRjB|`|1fjB@2n*Z;s?_aw8>ieo&vQJL#Isdxbvp>(h?^|D0SAX!6utgn; z89(JnlQ;ITTiuD5I&Q6;$@pv_P7en61$gVX`$xRwI3KO;e^2Lo4z+tFAWuU(1#&;0 z1Nza)%@k~hzUMDo7F~ZOx$+^bn>q~6g($DOa3cDbSQn}-o0~Kv+nQuqq`^Y z9#FdGhYt3X-p_~l4eB0Rn{p{u+J%6vm2FKd(CX`peZLE*S)UBj_{6^2VGQ_d%lQAa z)64dysHc5y#+rF!gkSrdAZ|Q%XZo$+O27^^+MG_AYqjI{jLYxekdav)u_wpAT)jC9 z_THWac{>)+@yN2LL;eAu&s5QAqb)}>x34vB#%$UMoEztXj~4>G&K=!;rmt-W^qmjZ z?U#rD_bhoXr>BQc^)ti$ytM}9QKR2^R0Gb~#emH_fu=4seRIl(-JtgJgTGy4Ph-nh zXTzK?&d|}|zJRM@TRChHb94Tv4Rb#EJi{3%?M)fC7VDEWHi%p0uk)qPc;`S2_>NYM z9uB@DwNg9CWd}dSoUacA@}d^#vd7+62aPR%Jx6+HjJfR{SUcQ>mjW``U)>ol^pP>v z8ydQ-yYu+55r{8)8*8>S7TxoF-VE5R(Isaelb&z&gUmxg<2+?7ck>+1V_cs?y6~m+ zFUVZZw*xv}8~k9vUOwO>e{Qqf@Iie{fyRHaA{#x~_BR85S$kz*O{-0K>MvdV)$rr% z{B*|bIuo1?4lN)n_Pp)q|XAr8GO4`(bE;$U6f^JDy7oXeRz@1ARS2jsGsO=H|PGIx&H?VQcymZhtH z7D6YV^}aWdJu-lN_K;_vZ*zI_Ag;A#%2?y0IM+vXyFqJ&+^u14ydTk$M;97A_XKQ^ zW3^%p&(ZW~w61M0$9Tj6kH#i`jW*HsNFYD8EyMluIO_W7tdqqKwSlL$p3is+#0bP> zRjk;+cMT0$y^HufKhx+B2XmY0qn`|Xa$TMLw>AaZI=`#Gal78TuDWXX+|T+rx0$~3 z%;IlsRynO`^pYe$sKb**(0V*6RKz z`OL4h^@V+-zdtn4wBGEi1GHj9?lXhRDjhq~s1fqf+1m{88D9wSo)4x#bB@?~CO8|2 z2V4x^9JtHf?be*%M+5DZfwlXB%14V&j>UZ|u=c@$MlZWPn>?%Sv&%ZW*k|A89Aq2| z?6a?Yp10P?-41pGYa0K_(sykqV|J1w$E$Q$uU`2gU%mEylm5zMC*S$3iJzKr){OD> z-O)SA#xQ3G8fzL`R^@~5&4)2G&TNqfJ$`=KqkpU=-@Ee3xktk%y*iO2HG;n}yEo(d z#3pp~phJ%iz57Ot(bK6}L(_QStxb(rX&W0fqt3=|?l+xeRNj=a#(#D+4svKd1=_Uu z`gl*i_>c0v+dg{Zo{TYeeh0R(BX>IxJM#78{oB~$ziqj{k-qWLJCpXEiOoQq#kIK~ zb-!iMjpkHfpRJ!8Tlt|LG_hgR$p5Z^pKT`t_GovW>r*Scs2&Yjicn=4k1?EBL$>=k<}SJ458MOV0-DtMnhux<=1U zfjdUO8;Hl8Z!>FbbJpGcXio<0e@;MO_ioAfSfFldcZLgH==dt8{5=xzi?3`lW;g5v z8X5HP{qvW;o1Y2J2FAb_c{#uA#o^IF^DLq3zGdHa_GtV$w-`O`X+O8(u45a1via#< z!n{87htGQPp0BHSKH8W6-XB{TUkT8AfALOKIckSZV)D&{P41Y|tkT7&b?fY)>qH=L zuBlG=wJ((dNRd{{tq4EB&YoA-IC#fync71c^i4fzjnmTt7_%_1|GII zFXEyW*(i^rjlVR!kE7WR4hN-|3w&}V*Y)i$ui)Fw{+|l8@-_$f8ePzv9zV8ic_dJ&M?`UYYg7M7VnmJqLOJi@(nlqzWlS{Fs zqqV8d#Yejkpc(7geT|+EY?8Y(!P!8L0G~5OhrajJt1{jQ@XNJ&cK*q*ZeLFQOuOs$ zu7{3HwjK|R#ie$U4g46tzffi-g2cPy|^KRZf$OUCPH`~HDe%;kbl>*(3K z8;B)3@vEM>O_#FACin9FL2aUEZc}L+d-NLt*?e4O*T}<`@~B0)GuRIB^M_vdyx(K^ z-1LQ zul~C;etOWDz9C~d;*(ksmxBE5pmO<}Yu_Sx^T@JpB z34i&UkRK8Jbb>C zeltK*zaGt4tVa20$soTqv6Hd$<(Z)F%(dPH_{rG{*mN`yt1+g|*cj7K$lSf?d363v#_M7wX1$~3tPfxKvB%L&`nTVrxZ#`w_L<6}YQ@qjIO>11;;>hz4j zN2lDL4%FG1;A}v~ZqU1dKJ=BPe_n8VK#!RGaqdYnJZtgeQL`TxXnbl-iLD%|748_qc+mmu^WiHm}vZ!3v~7AMH%V({j`eetyc+IbGYJZlqI{I zf>(XeJHFeALE~ZXoyP}g_V{-tAX}Z**Gn0121f#Qy&aI@KB^3~ z&s)|`^P{gV_6}u^x3qkgW4S}?oQ=BQH$^5Vn?ZH!cLVp0T+$C}awEV`t~{#Id5!m; zbdF93XxH6s_Sj6eSo39_+-xoCzVvM2*E;&z!54P0RZ~a)y~vH}fgJ68fR6mTg12Uq z-EuYsnwn|tqXYT!-egP$dOd$$7w`#9^*a+60=noHe{=MA1}6h)X2V}xV?(wUXG?wb zJ)q~W&vkkKfIxnZ2lBcspQ~cP2652XJ;vZKtHuNOSL!rn=RjJob*LezEzOA!eg~ zzR=IV=9EqM1?(0d=f{1xYMpG24dgV}e|b%=t3#~tuvz@%h~4*19XeK81>mHAB}@Ew;ee5_~fB`8SdXP zZ^&5P$g@VCvzK)2pFL-CC(s_+>-PJLnbV7A%!&0!mh1G6zwg|;zh~O#U+U+2!C(G} zDISg8{1B7w@j(;MdHnI=5l8#=uQATjV!h7|G-AY8zNxD*Zem8Sdr)58PxH9llC@FJ zrOe5xj{7qn^|NnP4DpERJ%JdS_nb}{Yt6YaIah)=2ID$gs(Z9+oqr*JkNM|0^H*|N zjP}sWkJ>AK^V*R&w(@7y{+LJkI1`)=4hQCyUAafHwiWCK*4#txFl)}4`vDD|>aMw! zm&ypsA_wMUPA+Gz?mX8^dsD{ERnML^`uSG*eA@}M@yw0)GGEm1xqxqfd$^~@x*#8o z=KnyN+erq!{KTiO>$iFqiwA<*t?x6Ser0KK-}Jd%JKKByt9LP!XL{z(^ZT0cg_$mg@$;*QI-xv`0F-9*L_{ba2Tc(S6e0F+qqWj@M zJjhs=Klwp}o_*#w4tlK9Q~$(G&5Fg{f%fji!oS&W-W!WmHhsxJSDW-~7jO3;``PxU zftJ1O7ZZD8f=_IxfG#xhGQW$}L~YA(5ntbf-5a<^HM-F?zjWL?=&w)ehb-s#X!@;S zBWNA7k6dT_mH-Wi@fY8?=O>%V7=NG2{6xS8el}0meLu`z>z4!m@s&*Wvt90b-syAy zeM$785vM88R-JXe-4-}Q;-@EXUUSWnvw&`M*|SCbwfQ-J?%wjgJhpi^<(C+KMEdPO z+{A@Hbn{;h#A98}k9x_R0_}7V*Z1#cwt+akE)YvJzCY0DBMT3G^2P6mgYJo^J$7sa8oMfYjMe`Z1?tRs+X*zaS=z?x zO4i;ORG+y2)iu1k+3UHHV=>T^&o;L6NA7#>@5`9~^wIIcK*I~o)uH6dcnwuVakV^Uc|tLoLtOIw#xT`E`EjB#)j~NJ`qtfZu#%t7YTb;(j<0h(mqY zSk7Au9=l`Wy<3BrY3eE-Ezh3byweOyn53$9=p5B|a(Omp`e|G(ztZfJG zbiN%8x|iX8Jeof~Xcq#$iA#0O&r!A(=ZV}Lm;IPI!{XDJIZs~}0(AUt48_x&E^(U2 zWBg3WKL6M^k0+mYgZd>tYNxqrEvu2%rP`+tj~Hoq@XqZRzZb3@<8z%{cDV=0lYe*S zseo<#|MK`>d&ZoOIV0Q?F}O46 zooLOy=UjT%+g^^{MQlA8Yy@Y5vw?g7IU^5w=(O5l&Yu@sOgl)A7-{6r?K__}vDJ?{ zmu@fQj`{le<@2lmC#-u~JyeIgcclM;CH?60k15{=v<)v z{T20NAMXx=G(L$>W6^ju@9G{lmUPW$b4pfqH>YHi(|8%9hfyz?quxWAli!$pRK{C@ zSk|t}%+giolMUVvH1##gFcvrQQmgc8=Y#oq9CfY)C(yYSa1Hr1!b5-*TD=S6!YnA0}jV&mD}cWV0ie~|uT*{?pd z$`n69trG`TVFOaRxjmc zr&!g_>UW211Z>7ncjLpR>f&>C==n?+Ihz5w<#;9&!Lv8R*0^x~mczZuYpex1)}vUfI6OD_x5?xFPL z_4_aOsueQWJ=ThKYu^9Zu@&4Md}V^!b#_{BJjr7hUbY(7_VV})Z*#dvZr43iwgaCh zR8Dh1{+#Y|)|_w8{_bVCf7be$fq01lpX17YetmDS6KJbG6Gqz@jOU)N-lJk!8DatM zvO5C4pyd~T%-JHp^SekK?hV9CI~}Om=J1fkH1_x&h}nOuRXjU$XNc|c z?fW)$$j|bRxu%=VM}wZ_bvE~%k6!ku2{PqKd|q)RU()FJ-h{5T#Adl(7n9My#`?vf zCyN|@*Ux)0*0uur(T{6y%$$C{CnQhUU&X_Bd6GA0kiF|{9nYCqoeTK+@xyz78rTlR zx4yBTAM|KyiyqB-&i#hpIlDi&EnwqD(7R7P@dvN}`$f%e2K?<-ebn{!>5i%8f)z7zVRbLVDlTTx;JZdYwAF~Hs;p( zB-YmP7_-G0Ge$$7F0e-k|aaQ@wY zg7iNJ?+VC9Upf3Cr*%MX$oB1E8#~zh(twSd%bq=K)AxOYpZI|;^5m1w&aKhkI+-%o zrp4Didb#R*LTzIU{dBTt^ns0h(UY(5c^3E0K-}5NU;Ff5S&pq+8~ZW0wV7UY&tCS% z>d#!yhI4_u9$WMI%69hX;YZ~*7VKfKJ${p=J(i#0sO`QJs~0gPt9CmZTY>W|cCEA8 z>`b9;FCSANSJpvn_(Aq&(3q)5wz7+@V!sn;&67N%Cl5cAhHU!SGS>RK`X&>PIE^(Z z9^`*#;^F+iE0_YUacgbh(7fZD2TE61?;=b(uychG<8JYHb7M$6augDjAzLifr*gwygTCg|f3m^OCi7v4* zug&W8SRjY?v_3ERDc<9A!aLmc=KjIZlA$)}p`U$Zj_-1pGj}FlxZG1eTJ83p&@*eD z?_y_7+%;?FSjThLef|UA?2EY=px+6!hk}uJE^A{!bu}Gd=JDY3ZeVZz{(Ny*Usc0m z)VdgZ^^5nB01X{{HWsJWurq1RncyEkHv=@}kzrqrv>$6&y{L!o&HJ%_d(Oy4XYX7f zZht=iU+(GU+6-FMHDp?1jcy8M=Jyz@?kMr#bkls(mTN5*2pzA=uY9t$;3jX)ldUtyDGzD7knz2*{@f>Vx^|l=w`sq*3<`Pd{9koXI~>%&ea(` znl*FvG@iTeixJ4XefEfzSgxwWQN~>6MtHQbPT9i-KGGwva3yGc*Z140*>wx3{oxxsF9eSUns`}f%M@sAq}O`K z8LrL!8<%usYx8$Z`gRsOSJ#O3`om8CTnYM|r2pZ-9qBH;HE@@T1OL_e(Pb~z^78>f zV=(?))j1QxabLY{2bTkW(sy_8wF!!z%qh^^XPW$1{#_X#8|F7>%!lr)3v+gne<)}! z_zU*GM28zZpC|5YtulA*W(-F(8XRwvop+_p`PtR#VpbQvVvO+D|We zYN&DRz002RH7@D_ul#i{!~OHx`sBCxux*Tqy7pQ6PN21R^nG^9-MK(bd{RD(Z2b7l zesal|^U+p3_Fg>v9FlLx0(q1>`db&|iYq_*9=2+Z9=AE#+X4NJb?Xn0{OHN5OZMXYM4n&BfG#7p~U!)LVO zhZdi>iEr=F3>W(7<*WD`kFxxqv$g+u*&~CE?3TYb1?=TpZAM2H-RhrgwJz84RsPWq z=UVOJ6Q9zKw!C$PU-rdR{os3J@Tx%EwXU(1jhg5wjR!ajEZ zdHQ)QvUJsZE<5<}vS9xCoEj3BF?YY5&#U;u7whT>zxwF9m~I6l-}elBW&0ib%t5+Q1d@$ z*uHV?|CoWdve8@#-WaHBb4?D#kgaINY5bgu{p{);Yd!_qwD`LB?DpPpCO8`$3U&js ze5TiTB~4_bT5%Ca^w_i@W{90(FQ^j*R(5r@rTaJ~n~#uoGzBO^z-> zhG%u>m4gR==g!RQf}afVxCibE{(6+78~50u)sDu0Zi8IfbKdyr{n7c{4)AKua`~@h zTpxP>y61m1V9VEs|L*kkPl3i)&!Nv>_P3?ys~RVJ%+u-2k1f~v$FEBP{pyvCCjw^> zUF~XJ-J7)|fyTa+#r|hHWV4OWjcea6pPw~0kwb5DUVGTc4t(rjH~XK8J>sYCQ!mEsYrWJTGQ^BcVm8*z z;mj`wY;#ufyPk}ZqzV5~5aK>onbxtpv$Q0ks^>4 z?AacFCUiOLm0g)xTIj~pyOAxLoXMdawI1g=%+}&g)1$|GC8&?%&*G-6YmI4r5N}|E zI@@~}c={p--=!4gcTN_7vyLM%{uRiVwHUqh02Y>PKO}s`M$?f_&ThyLL z23dIY^7>~2GOe|C*dniRcknkOU`nq|i?5IOTHfd(HLVrTDLhP~#;`rpd>PWmIk z6ll}p>*GE7AP#u`k3rUyxg6*7&o=U_Z|w1U?$EOt z;IWTSeB>R?TsQfnZa!`Wni@T~80CAY<@1{kIXV`Ifw-#!bcccu9G>&^qa)|`z`pjp z&{U^8U90czVBUwmSdn2*37D_Xl*1k!M}&pN#KL9QaGNyo#-N40Xi+@--gg+Gh4|2)z4< zAzr$ir}DKwh`%)A$scoZHzse)@szo^uB#P%8XocV?j{yJXSK~^k5iyo=hv#=+c=u_bAfn#XMU#voiiX-+kx1Lt+=BFxpvm+q^tS7Gvm$R zNPwSSwB1K8v>0#Y7j5K@ah{Qet1`I zJk&RP(UC>2*iHc-oV<^8uTTt*KABt8V+o1={Y@+5KlPX;$@o<&QQk zzCPZc&RiT@Yy4_1*g4)EADlUT>hMFCz4wh{fmq6y{rcPcx%ER&Yr-=WpFRF`{anU! z-dMEnzFOW6+bvZ7>SP^Q=mPx*X`#<%wH0m z3iza54AepA{5IbRH0P5{If6R_{6_jV4v#OH5cWB>15WB>0SuwVQ6341X)yvVDZSrbS8 zh<9thbuVw<8Tsl?T#g4%55)L-c>m8eytPY=#G$pL-sD)kc7xU#yQToGIC@T^-3ruz zwcm~~wplBkHTh8EY%X2b^y0wJ?~1J>U30}}yka0fw ziTtxcW9vK|%5RXe@mTQk;Qqk+pAJ4Pcr^IZ;I9YY5qy8}>%qH%a}o3*fuHOD+2FH+ z&kepV`1ar(!A}Ig9sEhazaLy>zU04n4gQ$F&>=76icW`?;u}m z&z$ccJw?7Bdy0HNejR-BE#4P`*3XsYcuKF?pA6FEWHLyrf9^$jIy|hY&Bmy)_dF?& zeL47v*yz4(?#9|7myFiN&*U@Jv1WfbbNjWuvgb7~AETe+x%uYE=yUGXp_6;H`v1hP zzGs-fGjqDp=r@+*(*NX=KHY-Tc>_1X6rm;08nC6nyyjjh_@%M@q_)e9dgmu`IH+%tLf3BCCI<7IsC zpr6+aIcV|HkH+T>8|hC5?wjtD_j8d~-IaAJ>vG%p{Cqw)Rioy3zb$jV)?Tz*0Uhd* zUU6pw9X}r(zW12hi;o|*r}Ef??-#{{% z(4P~jw<*xjUkcbVKXcxf>6rpeK3^OBV1N%kEYRpVvKa08V~+Psa5iAW&B2=j>vAs7 zVx$Lk{Yb#C*3pTKeebvx@M|+ruk-k^1yAGWb49T~wxks&YcEJomew_PS?m0{%Q+on zj z+C1KevL?p#l$T9nD9>WN8PGA0<>>D(tnhaVk4EQ4a3+vrI)N|M^+?8a9S`W@>wAK} zHO_YWra)U|)4cA)v@sFOYtyT&2i3=kfNb?=?sv4ct$+-&=Iipl zYMs5S*42X=xFOKyH9#ed`TV&R`BV?Jh0Sa45zC*|{%kc*r&;kDbQswEpVg zEy3YHj7rP@aZD%L+XKy*zA?7=*{U{Pl)koFXWy!Q_EoRGF{&In9%G<>wgc@#z()NP zX#FhFGgbcG^S>O&oj8r!w{AO~9Y;1#n60(oL98qaLs5A+O< z^2CDOpg!0_zcGI2&sa?Hi-EB%7(cNu^nZc%3KZ_D?VxT;RR!L-ZL$y)hmzkCm+o@dHvoD(8+$sFSBQ`xBa_P==XB-Pw-5pt8_Lc+OmsjdJMRnFSpSb^+eWLa}(d1pXF2D$hv^O1}z zhh4{(b7vZ@dF$zN#_E*3^3X#TnZ4Jnv4yR4!t;WiKwEW(@yGj(hM(Q%0-tSoe-cMJ z#8w>WEd7+RHZ8vH*;bzWvnKY9s~q5W-s@{=$>$f}4+r9B-hHyPc|7E?`Iyu4RUE~j zH1dOoe2orkuSstWeb;(l^PA6IKbvvwW3QO;hu!ErBb!fa;#b}mXNAu#LAkyybYk7O-;%L-l(%)v-kXPY&*jbFNYL64OLVs`d(Y6yxmIo5 zKG0_Pgxc85TI1^;TUQ&kv;DQ`#`@v6d;NOrNB-Og{A~@*eI9G*MCcli44>d5Ipnpz zujQvYL#vMY(Ylh)>-9rj$-Nw^Vfx4VJ(u}b;H;4=@9J56ow52OzoW0{x|iV-d?ia$ zr)2TrVlV~jw`wgHyza^kg%&M=l#FfwU@44l; zwD@XIY2{1)th=Z9_ek)DfUXw@_}PKSbI-b1S?fJfc~rBsGhD_I%lLd?NkEa$KI#26=m4aQ~8qJ?idQ zV4W`V?g?6d;?VewKj*TJZi+0*F4o5M_SteNW3t5qU*jSk z~I_9v}JjhTzo!esb`$OM58jUD-2sF>CT#`^eY{G&G~VXq`uP z)^9q1{Z|6#4cPUoNgjUrVk=**|611NVJnyd{Np^+#k!tMJii{Eo%DQ}0_}8gICxpm z-%k*SDbVbbU0d;*lgVecjelQ(-S+hJz2+33*!KQ8x}^1dR8QN1{Ln3D*hkkv_1rwPMjGG7e_kifLH9B|uujBGo&1}jPRJLFYt@N-f*5WE z&8KLKw;1WwlenvU{;rZMXYB5|P^Z?|*P5$OqrdLXPYt@4;S>D*c#CP`$HrF&9~Efh znz1&nxwo`&?d;yt!ag=aeeeINpiWkS|MPYC{gHq#YSme#PyEQ1pZ|B3A2l(LW1k!3 z$cy<#VD7A}+LsgiHS6Rqrcw_AIkO{Jis7 z6F)f@6S7M;WqiwW&aQcl@%d69MxL4H(u)m#@>Z?)9vz>*Azi#*k|zh69LO7+#Dh$C z!UF+&`K@00F8yzBlS>vC6j4@mJr1jawrXLfeGoyWm(L*Gu+=PPKI+I2=??V?!p8iB2szyYCFhQ499*Z3OD!Vt}rBux_oo=REk) zPk~lh#-lG}Zw2+uJFa}>yz<-W7aCU#Vp?_bQ_A$p&?iKRTa6JL`! z-1RRXd+eu!OcylOtxo}2-3C!G>y~IjOl*nvKLcxXJ1c- zUXAJ1ufDdk+5EO;zrF0$to1X?UVQ4CIDF2(dhD^U`;FL}4~2F!XQO{>%6B%J`~R@{ zSDW#RF?`nV?EUSVaqVqcYhLbK#)1vbaOuSDmqN$yTLSwpSoWLC9=-L`0eQ~ePyffg z8gfo6Q_oK{?0);ZuFl8j&*l%#=FiBS3^5{uUmy7&_Hy`M8ILv7JhgW0<54F+@%yW5 z89y36KN=dkpt?RYYtPIao%Nn4zWnLsUh84p`>^cM-+Jy@!*@D+awgvNYR}Iy+@iWUiGiQVPoXe$ytlDjihTYDpaqX_`@o%NmvsU{&Kk@Se?Hd9v#yqYEih&S|LARP>i25>8H+V_X6<+|1%D>+vzf0B-m!$Z ziEDFuW5yb}*7@Y$X^1yp#gg2yZrI@roeMPo=3Q+c4aAKN8k@&N}pO7qI5 z#<00HuN~e4>0vWD;y?c#f40blo(*W!0={v5j6E7L^Imx}z^9G&pz#deNKcN~(@{C< z3EvcGY#!_2ALV-jHppphS37E(ZnSFdaBwC#8#tdmul9}EM2}}rUgsZUOP?j{_~ocM z*ZY}*wcb6)GnPBH&2={h|204R*u4{Iede`iKc9PM{%d&lscC1YwKLXu&zibWCp}|w zuKs%l%+CcI!RM~HW5}$pYWJBryy{1-kv-;l*M30PeSum~-^R|G*y5c6t+baiMt3n- zN2AWr$O9U8$P{R;S7S2NV{6kp(C;R(o{j309qc;DZgo(*=~-vfyW`_%f8#Lsk)2bZ zUCYORe+?hWP``A@Pva=>qipN*`2BxRQMO!POZM+wL-uZDs5|d5YI9%Gkt{`<*K zW3-w1k${c%$NP}Y=KNxF?LD3`d%K5k%-xmD_n-~6hdabIpv24rb$F{Ve{)gS+?)dn&0EFp*7b?=RM z8fSSU3)o6F+w`pqwP>EOKW#HO5|HoRu5otu(bXUH?CU$~SgYitlZU>K(xuhU+ECr& z-SYapXU_HG6&vf`Vdv+cZ?)k{#^g?cMmN2DITvV~%XeA6HlFi$S#;N9@1g6k_i$v1 z*Q#@LJ@)>?e0DD82ibc%`}CX%&IV%S`*k|`;ay52=X%y!duY9@)9oGfj(`lg*SBVy zOMKSVoL*h&<@ol1UGjf2adXe(mm}u^&uBkd&sVuK<_A3oeeaO%MXfuN&WpI?!K;3r z%;ys7YLwGjnzF8~ia9&+prv2U$;)pJcP^h#1^gfV&2+&>uNc*4&-eLfFJy}g`C2}P z-#<5WlP_nL&jz-k*Q2LHEc55g7oYW`@v|y9hvu<9{H;NUJd3TKoUP!QOW^GuU%U6L zjM>aSvW>R`_TW`h<#XSSeD>#jSz4@325ItvP7^z}?Y(>5u+Symz+S!kspsOMj5U1C ztGQgbTWX8_&ZmsUY^2}QxA%KTYF;cJUefSWBg0whJ@@_@tN)EayBN@MA|PMelY8UB zCua)8vt#{S58LUY$9wBXr5|P5cb>;J=k4WzhWGIp?tK>jqO2WXqGP>A9^iR%Ko;M$ zx9oL`xLXs8j}6o{AMrJ=@=W&>XyUsOjC}G;#>i)F&PVo0$5*n*v_75>wD=$Q`G$qP z$FsH*d|Ge{QyRMW3Fz0W=Y)7s&-lB~CiR9+P0NMvW$D^puGvG=TD&*oBY{S)I%2mR zdzT>JT6NP!HoPR*4DgdlKRU9R?u?n+!`Jn7I_c5M!yfrL7F2#^@ooIvvT?9~F~CR8 zl|Zif-**W6?h3IKYw=Ov?uhEFP7Hx}7=xn^z~l?hb@@uG2i`FXAS)^c|GfF>Z20mo~1G zK`xB)$Tb)5(x@9U*3~#3?R>yzbGS3$qnOCCc#EsKxHqTjmS5_>v13>3DZ{H`_1s|( zA6mLwYvvlAtu^+TU#rg8FxCzp_OV@##e&XtvEY-2uXarq(oP457Nfo27qrjcX}LD; z-VMpBA&&fOv;(Jg|@YZg;>*CE{ew0>h*3t3}UGq2E)Er+}(lmc$Pk}bZ ziHv#v{$q@GHysbyfp_#V)BW>}UyiD0Bjd`S^PrJiJnjT?^>mOy=dnO7Z3l9GTOilB z2I%XzGwZGxf6t+^__G<1+j=77LZDYO_B6JVtJxPnc20q2Uye2Fjg>n8gC`NEF-GJy zMj2iumknh9;R@NFKkReAX?@OYWGrs>ra-IRV-9w+-k6EQ)^fh;Gv&V!q3qf85P+uPy#KgrrOH5jf(c;thc^bDCYwFB% zfo&aEN9|xA`r6s|4YHmcsOMEO#ySbff`62Q|46VK7~AVP!OJJl@S_2noD*}gYs~R% z2IPnby4HQ4h0TF=eDnX4>|EB!c_`nL_e|4ImLBlEJw$BU4&?28P@Bk}0&?`)&R)03 zBYLee$s2zbK?fOna_x^li)h`_M+Q6f^=)2X&IFxPpiPUfkJlYJXsjPz_UW#&S==@D zkk2+XA_sbRjo57jhlbBH+4$xG{UGjs8gr~24>Y8}hXvA{Z8_**^V;roj#qUaJ`9&|;V#4Ps(D0uR&@_hQd(#+0`Wpi_;}^e* z$hiK~T^)4ud!5hXR(a%4!I5R3Za**M-6DUJ&9u>X{?6-(y>xh=tbNTnncju18(Y`2 znJxUNf6g~Lew+;G($J`*)`wirYxZeFo!}EojSlkttV^>_7MZnYUHqKG?oAnM^ZI#P ze(|dH(=#J>TLE5r*uW+=t$j^+O53v|KO4amXmg&=dkQ?Cv4%&!CQ8!gdhTDt!_Emq z+E@>K)vhN;rv};Ua&$Pdjs@?@9Q{WA&Bc?=(NBiw$>!*Lp90S}t>GDSbWptIPn|js zvIx7dKsz32Nyd_7ZqC5s+sjl3zauh+)7q0__)#=XNf()dZAe-C&lJ-znM1ZM;1 z)Au^A67}9Yl^xf!rl#4)FR^12yYC3dn8($gb@|cPXZ+@3rzclWo?g!M@}idm_3wVZ zJ>Z*X)C+SSUzXngEy^A~y*eNdFL~zz?YmdJ-=kq0pH2q&8Y?Bm}|=L$dU>A(7Cec~)%#oQisP@CxRnZie=uMOm) zVcScCgz>TNW%>l4xm;%i@j55Xa za3HT_zc66K?ZKhI-sh#(j9dHY=(!T0rK>&p#{)D^4_YVqK`vgj9ODyHed~=c^mtzM z8DX#aCWCG{?plV6HS`yP-VePi*;JYQ*$%|uSilGSJrDHn1RKE=XzEwJh!Os|PwM{$l2@4^9SR$!~Gu zhre5|-5vbr@HA%S8RNf>?@yj2-_1*Xk39)KKl5ZNJ3SztjGfhY=qd6Yev*7lWaq|p z@ToC*sDJ!gm761xr6$mhxk*?S&r7)>OD*H4|Ay<(KkCAZ@9EdUH|lB~c}8z7W!!ij zGDh9a(b4PVW9Lnw?b&TiPGw!4v{unQ;{dvTj$d2u3B7aYJUDl3Yg3?!(UG8c+hL1obes#= z_;-f)F+Q;KO27}#;>Ih}#aiF_J(tj;`%e)hcJk8r$j2?2Zv|*ZyXkpt@Gk=KI3BRG zYY!~f`K*bPaq}WpY$tmjFLFF9=p5rhr`WJhF5f3HMdQ4SOKqUTT-}I~wtGN~=y*|R z*n$@i+dgdIVWU`)d0W62`F~cxE*)R5h;Qt8SO>mr6EfT9=UTy`Gkf~Z1F6!F3#_}jI(>;#ex0a z5t|v;2X;(>#!q(gW2~*_^~u!MrO0?N@O_H2^xwoDab9(v*hZf?iitU0Xyxy6@Ug+o z0pFZ|aYO4pKs?ODvR|`gG#B$)&DK@Fi_%)q;~VR@wIfdAEZ$@Nuo+M5c{5|NB}?3< zKoeWEhXXQtj@fLk2JrE>wQA1a_gls;-G0rk(rHbdyga?wJP?QtJLKS5OF6Ce@ouP3 z^+ycOg=ag^tWO4Md=U@rpqgeso7`P|c4yVSJerg3xWGhPQ}OkT6ID%Tiwm*)u*^MFMQew=)HH@r(4tlzR4s_{P3I! z&IW2g6VuvdPQE-ghKDmg6^O&gi(ekplzh{#IWzoMPvTf#$>a+^_`Dh5p&vb4*+H*5 zxHUb!@}=QNCwF>uo>}B?1?21m8eiF6d(p7>3j*!-;O2mR=K?K%zU2v@-HELllq)^^ z(UbR%fu8Q|pmz1SIm-Wr74+oeCI54RkSzX=&z%_`55$K|`s9Uvv15b14+*{aSMNO; zlX)@_x6yy`PZB8m%T-l@jTI`{p9CqFw*k}LOX3rhp z*r1_i<}?KL_=Nuz2}WZ??)hLRpu0NQ&)3?ISDlFC=nEeF{Js#3 z@*9isa|?cs`s4!-eR8lJ;FF`qSADxPYD@KRWKH8ATDIt$8*yg$_&1Nqt{nWUe9H2E z?pp)s$f|C-fNr+RRpVOQM?bG62anin1YdwyO0H+pW#x)`fHsQoFq1&R5`d}^EbY!sO{@`@L$Lf_k zAoq2Fnn6QOzjqZw=NKPZXxZnEzOV#4(D~gDxi}ukL#~D==)xnOeC^pPzq^EQ+d=i% zI~VZ(pRcLGY%S!moj>)DA8=DZhL%6owO_~L%BP+Kc8Nb)d_ObLT0a%=Zgm{h3)artek3r)BP)=4h}d=kP-BBf~m9 z;@KWAo7KE^bLYms-ujyZ`u=KgB;c!UTvhN8rviqKIZRD^wckAjDBXQjf^p#UOv8aFT@fy1;^z6|)3+${sHM9}< zEaV3RHi?n`{y_8D^`XFf^P|f#{@uX4w%R3!e73b$FCFh>OvV&wvW)N zoXxj_v6jwcE~fkwQ@9d{Yx9ABT@2B&ogL7)vAeeG?akxH9zN2oU*(5A--A9khS9~A zv4*bYpBQOlZOAuS>@vPHI3BRax_qf$x%rGhex0pPTaGWJXRkc#%?~=`?hfZ*es|oF zHMytvT7H}y_~{i(Ha16|S=#}B?32f?`Y3LF|3}AOH1@08XAzox=TI!fUoSTs!4znx z12V41b~dUpwXqw}sm{&ohc&VE{H5QV{5ylqfFAq6Ciy(HoUgJCP4h@MzOhclMoog) zxM!Z9{#Y>T6q_l~_$)5+NEREK1HI=tTeOD)XX|Xh_S(-U;I}n-<1^md13snHpZ4MT zz10WPyMN}f;~SelRq>>41>$90Kjw8ab9ycZ>}Mxlxwek>eDH=qjhky10{NK&zKY-6 zzbswlC)pZWJ~pn;%~(#YjXKm7&_Ac`y_l^s7`Ru6+{)~QJude#Cd!0Jm<+mhZ^_}hK0(Ji@c_-yx=l*{YHQo8w zWlo>D=H0`*=f>Li<&OmD%X2w2bjY_HIUkk5=UZknck=s$=qr<5|9C00=S#hjgKj)` zbl?+r>G|F8edE7T+JllAmu` z^48Z+TF%+Y7WKc*PV3!w$Cx{(diR^&y~H1JBJ;E2#|Pz)9(;1}1A$!LI?E+`F@xU; zjX7Jjn|}AP$8HPkRZo4nVdl#(<@e*}xjhr!#_@-j`<=giHvgL0{NppH^R}Sz+R2)@ z@@zh&7wyVl+1dUw12__9B_?CG`s!e#$~%l^*vjg$PpFn;dlZ!tSl zY?J>h!}ysQs}DcxL4SXMU)^b68{W4C?+ExJpOr86KbQ3@`TNlsUUe?mR{PlM-uUQ0 zd}1Cxb;*mCT(olhvwv`PZGUCxTDLFCzB{OAu(h_CHFD%yKgRmr<$Ah>pJco|cwU@x z|Gz3sXVRYy_@(XLgYUnfzccfX4Bi-gNAMfL`-Sj>g5BUR1wS7Aad0jUe01=J;QNDL z3vNq5?+dbhmE6l&dryGe^MQQo<<$3lVxeZ7yHWQCMX!A8-(AdgzbF0JfKJ0W~&g~p? zH`==$T0G7no{ItB^n7ccSNZb;@n-~|#`%*OALNhw>mYxcA7^uw58bbimqN!!{k44j zy!bc=Kj&-LGoSnTlE^tI7xOwhC>I|WJ6D0NtJV)%o7*|omblGx@np`xow0Kr*t%|S z)%x5{b~M+{;@r-cX3d>-P#m8T`wjvd585C1=JvfIyzhy7GYkP6m&^O*WPtV+)BVTm(x%oFTxgPNUT6A+?Mqi(`)H|NR@eXaB z^-g&*_vU9r@%4fq2hkqnL+``UhtbEUV*4wi@X3Jv>*x=%y|&G5Kj`d!KmeM272+}SUQaBZN-cds^t?M@XZhzgj&bxo>_K@V$NsuJ^?5wzN&Lt6ii6%sKRmSW zF4#!M+|Ti@8K1|VFYH#E#*N46j1LFo^uAX|?+G-H)vaH3ZjLVX&(F=go_9l6d(ULt z@A2j_xLzH1M8;glL2?_j@!fs2+4(+5-ix!Jk2DsaSFrilGxoi_xU}#4$_HglUeusH zefPXm*`wQD`?3DEv(8TbpuH5JZNG~41=(j;?-cI`9jhJk$k2>^?xc6p{#Ra;_mLm>Z00StqA*>yJFF;v3f*Blb^$Cbo1;fkw`{9M#9l+zoB-KD@2(S7tmy zosaWze9M}>|9-iiZvXppdVBu(AcxgS$3b}RHTLJc^8T@bbFcCJEsN1!eV{MR`z_bS zQBBDUU`tyXpeHuYyMQ^xM8>dkO} zuWRKYo4w>sfku{Gk+%^{LFMt6AOGzNKb*CBEwa&>oyUm|d*Z9<*}yk-)EJ_h0_$wQ zA<)pD2+ZZGer33bBYQ!7@cN$i*@1KYaDbjo;?VIYW=!5VPq_EzuOG&rFpM)?snff~ zvx1w0QO~G;HDRw$Hawzs}uia{d z-Is&r_wJ0=r?Bcmogve+0Z#YwunEy^Z4^gtG!zp*Y}rXJhy+!nplqZmUm8DIe5f$&Lbv$ z_b?Xc8v|{OQSY!m56R`Tck&~_TrZ!+fX{4OM>js3_@p(?jo*|tHnF{VzaD>&E_oW? zF(>n!R+rp5OJkg_mrwkz#aBIZAL(V&$X_4FdMN)CS~8vtyKy?=!#kFv=`Fx@QG*d3R)O z%mX@YPN&X&k9rVopAog=_VBn*%)d6jhxM!B|Lx#N=6pR7IJ@r3HwEa7`8VqC{q6hv zcL&aR`7>PTdDI~7`2Ww|oq%hami2+B>lAo8WI_hIizWzt&Z(tq1EGLIT4~<0s=5Ie zh@l(k#zv`DP6I-W8An8Hv^${DjAqkBv&V6a$(Y5&i6${CX4hn#BqnM$W0o-)v&STp zA^+cZ-hcJeZ-3{UYJ%5z%{BMc|L@uE=iZ;^ea}~?tM-~zKGb`4J~w^)K2hM~n}W^Y zS}^7(!_Wk(6J~mwr_{whQ z^XY+S*7Jkc1@(30wdbkuAI2MTt7jKJx^D|=mp?Pw4%p-T_Ux+D|+!w)8=wMnd-`_YFhnYU+*Z)J@!4$I2# zu8n$r$3A-OAs^Q5`^Y}~M*GD2M(kU+M^5Cdx<`MmWxn-uCjGO)O+jm^&v@tBoy!I_ z;C{jV-*V0c%WsZ9?ef`XxNdFTVyBDsBom`06@2wqPHvA}a>Si~HwXOg zo^Q|ZkG&xO;L$ySdO&|JvB1}{*mNHm=+_VY4`jVMtceRgx%j#O@c|F}$d%7m&ijn< ze`B7{&rI9#wT$`Onz6rYw`A>N##`}kY1^s%E+8Lk>z6IY|1jfhTb-No;eA$KF33ke zv-sW4cVumh$+Q^Xp0RW2{f2BUd$oM_9(T|>K0I3QA6n0Sts2&PK4@>5TX&1`*4#Qr z#&^u^nYlfk)|ny~$q(7D3btdccY&W~bVy8h(x+4Yej@myfJ|qK%(H=b!I-c7s^gQM z5B4DP$UYv~?!HmBvxLtXUMJsPc~LX}VjmsLeS6Qwy??Jr{|kZ-2j3pB+gXvHJ-)sF zXVW_@+ngUipNkJZq-Fn!*zZh^_KVFk0#v?}H^_JD2Knx|LB7*B$am%j`OY4|*EovH zx$vp;WnAPG-<80+_^6rtf@8sp1G&ZXHOVa=ym*`k{1*a0-_UbDder#M!Kmv*#-9|} zkMO=Iykv}ga)qz9s{yu<$qw||*g=2okniU8#gXY8k22}zC!5^4pRy(veV$Y=`(Cn! zk9}mJo|%`1@8{yo(7_MSYyPw8LUb+9KL5h9_I!$+Sn*3MhWh_(pL2RTYtAvMe=qwv z^3NS7Z)}ujxq0~-UG7bHARiwJ+_SF>(3OCltz9vC#TpqWGB0oLfpvN>uG#Zc^}ceA zj8X4+2VRREeQu6tN-gt8o;HHG!MG_`MZAej~N%nQ$_YBeaxpS7gw!u2%TWFSVsM$rV3$th(!W zBkqgWtdS$9sPcP%p2{5m#=LmvqUX^7ITz$kkt;`|edInAjOVs_JePUCj{mR!%^BN6 z-lfQMZbo_R;cM%f4E;a6rVgA3#HWkFXGGr5#WQD&4O_;#qi;KSdEh>IU+^`-HwWJr z{N>=Mg8vx!|NMVRa3=Vi;O&9`2ju&M{I`m^*o}1|9{e2FoyX3P?;?LOF&gj9@m)lG zE+;uToIEm`W`JxJD-Lu7?zweNgda@E0eBGZ}j+?M0YcE-pa z{ifq;bl_#%SR-2*vzg4h12NkU+~aJu_wMXH=-wUU_T%}vtZ}Qa>c76;bBM2_tZyA; zv8y@g_b+UF?IH5SOFY=pe7rJp$pe0|&$|BdIVQHw*XyFky|6KlU!SqNkbHK0X2#D> zo8}4eJ(01yny%5ezmlIX8z*b^jjYd#kah893;FfQ{^q^1)SH!nI3DSeR}xO zGbLsnv-|UAyVE?$?%n~lTkb1&nXd;U;Gle+$=m z5d5{^M}xl~{L|oH20t4x*uMk#i-X&Ot>ARV; z_#?re4E|#9qrp!GFG#`P5xg{bckrdb2ZBd~uMd8G@NL2G4t{U&J;5If{%r7HWm{ozB_-*w3PyAN4^&mrqye8~EH4_SZTA?v^Vko7M)Wc^nhvi_xqtpCbG z*8hh?*1znK_5bmZ^)EkU{r!imf5jo|A2?+FD-T)!;34Z@b;$Z7hpd0-koB)VWc_On zSkHB~_TA&r?D2g1)S!O`a3X!rfoBB!?R)G7_w{}C(a1uc-^jD%SFMq8N9O58cs_gp zPi@2Zk?_$q`azcW6?|8M`{uE`^lQUEzOQ}Vy#I36JP*nI)tU1SFv@IfJm*LKUw?>x za>@LLL-^Rq5B%fLKfh)lTlhEHQa%6EA$st6pAc){=dpm!Q^AV^ar(x{S-ziHS0C2D z>5%nbd&v5)J7oRWAF}=%4p<-a^Bco=P<=FR-+TjnHxjpRIlwM)`%Qy1zx9yy zZ#!iDw;ZzmTMt?PZHKJ?_CwZx$06&#^N{u5b-;S_-gErB!|OYz@jj66u7CTQ_3<34 z8{e1hxBq`$vwxKT9fz#{FNdsu=OOFA=aBX9I%NI#9`mfaG__fFtvD1_Jj`v(VE?mg7CKXky__Z+bHhYwi$BL}Q~?_y2e-W{k* ze)xI0KZCOUe+$3wF;4{Jy?@Z2Ke}em^5@D&BMljH|NRH7SGMN^$j!zK z&na^0_+ydb`CFZTd>-@5`k$D`Vj>pgXu)?+w+7D(e9yieoDArGQQ&7;GW@yztLOd? z%<{VSC+9JKynkvQlVSX)=P|j)e`X%jW&CI7alhyPbMu%@);~IrZ=J_KIFH$G{m;*1 z{uuv-dE9vX#d+L#{H1x^c-)sg-lg*6{?g z-S-XMBUkP{vee&S&3^Wd``wAoQTMVB#=Mi``v*kM56!lIG<`L4YHri4)_?er^}n{y zdTn4o8`!=bu(^Hu|N0s~oGG@b(NRu@Pul;#Xa7O(h4zg8k9Gee*?T(c?34HZV=?|4 z!}$Enm*#1g^Y?O{(+U04{F#7!8I$ABcEz~kKbi5(^El1ZzIDOx_b12oTNdO0nD5QW zcQ5i&&5$iVUzgvhvgUg`GT7L9c`SeL*u7b2Q@_`n(ns>oMrZPG#z(dJTWt(o4XnAx zT5ojh#qj3UzbW;Z8INGwI3D|1y8d0Eb3!M&5|C@|B>@`e)G{)M$GKp)`-{Em!k@*^ zeJ$wwx$|~8;4}IB@ch{d#7vy*duCvtJ6ue=$NX~7lsTkUmUgHob_pN5Hs*0_>Tk_8 zWSz}tXCCWxt&1_Amf+WNu48`Hwscp%G-oVg(=!4s`|%nheviE6>mIy(WPfu(AHJ?R zJ3qR)=MQ=AB!51OZ##G}_@O`^`TN#@?b))*$1hGxwtaU7?(v=A{-8Q8rcbAs(eeI( zJUZBik3951FxqGC?!aF4&4yC}AJKkm&6ivuHrva#-5KV3HkyyI<=Z%J-?MJ4n|EZ~ z7|RFWZViyw7%yw@UW*~|xFujGpE@Rw4)bbLe8)2+7I^SO>tG{UshwlHpD%buxu23T zV)tRb$RFEw0yNsr?v6LoALG?nbiecdO8i+6H#YJ2Gcbh67ejS{oG15!IvCIJwT#sg zeTWZot=`PDX{-z5{m$`k%i6aEZS~ouU58As{AD*k-1lTJ{g8L_^_MT}_OuU(c>K34)a})vXX2)u6g7dLZR$kbiX*xl+#H-U2z^PO<7D0$sN2?`9LR^g&K{du z*Y~Gi`!1$W7yrl}?>oBjr9@WrKtAi+M*3aXM^}Q~;41?A)GXp3`F96m%*Oib4sdTT zp?;Th9cSr=>h~?-lM{9|cl*_Fd0!P?ITK%TVe^gV?Y8iWg%({7dN1(@jk)u?_n(?M zxw|D0mu0@ha5*QR%^`gU<*@lW8a^b4a${fD$Q$pP3=hp2dzawja;{@KT4Q|feR(Q< z^>r<%U861h$M4@OGQS;=(>Zw+w~pzS6l^mo##33|x&JgH7OdR6$Xt2t-B z@6=j9)7%yGJUY+M4Akt8Medu@ZqFBmb0!XC-4nb#z^nhVU=4DzL7KXx#4pb$gua(0I|P%_`?Q%v*%i{8%zPxAIFo)&^RYIXM^Vj-UAxT52R1- zWPp{fx7vUfK2v~X^u_1!Nb86pygQYU76=!n${k2%xT3$EnE%k-H(S}dz_`s zfDQJO*E(OfmgVa<+lRk7v!*^qS#l?G&i0e{G`H&@=r_Upe}ixZz*s?e5GS#>WNbpcF)==}<_D1(P-}Qrkn*qDUZrwcH z_TcTAZEaW+hfz*z!4ex$_89XiV>GQk_s*)AldE-4kWHs{3ed&i@5Y(Q zAmog*??(3hy+YSdMfCN1 z=VT+!}bLyk#q3x78)Ox87&vkp)F0W!@EdOfh?`Pl{c`~>y7@zmY zGcNBf>D#-!_sp|L9m<_JXw|yD^&@ltE7Hp8HzW_&(zbTfUCEwwLY;4o@`-M>X8$(^ z?+nz_d**gsU5#gMSy#Uz`_vWxy4G`Gj_=jaKe~JOyg7YzBQ-uLL$sDp=svF_?q+Z)~Y|8{+f$Bovf`cQY`A`fD2 z%m=irPqNh!`8QIRk1p!+M)tgWu_vllcC4%A<-Igv4zW+|ShsI^KF!Pj<=`~|yZEhj zM)XT#3{GcKoSqw83CJa93J|@|4?Jt`2(0~l;5`#N&Ialn*zQi^zgWCsZof7yVt3C5 zfBkIr57P0R#6Jbd&qwI7K9=7mP{>Y@qoqjx^$DPqS!GpIkFCL3vPYkcDL`Fodm(e<9`@V&-kBF)<>-r(7@i2k z>sT<_Xzvst{5N7Bc~gMwA*1bu^q;DI@;BOdB;#dlPi0P>Rgadf^qmWi2A`6{mGB2i& z1@4I#&ttq|t`+aD%QgP4(_fwLV|JB4-PPSeE}q7)c~Fb|veq0m_SP!fI=i(X2FtqK z$Q&Lvi%a|C9bg|KW1THxZEc+`ohRQqAI-tiHfP~P&@=t<`u|jP%E_p+&mp?e>EKAv zdGT`J@JF2G?sWmuH~(P32KT3$yEX8$+8Y9Lw}YdBJLg=0ellkmkFj{FhhG#-0g^Xk zI;Q{`%hU0IopjYs@||V&u&d{Rj+22Hv*RlRcCv+E_^t%&_~@#y`Zww;UFv=c5MR_( zZ7`-&O_Qk(t@DR(*457FyD=Vq;^99Z>VNZBo(HqG5zqmB?maJkBu3?-?`mK#8^p;T zHa3oz(noTDk1uZz@Vi&(e^X!$jq=GD$NU8`_0GT_`<#bSH=fHub&Kgb-A6Ky#Onir z{PM}XpL0@bt3QKj|3cum(h1N)>r)GdjI-|o9o}d)D^q={Got6wb{P0 z_)Y<8ZPC+nLx;Ga>LeG>gF$U4>#c#j91ZBK4C9?ZEZEaL-Jd?0_FfF+kUe->C+zKc zV&8`X{On@Gxw-#ib8M%Kk(`Y-EdAJ6aqYdQHs*NHm7sR8+5N%3pG=(Pp5Od@PvAV% z&vaLHvzzuc1|j_RcT6tZ+*1*^vY#z~aJJu?J^V8NjhSbI+NH}ry0w*KO)Sm_VxxXv zkbUIS*LthYj_s2dy3iMA58dKlA3b--z_ZG6cH^V+=Zk~)1^j(9K=$7j^o+7YT=LJ@uKxUTxmQf&Pdw-n3pRGF#+*62D|fkvt?X0V ztqr~-a$5KJ*!}iEtWO7O$T{Ex9rznBW47EM;3advx)*ontp0r{{o26ZQ7)aw14OR) zpa+85j|Yj3e3DC!K7Z_Cvw6C$b$&N}zJmR7q=wkjI(bj}hnYO_9&Rh?>mdmgjv1A%>H8MDvcu@<^l zY{$KL8|#t(u-f_I_|8YQ)4Dor&-bs{GsaTC{!Zy5xf|~^xyHP{l{)S{NdH#_@`J~_&p(PV zIcDSM1uqDU>F=10@}%7g)CYcJ@-GHI6*>GF_iSa1=hcCDc$SDzjK$HI9meE}yE%C~5s-(kdB!6Sj|S+rz#Kc5AWL59{hK+T^sr6K zXFBc)tjl%B^qmSe199k`B+l(uhOwNmnZDZ0=h`ezU{6t9_(t7gb4S1?^#8~9P4Tk2t*esyVnoviZjW}VHgrJjR>Y_9Gc zht+wgtkHM6_mfrrrSAP~9pg3Xc9tq@)O|JcH|q1<`|z&QDc1Yx+)qyJ8-3l+zUmaW z#?HR+ewZ>w{F`(_WBxWX-U*t|-UT;f41IX7S;g(4^iK!;LUL}O{q78V9}GO}JfGbs zc>B!q96A}em&lPD^oGElR6a4QT=VMH_adW)u5Q1^8|a>=y&A^(jEp>T}QL*QI|fDDQ{TX9uc|(O&ao%&*OS z>_Fnc=8ZsXt_FOmjr17zxvLiXjMYbKp|R%EPS9tBmQTlnDM0Le#;W(!_wHujH1DmP z`pYM=VDFd*el@@`(*{$WJ-cIzP+!+uykH58k|L_x}G0F%*wi z1phe9#@;bM8X$FhG_a3d-go~=_~;+`?#P&5Bi}zgfUh=*74VU6{tPw{cJ#a!&>u$YjIl=V83|h!?)zyWg4qwSdoLSBCM;!~A>GuU&Y? z7~5w}t=dD+2ZMV9b@sM^yJXr|9r%pj9*7+t`^nN@_q~a~mzcf%*>^L2v8n!#q>tQ7 z%eB!zd&E&3YCoMH2s{INht-xhWlnxPr>eVi&H&$PM@;&yH(D`WmzKXlqhe(fj!z4Q3(X>T;A z{{QVUr{a7%a2AgSQEN~P@il(+b*!yrj&2M8 zm?Lo;&zP9VyO?MzTYVmO-h6L9<|bQKxlvPytDl@Dm=`{Xf6qdnfBZZZsDYj_=gYkFrhg_l8}J{-Jn|nr%ib4=8C1S| z@c2Bpo0gvCn*Eo9#+F|CmwK1)D{9>P%0G*9Y$Erg0pb(e*?T3Z4(~1hXZUMl`A=jX zfA1&u;Qi_F+B?ebJI>NRd)T3MuJm6Q)COa=bnW%&^Htmrl4T!we(ePAyqL9$5qW&k zx|jJ~AM6?DmO8p#nfyn!iQVll_l~~y=Y#5H3)xz0HzK3YI5s>q>|w(?T{mZb8Q01X z&r!y;jCX@6K;2CN|dC;9OgG7r2wiw8j=S()XK}r{B9*z4zX= z|7zgbHO`UU`-QyM1@*0UTi@u~2+H2(+}S5aa-&c8zliQk<=bBIwO8A`*YAHh%UR}NE4+QzChtaSz`xTdCSq*Q7^_!iEVg|QtAA?F zbLC&f4t|fmxL?WXUUwdUmwW&90ejgkUjHUM%UJc<^3JSh`TF+_?@3?WUlSlUo?G>v z_O!neAJwlh*&ket-<9#m|F*^Wvoq$SSny};PZ^_ezu#*e^?fWq;qzwc4!k1ob1@;^|HHvW_Rol7JC4`gipd?04<4fz9j zaaW^a@P+_w2jkukWUo4h`tW!2KO8kj4`=?%g599`qKkiOn*6?pX`LT!=iRl&&z;*( zp4;PdD^KiJhrcj*BzFJH;L5*BVghyJjMcV}#5VfLUir9tODIdk@R`~~^9D~+3<`s%)!7>NOu@f3 zx9ZYZy=m2vRy}CX&aE67i?Q}4b9-TKUp}|)UF*)b_RhKWOf%iP{Sx1Pt=y+>$2e{SC~w-3$j7tQT%TDGc1 zBp!UbHMkt`Pi@GZGkGL96Ns0Z0=8_;eS75KnSq)SckAi|uRKiwdLSTAOyvEM0MCWM zK03QLrH{y^V+s&^j|SHQdZz&4n{+~Wj;wlnHnBmT>DmbXYOcGtrgd++E6EoZwYL-0 z4)R|YAUy6@GQ_?*$gYijmOnjnh%fl)MEt)N^vu&E4rH7Q@cl?^BhQ$wZ=J{HrT~#C z26FiCHlHZ3`~GqEjdzOY9(`T^>-h)V>7D|_H~L={{QJmMcSlnU>vAtn=vVDE*Ym+H zac4K**(}E~NGxkRG(~bmq#b*i-ztqe|z*c+Y z!ya)Ev)y0{Q2EKCV|jkuRSjvQo; z?Cqd+!6xzLCx52^(YH>Ad3q7q_9L>5`H9G*hd%MFjdYDN>??0=nlgvVx2#Qk=K^;8 zOzsx>xijEz@0fH~HeF2nA2;`M_|f#)u@j)X1G-21-fSURlt*jiA$F7XpJrM191r-2 ztk)0Y`c*rBe6aK8tk+KG@IN0QliV?e`2X(%_(y-1aoh84@873n*B_bj;<;tBx$l_U zt{>ETj>^Z;!1-Wr^Woi5tnUv_2VyUV&j{?n+h?Zz*70ow$h|Aa-K%fUWApr@b9;AM z^3>whx$PNpFYs#$(6sv8i)nLEx#~xZ`fn<|HvOM(_^h8NHuYV|dxA3{cjD|`>mAcN z5Z9fcIrsh}$5Wsdnsa#|1K)l!$X5eXuo>7(_pL$StJDp0AN~1NZ*LDf?A2QPzQEqv zJ+{3U$31G}rtD@P|2_ZpM|f@-e{gP(rmZjT_9;N@X8*YEUbsE5-#z;Lpl9mg^u=>K zo7D7HV6VP;&nM$4K-22;@pja=pPnn(bC90KWGTC2e!3UQM`NtFRx^*=%6D}`rt`}W zXLo!a%cuJA^9tWkpO5zH0~u3*rq$=;Ex*O{=|S^A2i$1f_@g#^zptwa?-qxF9eDUu zTjUq`KLu!7eLmjuflm8wgui*9?-jv+NwD3!WK02aM#$yYnc(c)PqR83>_KwaJo5j1 zV9$}@jy%&g($XXEVocxvvyZ+ktz^GgCp5}-9_18OpSEX?Jy)^2#^1u~S_) zChCZdzU*2T6Ke{1-P$X&)N{5jcH%-8+r;WrK;IZ&JoT@>;pg9T1N{@hivl)~XZ*$) z_S4Nbef;G0Ziri}^F+6NAnWc;AaBXLlR5EOx5qsGI|KXg2-G1W%iLi+>P~+9Zpa>I zwmQj^Cw?6bP;JI@F5v5T4DV1&TSorT4>mSe>8@<=^zC>8vg}9ZfQ{RMdOaCbR@a|D%#X3k^vdUB zIwAbd0r0iH*XPcYSAE(kK-21T&&G}P*~wn^RIhmu>#v#n^onm=YrirO%f?*WGb%^w z-uHYv0si{~B)9gl%RF111^E(BdemB5^+R@R+X!pN>J$$j#R2&rH7!FFU_ET#Y%k38!1NSH6CC3gyt zIz=~9llAHDy)94hiS2wLU!EF2^HYG-w7MZjtne&rQjFA_)?RTFFEws&=d@&u@~4cE zz0SGV*ekYTjn{ZHu&#zK1<22KM}m&0^wH^nyn}p_2R^AeEgf`MU-fssHpqMR9i*S{ zXM(c<8$qmJKljCfUacAsvwH)zkLY7VbL@G&6Oe(Qyhj5>&b7e&7+d4kllUR~$swCg zabiRL+)kezV|{y;S2ta#wXK~@gsMv%(T&viMwrzfxl@2Xp87t!w{_){8U?Z7+Y}&o z?D2pu^LUoEtiHrWi$^;JXj*;l%`NX&cL3SqCYJ6{tvWanh&Ng4O)jjtKU;6>_{Fg` zw2?ltPtN42erUfskXw7`Z0y^G+4d~js$|DODQ z%ssh>>16|5`ru5{egXc#u|BkS9sJD**k$X??-%N zm-^cb*wOx!K4M4b#K>KYyifT1>$lRfNnGu3t!epqJRsY8>-t#w?7(9W+tjhzRC~+& zgibYaDM0KY3tw#`!<|lFbxr9bb>og^2c7n;YsXmgTYTu1H+$9HGZMUuY3Y~(q`t+G zJ;f-?-ZR130N=>VZtHv>?~?j@(6dk6QFC%SefFX;|M@kdCw*_>Su+K6kNYlX%s06s zgS_TdI|ay|BY~KF(mpZC(n`*E>x3%1EgipUwerL@XRzPh%hN#+GwWln9$oFQT z-P%)UJ3-?vUw!VHb7!*4S@8_%9Xi&)=05(?!M8E?zjsaS)i|5RJ9o+$HSco3o}hvd<%}M8JYUB7dopJ8x_L1oYd7c~wv6(9XUcbT;(9K)De!kHvzOf$0_$uv?p>uN z8=NsVPXU@%pHKYrfzFB7?Ezc(CXSUshk5>ziMQuheAw!pU@PGF6rj@qIY)wZHuH_l zbvD{7?rQtyC^Qy>Gr`$F4Uwx(K0UxoPHRjY*hYu8xn#TXW^g_rQ~zROyO9>ZxRM2O zbTYU#*a_+{9x(y+%Mbk}|E0{KF>Y+IhkSO5jl7n(cS*-n){q$RgYWo(49|i5%IL>V zq!kA|jguJN6tK_yc&;yG3}m!Fwztjm;zBpsWHoOOrq5?N5SNkftr^p&9@yFVkbgYz zy-{U4`<40r^vRPG`sDLUP#f<^-x_k~%S+=mzT@18-=nXUZ|+9?{-N;weDqs>&|`be zD*onngK3@<_r`}0w*+{^Ssoqx0_GqrQ=KdV#&i1GYAv``PM@O#!OiOIwW*TlMAO znF*r%=zBRHa*vIE=(C-jUm37fEtqGMd9it4Fa>B@eeSK}c_dIP`oOOff!K)yS&e1m z#~h%KKl)b!{O0Nl{p6hr$YZM-0WvoNq;Cz`@AqgBnY~xE);xdF-GRBQ0X=wk1OC#v zJ@+rA-3;yu_=1+Y*&*J)a810~we*|)eC=KA4m%8N#e?iOX0w`N@6OydR$^*x3Q%pX zE$o7&Eo8!r13K1$ujcu!zPzuv=fzAct#w}Cyz!lZ`eLhG*uw^OGX;p9&9%K#fbft# z1!!7*KF)8*7d|&8?iD)Fa_xBL$mgrpdh0+u?Ui>i@3|cBFY!hEcuQa`pDIj^jX1X$ zf7)U^^0u$u^vM;wp9nnX_5GXW=68Z?^PF{g*$yrS|J_`RC(~Eccd4gUo!gzN z)~%!G2jg7poP99n2Jh==e|0sMwh%!_Vc~= z)K9gr9guZTz#jU^Vz=1r2IkoI?0}tZ>nC3FrvOc>&%HBdp5N?7;yeXvQ2w?2p_@P7 z5Y!*K_;fKqY#4p)9`6WB z&nEI3gSHnkXWiPRK>f&>c%jOqpA7r>*>>E&P6l46%#ORi?S5xZoWzX3upgfsoC(eb zVgcgZ`Vu>IIS_ZU_}cjH&T~^*Hfj;Oj|QHLzbHX*Ka9^mYt_q6P`?k&eY#p_Y@uH) zN8RS}nX_J-KQnzl1HUA=J-9Vs8$SG=JI@HjFs7|qIiUY&a4k@W8^QAe`LoB`*4)}l zpIR3aay{F2<}rK32A}mQK*r5C-4}x6f%+Hw`vbAF=6jv`)}PJoXS>++&K0}r;^!0~ zy!KxTs_TyQ?L`j+`_(2scC(3$DL`x!movfHzn#GU#Ckx)OA} zF^|;=KTiexY>lRS{hdqyWMEHy(TB@HZU46PQRlRLeOsV@=r8XZ(?=ukm=AtBkFXQi zXTN!S@an5a_m{PY138!iG_5}Ocze%Wn&<3oF6l6)=jK4YlD`p1o8q^2t^;^qMI>~XawgUW9faH%1ckZ(y^kP~vrT{tbhz#?+Kjf8t z@*&rJG`AVBO&sa3y?i9&Qh==CYrC8NgD z0lWC8-_! z%*@-XwTC{sI;ZV@L(bot!Jn4|uMKvC4+q~7SpR5nB;Zpq+9giThj=_A;P1%aIP#Nz zd-adceRGY0cC14=;T9XI5mbK&l{>2IWy8HV~*3JfM6?*50ja<32_`-KFq~l7!=jKxT@?hQX zFSHKHCUf0=p^j?@pT(apIq&_@826n^jL90o4`crR_c2P0#-9<`zz_A<_?Z*4DL|(K zHG;3U@?S075xCpNwJBq?+$ToeS6eR+bCqT9-2q)!gXMkS_g%5OD_|R%YhJqigcl zJiRA;S^ik}y6avN(CJ)kZ$5r+(J!90rRPTIrT|T=&nLIt;|^s1tq0hTXSDyf9$-Iv zrU3Q67C-rDU6AExLhlUPuMgtZN(Z~t(@x-CQOo=qpT*|IeYELI*4RYv$n*JYc-#Y* z1GY8q`p4%nyVV;z{*M)K0dLTJ!J6J`8Rjl+&bUZ=(48o{@V)F z)Vdhb^U8p{=LU}kNZi!`nPlBJkFTXwPxzg+V=;E!`DZsi_R%5M_Q(sn*s`?W`skxL zYz6Ev?|#sV-)_)a7IU(iV?0}def%Kj{(wEN4agzma`66uZ+8XkB#RyPJRGpqxVFkQ z-R8w~E1+i?+uAwC^QQ0}7SHEK@w#|s>&kv{9PKn-#cqXd^k1F%L9GpwCpm+{zA^Sg4%N>edmI&`aOdq zzwKa zU*0KwgjdZ}r#{$&_gugZf7g3!UmZ5CYROu?t25dtV}l74(~5wCSJcJj*~yW zYw=-}e=TFOVYKb<54MSE<)*ue5qq6Kb&P5kIqbTT7>NNppML{(*4NR-pBQZ1FMjrk zk9BqIJ2dqt7sahZzjJM^y(T~p1muaSpBu&bWNJILmw4E^?cCbg?ZUy2%CRu&v;IS`Zx_*y~sr-pGK6Qpi zF17-4mUm)8wyJG=?d!9Hz1M=?#q^vC@FDp=6Yx zw)Pygoic~`(z&*ig^;|O6Po23+0(GbM`I+Om*ar%aP^%zHj330ATfABVlbtZH!XU1 zFa^z}7V(o#KJtAE(6st|Jnx1#%G>;iHOOPn*-rZ6`)GjJdo5^8o!2Qq)9Q2Y49BJG zcgga8CG*nEi|_V;KO4crLC>K$iM?}<&mFcEsE_7ct>J6kux)%lePK4T8UGX@=Mh~F zP6uS$*BtSQOg_q2eYM`Zc1j;jtIsF5-NW|HHGG|?``j$!YuDVBm*zEm?#bhUc&TOQ z;o)G67rAWKs_8LiWOOf^$iOEyaxNa@U8v@^0`cydyFdNY0a?yHUH0`ZB-gX}_Au-h z_vL*U_SJne=JBS?(L=Y~@WuM>+@I1SK3odeGxD>m`BKx}JEf1N)#u(Gx{&kI8sP8A z;7D*LI2)9YuIB7t4>`Lf^E<&(*H!*O9py0U_1NhlHa1aQ41#mwXqqDe0*h-voX$- zvETkIt=4`b?aSx>LBF@RtPAx8&Jf!gYj;}TyTtx-pf>o1dIww``kmtgK7LqtCy~#; z<3Z(V$yAf#hSxs2rU1zyzGFf2Kb}GP1aiK6?mG)&MvlFeYrfAOI^9Vh37!|=V`F`; zFL!5-P3|ds8XvN1D_;8W@Oe8RuXT1VTK zJ!`#t^~uDe2HH;PBV)J}h{1(G9zCn{kyztlPw!K<9GU0E;~+c9b-%mApB~7C7?a8V zhlBA9kZpWtfM+Y<*AyVOv8D0C)911FLQo%WN?&~Gy+2TM_KAWy<>E_!yzF&8JfGNgDiAj$k8-4L zyQVg-1?05$chkQVAbF;HjJx@Rawx9fk{sGc7XR2`zH;>0*&J8i@yxMZY#KAQdou7d z{!VZ)*p5@?`)3f_>GQMalkDyj6Lyf>`&r!a)5C8$-3stlj`xj?z~1st=_6zLCXWwO zU@sjH2R(1rwgUDvkM?c`R|2(tHBeW4`^sw*R(68P00(oqz z4Sf#rrFpS_ci^n@kL>O{H;?@t>}1>-h|f;oE@jgzgOhWgtk(thq2Hf<=E#$m%1Cz= z3wNh^wIDWl`6@=@1#JC_fPMUZXzp7R59@F#K(JwZ$M?Bam_WESA=j{Qq=4WR_hJDWq#N67kx!*PMJ{mk0po;-sa`Ds#eg3&; zwC0ZobWcI$S2w-Z&EuB?=ZK&DutpY}$U?m%@at>UZuQ6wa^}dTdpkf&9b(gcx2-sy z%%fKE&|yD&F zheF+~yBlxGJbznPW1o*=Sv~9&e`oAmfc#z5?y9Z8-rYdHrU0plf`2UCFX@M{VXnI|KAN-GaqWd77Je<@?K)CarH1ZM+#fPQC&Zn?fE5VH>l z=5^1bP^iSM3= z`g|2vagy69K>V}U8DR%s>Fd3xwaz|$JaR(TRv>rg8oOma=X5%r|boE(XJNbj; zjeXx0)UNtiTa5A3|5zZVY(*VkN`E5|19zA{+4N~24G=lwv*u+P^N+puF4yJPoVBgF ze~{cG;o;BAgPw&^Zr9Ieogeh_OUqy9fiLDpJC}AX$8QNgKkg0WU#@>yzy>w+NRSd; z{rLtxWUG;s`}JqW-^kw+C68op1@`iVJ!CI)cp`I1JjkJwYuz_b!neGi=Q)Md?BEh?B#l&2iBe&Yy__ePVaMP-IO)**$DJZ0h(5y zkGH2YcHZp~3s}cb-V~tjVZ)i&U~GSDJKd-K>C{~9*v`0qdF~k3|Bk23A+q>~UbELc zp(V5WEVGsDy%>Gc$`^MQpO#?n*#lxW#(fGeqD%hKQrCWZ=%wr2$EoW~_MQ#Y>Cu25 zP@n4mc)(}&sBx|50sEJCw0&c2`19J}-r%9&OM|ZoP|Ur4C;YkLxklH{yxz0Ek#Tjg zseQipjA+U1xzdhzOwW{a{H_3vHmv*eAnR=4Hyhjy9}9MarQT82d*aVQ`d^>@LV(p94?zi{FS-01j8TY<;-uo#B?6nX4d^YZV z$-MWa2kdnp*sCtay%*-aFFRnbv)7!eH8QRS&anDe-Vy5NOmH@^7sODlF3%q7+x}ARgaTl`J9==p(x+^=? zI-;B1{5v*}#exp9P6Zo5ePS2h`+}DR#`-Ur`}Wl*Em`cSPyb}_iLW~W``Do+tIr8G zlPB-|(dTc{eEqEd@F35A@}>YytIxgX(;ews=L>moA?SR%tJurWWDpWpaniac8uP|m zeE8)|JvP|EZgTArQ!!{>^rrwd?u{+mjs*MZ6ECqO>wF*&?DKE&9Zf6V_L@@*Vpbc; zUH51C{I!q0n?Y^Cj~?A?R%^GWj~_10^QY6+Zn<+W+Iu;WFR|b=yLW=_r*jH6gVzLT zl*yli^wmx=0P^YL?{+W+Xj*-)Kbw}^0qkQh+nOJCktgQl_1!}KHO_227aR%3*jhgx zv}VOcjrjgc>;6?69oO!i%(=V8jU8%~Uu5B#0(3fHUt>Tf8|cBWPlo5DdNAgnK3@Ld zbb)xh2 zl!w+if5vBTb3tz7Di-FAtM_#Jn*kD=+g823xY19(_k=rx-ZSRS`Mr``((VM~oU^bU zjQdVy%-&Z7FTZ*3Sxep&pa+8H^``WJJ$Url-gu}9KCsRCW z6I+3}v$ZyB8_Pap)N1Y5o(SksFV)K@aGuEA4#*J$e9LzfHUN2}EzXhssP_yxYydGl z9!voeced0HF#>YyhZY_T)E}Gdd1sJtevFLjl-H5Z{6j%`t_}TkpYYrr>*HkB6a2HAn{;<=aXh zpK)<1eKf5;AHP$tWlTr0j*qNc1GVYjq($uJ)A``089$JCA4#7Ny_eVd&fY5l8GK#V zw6)PEwN2Mnz!rHHAN9l>=k1jdbTKWyDM0R)-GFcGpii9nAxC)4O#wO`kiRacWYJmM z*7?=*fv39U<&of~p!sE|ygk*NXUp|JFOpaGs0IGLEI1yRH>Okl8(#|0wEBEJ_cvNY zH!9D2*yu0a^?kI@{6ThkPV=kr5~phcJBoEa$sIm9cfY8i>R<9#j&`}WtOGR->iX>5 zmt%V`2kJ=6PV;KNHDK+r0Ey2=z&CMnrai~-?3as|W^F4t8nl-AbWm>TX&mb3Iv?4B z_~lF>cJqTjH|p1Bc=Jm)@};Se;}aCU9z9Q^0pPM^OuZuez@=HXE%T4otzT^ zIqn!aWyg57_q)^Vcds??|0UmjK9YcEYLz?d>K6~0bbNQ#wbrf#+krf=Nnh^ztTi@& z&^^TF+FCorPVE?L#bYOE9m?4hApVL8`{L1>~&TpXvEKwCAkuL(hs&1UzFtHA#`P@y~*t zk;ZSdl}_>KGb-JcFJq3Z;UPoK$Rqz6KfDhIbZ&3%)z*ph)tTBF<3`S-0kU5nMtjV$ zlddTk^Dn|FF<%_e+HoE(q zVB?WMEZwc%)5L0=Yka57BQ{u9OZ**UdMsn|>HA>7XK_br`*ndm?tA^#W4bFF@UVe= z#IEIBW99qFgTT&%*2lH5UXPVK81dug;H`lii3?lQ)*I&WPTKneb?L6U7>MaI&h}ml z@NERh`w<((gZxM4zSxa=QpVT6D9v+|j+C$?yDc&b)nh24W-*WZoT&e7|}PAHA9WSnq)MEXK|>8Cv?-zdOqj z_v&Mx9DO7}cLbf|!})n^ZY%r6u5l34>i4cpCfluV2Yr9OI``RgB@m0Q{P6KAElcwhQcfR?eahkbP5W23R0w$_Z-{lAgq%*cJf*eWXTJ=8*BIXsX(pW9z1LAv(395 zx$2ai;>P~V0r}?nwKezmlgn;#Jraz*m}ejR#YSAjZ1jaLa^26Hdow>ie=FHuQ4|32u zVf2BmqwQanv3!Uldqx`$v(0ySVqAaHeM0SgZN_AdInsY;kgeChuNrffrRzUK)+V`C zx6S92J`x8tBOg;Bw&hLtN%yQXOD6v31)IU6!A77?(aVC90eyJL6dy4}FAT&*tKPJD zF3)}PPXyY^T(`&C9W!5=)t@uV&GOmsC7J8J#qKMC_NBpg(Aw*GH*?NN<%mB%_K6kJ znx6txU#8XQai5I&b}0~Ru@$T4i;u?i6=a!rZ@E*>2VyB!-4C#;Dh~ReDI*p3&eu2?eoW&4*95##z4#fPh-jM#&adouRUn#FL?)n9bFeQV=|ULvPInQOx!P~71Jp| z>_SW3-ro-bU0v_~F>YeB5zzZ-`{=Fz_|O}I*6et5peuKCT36u`ws(!GI0oa!(*$`i}-kZt>q8$e;D*c$_DrH9+^(V3ebFzA&&?z8(t7 z&&Njs@_LVu;Vkj*@{B1h5}zsHvldOO&;9Sd`?7vpKsVXW3Vp`kle<7)+}L8B-t9n) zb^^Yzhi>!wmjWcFY?1FzPrlW{c)t1GeA7o4pUCulalYNH^lJBmcv%x`I{Nn%u$jGg z1oEW@#j!Ucjr&+}uk2$uFd1X5^&f4)j zkLTC3g00)Zcz)G`c(CoTv%5Sm4`+`UuRAYnQ4j2!0`bwJY4!Q!c&SrxZrG&HuJPP> zXE85+%k#n(^L*656d-vKH}!H?0{Q>dv+{!YCtmBo_t(Vt{mzQG^?W})eK9=jysTS4 zlYM7{=8{}cm#s(7mUXol^PX^aZpv6K_&Em2ch54JR|0uvNB@2yvYln1b0?SrG_5|L zTpMf^pJ`2PsNed;9(t=M{GS5kp1Bn8kIXmE{V6S)R-b$O`g}8`Mm{4xPHCOn?p=3= z$F=sWulLnXWc2P}Bit2;2a?Mv@Ep;%KHBr1jJJX*U<04{j|VEx8HdvW*~`3LJ|u7a zzOsf#-R+mpV_7>WpVq}?T|TWfpZs2zLp9PI@^g%F^FOvXg=Y$o*mP|&5#r<3A-9d? zGUoX19{5Jxa!|Qrdn3B<8D#FK+xa1PGnfMU#NpvU-89c?9oRO`pU&8xw+7Bu&y@4Z z#_d2H?@N&w)7SA<`a40)Ty!Q6pkIud;r@MM5Hs+^VI}+R^zQ?K^T!Rx5ik5lgm_bvc*0A*1gLXu-7o!arZFB{_sTfdSKIC|XWseV2>9bp)z&{_dgNAotX&AUgSfc5 z53PA0^Q^|}nZ@@z1Mi>WWjy{}8{$Uq{Q(=;crlO%_L0+jhn)`v_}GcmN$&!&!Gpw8 z+~mGG`NCel;N1$?tM1ua&^ZNYT7B-t!MPyMUBhShARBKBUKp^swXgNPh&tN}*rjGp z1l70HJ!K8CvuE(B=u($k!8%=HbR@VIhz&nlgXV$XVska1_sTqO{N!~z5LbM_PxZjh zo{RJ8laK$ia+k43oYcO!A-c$E%^pvG9qe1qXKJ*kEl8!L|WJeJDi z+nT*zC-GHm>{LRxHJbPY(yXfjRpx&zRC8 zw*9g&PifVi7EP5VeasB_7U$?*c zWpitak8EX=ySr!17$1M=#?$ji_ik`0Ky6Q_Pp`9a-2)+g>qxRxrl9cZ|5RNB-Bvot|qm4_lB}SGRmtj~uCQ zJ~ywQC_VfT$Cm_+Tj#_BS>F!2-dx-^%&ATL)T&y#8pvzEd)rN)4`QXg6v)F}fmonv z^|_Y^Yhs~3#8JPo>0OekRnA(gtq1e;uwQ*F?|Nta%?a?uw0xNY^zqjE`RpC>+{Kt3 z*7@S>Ha6Y?*eAAPbuwVqH3->* zjOAP{YM&pd<#WMC@cp^7`Njt8*7&J!?my)B?bBR8%j8t zk^QwxuHO;|#AbZgVgH%nY``wG)Z3aHTYATF`-kO$9dF&I=GN(UMwXy^IcJR6u0BS; z@83tC`XuXvfivU$-4@u}SUfWK-8b8T-0lWyU<#1>Q(Iy=1<#n7=@ zYsUQFPEC==KIdV4k6{~Fa~_=E2jU}}*y!0x23t=A&d|7@T;MbQ$|C1&k<5!hkMgeKob;d;DhBt^{IsDL`$-M6A@r=SA%%sFq? z`TOiZp4rm5OX(x|QhSJRFIx51`+Z_qBZs~9pWXa1$M0oZzs5L_(fZZL!?(&31J7%5 zI3A4WMZ6okYw7btejBHw=>uCvjPYXcpGmyv6q|KtnGEkY?jn5bQBQXU{jP{D_Jdfb zw65oxO!Kb`ns0XAAF!EBb!e@;edoPpUU!D&aW|0HDL~~Xdt)At>r>{?m}52G7_kG` zN7fV|`pC3q?~!2Kb9=`4#YT>ty()V@;-vj*NgMFQ+ukzoK zJ{s2>hlBQc=S8)vXWAY%eOAD4G3+_F)*3MvGoP^kXvW6_`^DRtsr=^j*A6*#FI1oV zMGWYZ>+yV$k(8}ujXI~yp=tH`csrhb^+HE^*d-6u^;Bi!7lSE4m3Jh4d9lvMo;7|o zCVUXnJ};;Ak-Pa+VBaUwF1{b8@38gW-J@Onf2whtvImKmSoN%_85r+=ee&6_Z5`ng zPv^_II3Kh|pFKZMcQfY>X*{b3UwL~5JpFF=e z%>O$BHt}El$Nd>zzi;qt2X6@)M>aacjU&4&r?yodUJ!%w>&pw7wLjhKF>ZX9HM4F^ zmiaLj*D^jxuK3#rw+6Qba^ZQ(F1}bh8+e|4K?;fO%by4Bs~&RNcb3Go<6}eL`%CBX zJ!3I;ca7_t!#Le1)Ze;ztefLY<0BW1k3Je}dfonUj;xNKicI^~fvj zmOyMJgAKkDpu4__r9I}vdPxIfe8xO(9LF4GX_ZGdy)`%%I45@p-es=_o=Ka5xSKP^ z&xQ-Zb}$9x-W8}}bbru1s3$hr^ZtM>p5OeTi`{hf-L-c>Yiuc-yeU9ELv873+}O=N z`JzW%(L+Aj#?B(2N84+6rdRy6z5X^{e!jPttgeXx5zj%uKa?Sm9KClLFOAV_X?*~s0=-Uoz^O5w| z*^C#lag2BKX#V;0y8S!By@6OEdA2_0Tb}W~B_NZ1XM(eH-&iimI~TC+r-n1w_fD}K z_wnzu1M|B9z4VCZI40YfRNZRuAkcNt`nbk!@!&tbsCvAQ9|U?1S|8WQt)5MTkobzL z*4gzOYwpZH7`PYc5zoW&E{4|v`Pm4NoG;_;TpSi}weX3wA>yvzP5OKm4>@iPdLOUP z?lI>d;kyu=48(zd^5#zM^S*PLTIqSQPRQQgG3}GR9jLvYZ+5iy_^$qp&j)mgr@xQa zStQT?WnS>`rTXNQuA{-VfQ|Y{UQq3?top&W%>e&sTWf$#`{}Yqj##1U67!3}J92S4 z10N0W>;y=B$ZVX)y0LDJ-_?C??l1q}qf?o$pLC8gGhFFm$FDqGJX9$;2#Zlka@n^`-O|Wm7ArNzMn|@^0`kp>fSFJ_HJdK z-fICn?IYiuF}YiFE7pilqm4hgkB#pf^zd)AaoqpYi~Zui5g_%)4kW*=O*PIAHEzzi zyEVX1Hd~!Jez*sw0I4gvJr;DI+O>~Ndi#COls=kPpO5b)n@slLZJg-e3Dk=@ad!^Q zv2zO0wEBEp-nEPm(s@(X&je?KBY`n{*`Uu4I>)pA2NP4iSQGcB2ln#ceC63+d7J68 zg=BRU9yX{ezQ}`n@mP@3 zxc*M7MlJ_q-FPqC38nyfj^ddDG_5`#f2Q)kzIu1%AO7(U$0J7UMDA5*{oy%3<99_% zU#^9(bh3={k5mOPjxR_ z4%^Glk5^Bh6|K$NBFnoHJH=@ykh8{DebV<|xw{j1JQn9VJOCNRppGRBI7j<-9 z;QWb;+>>R0dq(l$VF$WCa7J&;gdB{|C|-Non$57cS2b97oT z-p?+3t7e?F69JiYly6=7hz*@ih|Tol6I;5v08QdMo^5npxCY#}wNB@xXEr;!0F{0E zZ1Xut-P0onI|C%Xl{KXxrn zfO9>bFI&2-p|%d>;OfA08L10(vI;%$6)dgr= zcjATkq6XMZo;sW4kJ#CxT}!S!Rz3R;z@8f45x?)3{VmQOjcbkHa=;(8w$_w{&A1@8YEi5f19$iC!1`AN$lYyyTOfwN zkh`a~-MTgY`FB;vYwg}EM(b*b4Q$k^F}6B$#_fBcbM&eFt}ywY$;f@v%K!DzdTZPB zhc!N+ii?=>8&%Bg8|%Jc4cVXk*Q0(vD0`op%bMKr`$(pGA0Mt0DjTZhzt336+|_~4 zKS->M*|svY=5_=(MPHW|b^V`5>q{*0IlEf-BR|P;7Q}Bcs5|eR^b!4SKJ2%r3sBep zxvIyzI6ZjS^R-j#DLyqPhjMA(_?)q6`>-~X*1xf-RTJ*9bpc}E%lqEZSem;fD8KFD zH`^=D)jqc8yI1c&K6lIFaWI>8e#)=2#+EKXUH|85jM?cN7Jun4o@(Wz<*ocAg#G70 zy68AFm}^@11zWoST^EQao#MwIe%3n}8DfHmoDIR4$9o`q?Q8E0dX5LO@XQ1U1NR}@ z#l8zr*Z+BRjh>pTw)_`gaq;}v9FXs9JuQJzW9;h!bp2}6x9YcY!-3J@&9cjgM`t98R;b{3T?tGw3xvbnk+ z$eMPqv^jm|8ve98#0#}LN>|sf96d*^{I8!Pe_9R5QQ6MFilKg+FLtziVzVx2b$>&2 z<54^FfqF!(j+un;DE=8kE{{=NHleA{Sz<1pSH*`@z)@&z3Aa;?t1N6^RKJ)`{> zWXvw>_J7d?c^??$70)f0_I&H7Zoi%H?#WixpZ&|R_P%5^z9M6LHVm@FWpUtXPY``#%E-{bbn69;#T|V{f>es|6{PqE=p_KaisKN_7Ej&z(h8h`NP$J+Eeqw!lu;~yW5UpX2-do*6jxXxAG z3u^Ia=G8wW@_HKYG+wHR%1-o{EP!7}s6mUNCls zwSK2byD+q#E5@EJ+6#tu%h1wm{=%VUoAFl#>_08=IqAc(aqru2zx}@lkAKJQw|`lF zQNbN207jUO@^Zy1gL=^t0^epF=A{pdlqoWCt=rMvP~d|x^6 ziSL8+gGzkuIjH-G4;!;iw(srQ*gPY#$yBe`_aw!`x7pxBA6nga^|0o1rZu*`F>7?% z!xrr|LG3-1_4W)sDC0A-UNJnY;r;v(?@fPyRQBTrK03dAn3s3@s&)?!JbZmncv`)4 zjV#|umHmJA!PPtX*Td+GfA@U(t?=>5lz ze=}oyzHZq2^=V7*^Rret!t;y~5BXO%JkAKd2LxnTzt>3LKmX0D%<}pD8MCj>QM#x6 z@jH%vHqYc-wd?mA&Y3!@Gg|syJ;*ag7i6sNZi$ky9(QK({X~8_ov&n?lk0ED9Qnrb z^Mx6=vHYFz-*oEVGjLbydrq)H-#tyYIb*eEOwRtHPyW84Pw(ELPrtjQwb?!6 z|9vaZ3qc$AAImRm8E+4)BQ>hs7MOc!c<8^WnY&?_tMiC&^Z!0Jr+@nAN9%4}%dZ*M z%1^q~S8Y63Ze&{iy7ld-+@|HB`y z>et6xDBE9=IlRuxq419D`uB%AxouP@{_h^z9~jyn z8QLFDTlW9#dspR%zdaQf?@zz+2cK^5S^socpWc~uwsuzqOOiE({ysJeAenZIIauNqqK zKIVNc(5?*ajYIp)p?&tye$UXpX=s0DXx}olzdf|?Ov^vMs+otxzrP69|IX28<@$&k?2YzR9b|mxFzjt&$naYJJBr zuKR@#>zg@orpx@+#JA$ZPM;gevG(rw9F0ZmL)BK@brsihv!`TeFBrzpAKKRs?VHom zA*Np+{dk`cXfGeyiredkaeFUTjPZk7_DmHw#IAP-4-Q_CNj3Xk4uyR7!NC^zz7gyl z&mC`^E&X$y?4^9d{`Rz=EfCML<;$CX&8^iQ82GDQi}z&KBDQ}gx;m}A$xpo-cvq79 zYXWBmnKM2ukRP>c&xHZn6I>K*3TA_rXLH7=m3#i`)G>4JK{VE-Z0K4a&|A6|(r1%% zjB1_@>w@K=Y$+KvCTC^f(Ld1ix1_%{Fpmxf-Vqn(R?lRYK04949pU}<)APJY%U0*; z#z5TJS+=sVbhA@D_5^$sFK4{Q@_>gd{u=vy?_Bc5{e4B?9m!oGR{W^>bdTidy7a}0 z9b=yBGe@r6lI!jym%fr^pYN#6uLS1>=8P{5#4Z2zwp+7zY+LQ&pL_N6!2N_?m!Ca| z_0GV3wG^a`1EkS`O6AmO%Z?1}gzu z*{H`>H_4h*&9@Cuu~1}3Az9+2jo<2XVM3JY$1>A zL&2_qZm>@bk(jo1^`W7zuF56sRHIeJj=!W0-e?Z4-sw&c6j!Ox`tl^(vd`LDIs zPc}QB&QU#29xt+&1 z{+*>v_4Tt&C-nB*Z8xQLX7Iaj5ZlBIA78#bdIepSZe_R=t^3-?TG z({r;m<ug3STnk(kz5-;}=nt-Trc-}ka*UqA*~;>|Ys z+a1s$7VaKIx4DulHABDV?v7TT*l}CH z?xzLj#Gq^~``FY%ZrkzQ(N_=bQDc_{-a*7seC4)XH#avxzUo|d>7%aybG4@NeO^FT z7a+B6UhQlQ)&=tKJprG0nuiALF;40CpQY%T4V)jbB&W_49=v4E2V}C1?)`y1V(rZ0 zGY?%rW?O5{t$Eb-f3DV_Jhe8i&sc2OPXD$5?aLkN9PA9(ycDp7t$4ctb^V{Kvh649 z)?tp#bnOUUo<+~f#lU`RY%G7;I8;2u7axD|;i?pbI-Y)Z~>;F7zL)mgs<~IiN$!9TH4)`}S^sQ|Pwgzej9bRqvIyT3? zZkV&*Uh`^M9`*MI;&)4s6y8qvVo-6jrta9G?E=*Gf3Dg!o4)s+??@okz@~s~tuddqI;-GA=v3!ex`r@N!llx+0ur83JHXrth zo%pH|{(I(CJ*e%apbM;5e$qV>tFo!)ibt$p5&g~y+q(c=A9yc3Y!G4>vX4E84SW-W zbAsY!Kk~VTZJUGH;Ou}8=LO`kl?=9zc{A19elYE`g3^0_`eH#JIj05UfsYLG>6{Pf z;8W>y_QkvXyjXkKu`wV|E)conI%DhGg5L@LG7yX>CICMYye0Txuwynq`wqS*cysW< z;88K=dBH1!*9X58{9bUMDBK$C4z3Dr3BEJ<@!;JFq*(6__^=Rc3L>s2^H4U<#N*dy z{9S<@XpLVSpgn;+e`oStXYq!N-w}}Exsj#*{C!tCRcpnghU5Y1$JPG(F*08nezC20 z7q*&z)r5JuBD?Ch?YsYW1qn_6%qiY3W7OXN)^-Qt!LGSLJ->R2?cK2cpC;JE*4Ip# z|IbtAUprx*O=4TVb?Kwl$F84Qy#tEReNg=y(?8J|*w+Q9p2zy**u>Pnmd;DNAy7wZ z#CoTTvK;58yfx3HOun^eK zK6m$GAZF}hA6b_K<}L`>j;z}UVu6QDa-8jL!D+!q^4W$Q^XCWT<0IGJlB1==yg1AT zY$gMluYKBj23;BF*sc9cA?kX&*<7}`1H=Z*RbN}rsK=y#UhL#s`CWdM|8lxBKnuZh zgKL7%&A$A1%=_9a6WijaLu~QR4!jj#vA0&SFT3kqMeb5YeU9+T-MZjV^ZC`>Oz^lN zpX^rK=Fy(U7XFtm&tZNz=da5Kb#Ctsf&0(hr+zLC+ULWy8S}+6!CCm8347_WUyJ8^ z!^0=Ov^vN+H$eLQI1s3}il5lB^I#xuhXU{3wLY6ZpV+!95FhLOarU%q_`Wr4*qwEH z*uY=?%7wWH1gM>J=1@B)N64Ig&WQZ8QH{+9D*->mp$kx*udW}h-dooBq`fg{eXCgV zPrub6FUDd?=j<@%lQ?{T;;R^4a61Zb3S8P}a+{^r;2k7Yn^wgjWoKJjwlutCtj+xA}L(2~N)-OBgS9fA*uI^4Y z`I)q}#ej~|B~CxEMx5lY3)ra7hxveSY>;=<)}V3eFkd+n$Fi&12WF0}I{!=Qv%liC zIeog3ILcAAb^of_wcu`EYyFO_iTl1ljQPU;bpcA~ z8+@!~amJB2 zlwBoff9BYrc4(r@8vhVoWly!OZ0oI$bWiiK-pMBU=-f>6k$vns7|4GYkfAMKwTQ3c zQT~bZLV{$x5Oe_&uQyDImpHZi+n<$~7kBRi^zgrGq2h3M=2im!RxDcGYN2YZ+Aed5 zk6pmOig(q)S~03S*IBb4iB-vOTXuH=5{Dle#i5NQp0cCbasK5;Ogux7m;hVEQVW*_ zd|;Qp^Wf}>$HrltRQ1oQAC66OH-68~R4^T%CwPEhsb{MlP|Uo!Z-7|3I>5+ zB zSp3Af&YiXk$XO2L0o8rn){xxGg;s3Ir`Md=Rqp8&pZZ)#N3Ds)w6)z?vzHz0@viG$ zq=U|qL0&7PU2A2OFMGqkmVM<{$?w8%jvaD|?uZO_wleBIIi4;1v(H|!FPp@T4K=QJ z)Loh5r}b7B-paii6-Rep8>3XI!$ zRzAnJbm2pM`mcix>IR8x#gE=Lr|N;dq>fYH*CEwI@k;4qxI5N=Vo{2*jM}0?RAJXU0Ubr)Op@;!~u^RD>ZC)4=8qTyS=2A{jW*JbD{cLy4Cz0vE6-zoU47oVS~_Y@R-2;;p~-c z@o*>p=!AQ@%RIv4J|RP2Ub+Aoi|3~zRL;AA@7gw=rBi;y_d&srP0-2j{ejlq>bYRA z^KD%Bd(H34T={GdpSApS=ETAChb_o6<^MFlTi_nt9Pka%VNSg*1bkJaivhXhbpcuq z_=?EQweEWQAU0k{Vm0tbU4rB5T1@7YFYwct2>e={$K3{Ss ze|HuU(bs4DzQGUniG!SW0qXicSN*(V=+}D*n`Z-dR-DTInaqK^=+B2f`SM+@HO~}r z7K?gb=~q6w^ikLUxyo}<`eHE`tOR8b*;Nm3Nm-p)B zkX2w~^~bIKVk!q;7l@5`-V`AAFw^r+{aR=H&H#yj#gFW5!KuL`C!7g)30Zj1mrmfR zII~%tbj_jHbwCp$(bOGx6KUZVL*Xx4ifUer##{cHbi@}zF4fxd5 zPp31frq&O9^1&|oWv|ZwWpC9$tyj!Sf7pBb*`ZFz>H=ik>4due&sF>RiF~(EdE`G^ z|Gz1=;`81|Kfl(p(>gvexHERTzqSNhgHr>vH*gPqQ6NV8V#|J?w-$qI19_nTKp-ae zc^>Z$5Z{rQcRHcvfE=WLKmESDS6@TorTPcGOXuKX!E#!EpL(8UjJ>xbCdLr?y>y8irh=_4}9 zT9{kaEnZ!K*wX2QN@x3XMLA*Lf#5O0Oz`BuxpXgefjX@mmrY`W_6BrRK0S-rE;izh z;6uUi+C&j_j}R#PHg8OOP_@|2`a9&k3#$E({(Y@Y7!M**z(5e3Tz? zl~XyBkD9Zua&s_!y2m-F`XfvI(OL1Uy=;kVNB-{j`t<2A|Ez%B`DaM_e<#--YwY3I zC4s-Iy)CWz??}I5PUd1jjyXK$76NwYn?uiT_R(*jxRU8?;PtE*KQTBI)bo&U=LSjL z5&zx4Y;+IUTQ;c+vOPbp|bA`md3)oug72E4Fhj%_8n~n7D z3CjMn(kH8I!9$js`|mNnOUp-c#N3*;)!SuUJnTebPXuBk8)$3 z>|KFa!*YNZRo{Ep&%{2lYR?3|lD9p5@nZA4^Eri$Y?u$six*N4e5$ys)un(P?3@e6 zc6OOVa_60^3&c@N4;l84{lLTapN;Ke%-$|QVzwpN8n6$%zltfyotWDHbJ=gq=06F( zCfFQ^m-U}N&iemYW4&w;H#Ue_*!#XX(E0EvqH7^g8+=BUk6IH0c8WE574xdqE^|mM zej!S_v}7#@WFR^L&o2&k-;n-01GW_(JDfXrsh@d@wS85GRr_MTH!$88$o>A{=>dBS za@g9NVQ-(dz3+;rvk+2G=30Ndj1k#gP;26AjKt2*>YP=5&jU7!aTg#l_@yRJoypKs zgD$Api33tU{@tU?)Bbzl5zz}Ls{2IwPn7R?dP~kqY+MfH<3Q8jl75{>b>-*L34dQ# zYHvQUw`!nTHKu;#uIfup{ax_~H1mhjcju|cx+~J{^KPyS+%IPYYPky#Th|42lfNmL z4UT8;hVUTuKDOsz=E&L?lplN;+lHqL*u{>SK-{X|+F)J{I)%>RTDbpl*4w?4a$y}! z^NoLZ#GlqT@>l&it-otL`&(F-C;4CHyJvq7xr;y^tFL7<`E_@t+wZSfy3603f|INE zcOJzYwXr=r<2FWjw0~CQRQ^4a5TDq@R-`8G8+cFN9E@wP&HFi7Z*5u3_~E0ucKrzx z)@~Z+$Q8qj1A3hSq$b%YPCEm!py%44Vrj41#tYsP<^p{69669ae*PeQbQO>KnF-Wb z$*J>89($I8ivsrLxF3;6KO5N(`0o*rU2}A83+VWv=Dk#W$_91AJ~^J?+!L(}KK;=EeRq?3f7CEnYt_DG!u;J!_a`5YcmC_S z&-Y3C_)ll)%l`)8$mjLaSANnbCtZLlHs-5e`sf0(E0=rH_iVZ#kdsNg56pboQvc?g zX9qi{?W^bQ8^Y5<&fD?H^x4kd!vT6}U~XSfXIoX#F$s6{xle~0eP)2zz`xJdd*t%i zHpa=^E#tj+W-JdCKj#FgJ^50@_YIIarDmNiXN=9IkFCaPdnLeQuFe|!`9UuF z#r$w~PyVg8hvvJ-1Hm(c`J8cbofX&|(1*TlwdwVhd@|83LALh)UXZx#2!1)2glBsD z{b!dkVq5L4&vG^QxU7i@zxD*qI5}4Z<`x4sS>rD`*9Bs}HK3c1p0{}FyJYzw+q}G3 za}SPXmn?VSG+E?}Gu!6^x@QA)eNc8yn`i&?0=3}#G;}y1lfMrNeq}=Z*jj&If*%z- z^X=aaKbWz)>jGrFJ7A+YYpbTyJ>><-9o>5aau)(N#)SSIB+V(W3=cg!18a+c`?U)y z-eW!T)z+W*zdQ*uFaCTT$Di!W0(Hn1Hq{wAGkrFR+c!nd+%P7~J}sWwXAbWb0kU4a z?&3+mNAty*A45FGb9ZK3=Tv=M5FmE#4_2Rrv%UYb8AHpjX5;#idq*sREPl%cpUtUr z^V(L1xU@AY_oatyd%j2~RB^f_{o_GQj>mH{>-3M~!cI8``LA57lk%HCj|n~yh(pcW zYyPi-c5l@VUHawoiRSpOtdBNNbvKl6<2-JNt#`H-#xlPrGEv3g0qLIz#Og%&PK1Yk zK3^T&Cunn3v5?ow^Vg+sJkIk|Phjtp!gFa*e-FuB<4zj?JtTEje4bB}_{RDl(d_X& zowi2~U|*m<9~zV{{vU6jd&9m9n|`e7SG>D#yKvQkQ{w7@H|%E?j-%afmoVbA0Tse25h(2=RzbOb*`)} z1nR_m7gQa}vGw-(^xljSdB4~9R`=aH^zB8~-w~9po)Kkh*_ElD@7IR4)-Jl)<-LmC z3wgy{ZGmIiOQEdGM#;-|Jc5_dQVQW|Eghqf7(gwmu0^6Zy5Sw zQFW<~Iy4eE~Zo@=Zo@b3!nE(L9!UYIdr>-N4k-PVo6`ZQbpp5D}Al4>_=>E z&s*KKvzgx!OuB2$IV;Y|T(BIJJfDA%w%+~m`b_gb^YTun_;vxB#P_RH_{jLRtkH|o zJ@Wa)?;cK?e_u0C_pfKuO=;y;-u>LtSy>FMzhzi|aQc(h-ztcyXGF5xv(Cw^NTaK|2H#P_KF97dHAV((bn?6Xc(&}>*!bV|0vbgocT{>jtq49 zNXF7={Lz0tR>$i`<12@8$tUw~^Z#Ylmd|2V@8DWKXsv6-MO%FOuzqMa4DC5X`-MZR z?(r=Qtuto4DPT|O`B3b6LH>WV&(2?{d`0la;Fgcxe*2FH_y73qw?8rXt)OD^(fkFF zHm>i;m|V{@?R-$Smrm~wWqTLi*qA) z=>1kC=h*7+Xl%^fR|jh6 zxJ4QhnGRu(z@rT0}$os+v1*h9Z_$)2iH{MN~B z^^4JgVSdtD*)nNuCHtIb_IVaB41KXG9oA9?y)En^$K1N0>al!c%QsE%Nxa2@F1}Sf z+%e)?`}z2=3H#}!yKItAepNlv3wY>St-pKpIrmO;wS z)rtFHB~X`TOVwqUIV6AN?KB995B~#^MtZL*Jr0y7jo@v z;hEHus}9D#j(OQLABY)Q_LME`n+a~s_xk)<&G{Gf{PP)ubE&+)LjbvIPqbXi04z^C&AIZz*Ti2*&wYung}V|{Pl+Ep?3oD-|1K&lpaV23(q$NpfNe)Y=#Nx5t7Ztbhwm2Gm!1~S-2=Tb1uwk-AhRjX}F&&EKFkh>+= zI*j>D5B=?(fVc3Jq3=$3M{HqJdnfG3_?;8xD?U{lZzs?8jt2|Vk_ht^CJEr_7o7u&Vs^^m1 zWe&N676UTJdf6qPY@D{wo-RPkfjyo<>Z`!6{lnP$q`Jd^ ztswiz+Z4@T;{u!~R~cbBCWDw*>4fd6iRqY`!tr6|5Uj_KszjZS0XV zF)1DVJX!gked6UTUKQo?Aopy(Hed(45nXDq_?=z$E(BeGCfRMj+LA-E%jdFRyLxA= zzQ_8U^XTA*gEt5ES1wLVpYKb7*qP) z>jHEzsQ6c$=QBr!vtXT%_RztWU4a;(Hr&{;Cu`(1q0 zPMtk5D%oY1Ieg_4Ke_%C^2a{U?TU}s@U!x!uWrYF z$;rEhoV5SGVV8MS@3md}Vn^rLCOWnRTLbn1oA}v2h|K1&@E-gE?h^%oeChh&5341Fh6?-<@ zTXEqNoA(A?fR+RC@LYLMWU|Y+3()neO&_;u{?Y+_E#FJ0?dI9Sf9u6p?Of(A3dB%f zt0wrPPR+e8@9uTh$Ps6D@HTz12bvZacz&{(vm2<=fGVRs3-#+y*ABa=g+@+6} z19HgoOec@d+JCa`McF$au!DZKutC54abhAV;RnEmdK-;FWT?hZ2AdlTR9h2MPpd{r-eGGF&D|85CR z4XpE@ZTcXV&O-IYMI5{b$(wWV#3pa}mje9aTmF^|?N|nXzhr_8dgPc*^$ts}n2>v8 zuq&`1@LE4Rs5l--zupJLRKEFIZI?b`Yo`+;qjIw;{dzu&>+cV7UF(_2UbeKhk*RL? z23>%b1GcuY$7jE`jhV3;z9Y%;bsu6w@y!3p@* zg-?#jP&;(|b+$)!W?^|kobZ+%yBLHg?gWWQJ&$H6Hsio4HGag}K!nkbOKG+2DLE2AhYr zl|e_@HJ&dU#L78mANsT59kkwc-J#aS&iO_A0_Q|sA$pAYfY>gcVxX=n=Bx2t{r{q@ z&%C%I`{hus9zHPhNuAQY611_PzhsLk-{{e=TD?B~Ey316p2;{E(9;E|>;GJ>#XpRq zsuk0V0o~^Z&h&c>;QIuB}t-|Ay25HC4!&w)Cp<5|NwT&>B^zVDye%C9a!;xHG?1{GgC<)<9p zneURtxMa(JE4yMSz78?TZ=xS-3jwIl+NI zES(+XoTxK7P>aZ%v2&$v@Vd9<2#LSC*%ZtM#lz2%UFXbRs5;!1K?{40oq=}#MEc}9 z_v|nEXQxl*T?IP${;z?4ooThdGoa5|7cXmSlrPS#c#35gATiqlbDnvBz^!Th9&8z&bn5kv-lqi)VbkoTrtb-goN#xyu~d5&Ut4b_OAL zkvq#>Q1&>Z#?B!7J%f#Bhq2a}Pre_quk`qwfP9XUgN2~ZJ-f*60>qX-8QDT6a>i+S zLMA4G{z>!Wx$~O+B<=~S_CK5dZongBr#s<9@t;qE_e5plt30cNe+lHLy;JsQjM})` zrB>~|tDxrC@ZO+oXwOouzboq-g7z8Y{i{7kK7XzR?HM6c4Qsmq`OdQHx-$_{vwu3O zS#{3Ovf(F&@l0Aa|7cJ)*L%c)%%MF&)#Ke6w--gv*oN}$?zW-sksBKu+T7Lpld>*1 zm6u8H4|Ts)e#?h0`;h$n*(g8mC;2HoRoC(+KYNGu%2$^$5|_h$Z}s14(cKr^o%xa@ zHk}{nJ6~l_dUV?3~KH~+D|t8a>_Tl#p%`nnXA~Gnf_cLpX|o> z_<+y&+W4|p{C_p}S+|EApU?P+cR4`q+)~E)eV2{zV9>^h47$Xo3y_>`3gmGy*b)4B z@?syowJvtG{=c(6p6{}b*kx}_KgKq{v(C2G-g7cWWv}>+?Q;&h097p6_!lQ&Lwnwy z!Jts-5<@{A3kgj_*6DbI#YDpgRjoUUH#lFyFV|T+32Y}s-f|_Bir4T z?i{%)I6sx2E`8*4+QvYqiKWh8_0pg=EfB7c{_WWpIPMz!tCgtMX%p>b+ZXu`~7@HqI`zp82%U>PmypYw} zblWiI*Jm<*hoZ0I*T$;i`_);m8k-g?ey;@L*#$@p{yH(}3_|Y4xq#0l`^xm?LGG>| zTH}2InQhG7o$}cQsEzgC94FTND?L>sTY4!+&jH`(o4HA`@R^D%_PLu|`<&63G1bQR zAIC;}+t|zw<5SbJeH@S0|GzzsY&LHRwg%(@|J*O`#lOpbxf9=d_mjU5WL~X1AAb^j zO|UUw51ICUFg$E&c{XRPW=f}g9|*_>&t`J9-d)I4^AUAq4;^66yBL1;1NA;JttE3l zu%8aKqsG|iXV+|}la1o#(NcM*#n@{$20g{(-Uh#h91mkyOc*psh$s7`o%70Am&y;6vMECZxr3(<9 zA8mXW_erw(bE2{QSR=1une9jXU2Cp%bT))4XMF2SgxD{(Z0!PMygN|;U4SO-yyosqR< zO^a>WS8*U?SHK=9+q82*onN`d+nx{Os;iRgIaTqBD}5~3%5Jq$^2d6Yv$j^=>>bCe zbe3J?b@BYRgHI&cNsN#lU`X zxgmIGaLq7IbL1JQ&%V8Zc|qE`4QXMKwj9ZpDlfTk*6NS;9$UiYu>S|&gRo6V_akS z9v3VJa{+s=4XzI4S>DF~Zw-1L6lg0a&e-_@+teo;*wxkz{pRT?JL~;5Q+@u#V?Mxp zT~Kz35q)Ihxj7Kmi-MIvEXy}OEd=#BX(5jBP3#u~zL75<;_1%OXH%WG@~g`n^0{n0 z$EJUcvMw##d{=ZRXwO)EU({tDRXn%K{zZ)ddL8mSAgukL}+w z^wad`Nqn4z(j~@KTkF%mAduUVGn+nH-3!?hvkD8btS~kli+vGxvcS9ile%GBn@*>~Y1mwskKJ{$Bc6Wf> zTgZOrQeNb$>~<#D$F|a?t+-g@8~@kEz(Z-Rs~7fLpC8(>{f9G;=wzds!|x277G^T- z=>o)7Yxl_HxZd#IGxK!Uy`vt>AN*^b9sB2|$US|+JU#L%PU;3ds`CyLSE8hIKi< zCa79f2Zsa1mK^)uR`cXI3(g2XjLGEpazGcG)q{5e>!qK+#szU?t6bd{TgYUCb#ce7Ey-vdNy}mFw0nXGk3RQuir-xou@l+9#jn7jIkJ z&q?g6M#VzTotb-Q(4{4Bk}qsQ?5ew@{B7kwae{pQb^)U6a~fS_@sZB;LD@#1ytJ}+ zPLRz9HN|K3p$^U+>SHN=wWTK7bMoQ*&$#LHZl_h>_OjzovQ{?8oA}Vt+VSfRk2O41 z*Y#XDCv#-CXX5qQCl=<((_R>qZG3)ecv@YL$(RoQ;V(U6Wz0q`Keg(&d zoeO;R9N3sX-^J)tpInX0#pxdo5Z;xcrMnBz!N6KQAJ{GqU4Ymif9mD(fGuorMz;ia zMCPIFTT5rz#K$f`HRrArqiJ?_SwrlVyGiz`i@GujlKedH&a(OimXdc7I;%=970* z)UH>~)vEc{_llFXHV?Zqb|$)j{cN?DefJO4^Ugrc@cYyOWP2~*yFQ+ncI3RawaV`M z40b;veYL(A*hl`-(5j8nGn>A%E6#MVyWq^t2l(mS6VUPb8Sv$X;GMxW!M_EbC1*}p z`{=Ot1ryfZKdh~vu=Xdz+F29U-aV{sn6UQNVeRY*Yrin8oikzWCx^9jC#?O@u=a%$ z)?PcT-FL#;%ZIfuny~iM!`c^5Si5CdJ8#0;Hx6s(Pgr~Eur@zo?TN$M!h|*FOa2xo ztX(;*ElpT+uI$@5Va@rrwrRqe`m?rq!kTkq?Sctwo}<>5C#25 zq5r_NUo-UG1y3IO+tS+OPPFHOVeFh5JI~hL`Nqz%u{apJ_l(^&#(Xor=P+igu{c>L z$Jm`>?2H?0jqNjbB^tXsjNLQ#hzVXb;r^<&OCK!; zE_`g}yp^%rb6u|IhgScNAlrJ|-EHh~zlu|9%S^^{#V&pJ;6EH7HDHbp<&zjK1pI_; z0iIuJzL(+0=0No}A-`JD?U`P14! zH#xfkc0tMQ(npokt{<(gRwU4X=(9Z#x9@xD09_&Vv`+4)`w#L(TxZ?P)< zd@ldlp?@%-i|k99Ty_~Fc8=>4?}JXl4sk&I8^@Gwo(bO)Pvux#Rsy`I2ipSl_rtSg{O@5bWi6rTbFvd-NDkyv zp4vHe`TT%A>K+|lZF+wBQupADiyK+wjP+iSIeNvbWY~vF2YqBZgYxVg)|poe8v{D{ z>h9h#&R zqrWexIJYsVyVu+efjnLl%m*uh8Xfz9rwb6j@mIY)B+AsAxUlU@2iw+)HM_b1EeCS} z->wdv6F!#>WS<*MvrWAfZfJYwLbV|J3w9k=dtf0R>JlcP=9%dU!tJ{#ER|CJ{`3jrP0 z4g}=md2&EMUU!>yyfsd@AFH>*wC8|WjD5Q)b7Ip4YD0@Ao%P!9e(8die^T6vKdeXO z@`Vk~e;1I!?n!r+`7Xd?pYgah?wPrY>rDD^qH!fp4dM4WwerwqjMlQ>dgqT&`QG}p zoO!uI{MDz&Gk_j7!Pc_foHJIk(mf)-V&<%Mfq0NV-rs(Xu;+$A9;>d>J+hBJy1D>w z$s?n_JFvcYSa)uB2Xx}Kzic;$9^3zU^#5n?OnS$^Ga#FN(CQb9c8#6lE3V`BobkT0 zn-A#lYSZV)T*X4aeA=9Tfj`y1BQ3e&S$fsJxqSgYE9PT=4rXn4!1vZhd78B5-Q(f8 zo9fJ`^o~6HemQq!JAUbC{M^y_DWmaMj>h|k@%HH83wq689sPeuoipP9rTp%S^QAtw z1#-_?cxyNUYzcs$+z|-z~R(|Kem~8vSRO_slee2SH!C$Zbf4Qv5 zL9Man`G0f!?Q?0#sl8?A!>7n6125n`EqKN7bAGzbyCX`@nOT#A(wpun?~mSg{E3Y5 zqkqlMec5yGfIPCuWT&>(VO%(S=sS<*e1}>(&Pac6{(oRK&hV52A2@dW?W6I!4<3yh znYCBk-rB5<^?L5p?>VoX5BPSE;8%yA3zw`+o${eU79P3(=HX|>#bfRP`G+pk9I1yZ z@-tpBs+zCw7}{Fj93FmG{3^%y&K$ccjvI#Y{Ln5A?Z%(6WoIgU+7$zTeVHx$Z!wti(YHv&xiJ06p+K8 zH${$nX)MQCMtrp9eSvJx8~a)xRx%ccifflXqRW2s_H=E*H%vW(|*3dyBJh#%fD9N`mFPnPOY`Q0l8YT$tZndAbvI9rEd?} z^y@z_nDic{w)PLT<^P9?swVU+26VAUthM%CHenxq=LGIZHFq%JgBa^O(_Mg!cL(yx zR_e*Ue30ALI(hV#Tt16M$!1^0wBk{9LFb`hS3m~Pt!}#jjcwsa)r~%gvHXb%@A&7L z$=^!?_ZY&bHWubqbF`2?UF>i^oEe0Vtw6u~U}M0(Z0%`Z{;WLHO`jN$u^6~lt!qII z(6cRI-^+3z@cqo-^k9F$Ht+Fjzx0tI4|@Z))S1>NmmOp;1zmvf@Bt6hx}1tv`OJSd zcwSA@KbJLBF|n6Ux-0kmrNeWJ?TEdV6L$+g3gU>!Q*YMP&<%ljRSl7$el`as zr`DD;XYZC^Yrt1`YGe6Lz{o(=Qet87xTcU<2Re1Gtkz#RPJ z(9TEB`RR*^7?r<#2Kkx~#EISXRc&Q!ud7QdKm0BG$uVaS{>Ns4y$i#5Q`)nF#h~(m ze{LAtf9BAy_C6W6_TZQ2)+Rc{aY)mVnxK~tW1boO+Zm`Eaj&tM-q{+JQ#Mv!=~btn%4cD7bhI@qf9z;&{6Kiirn0ee zydk{m&A94MU;VW$J4%K+pL7<-btzu#JvI1=2{v?@SC`9y`@{Rp6)}*W_I<|PD(=oo zo#XB4lWYHtkv)@^{m!Pms(pFYiitU>e495Op96M~+rG<*GoOKtR}MC|?||$;;~0ry z)ymEZG1!syM?_wiRxXzVdeB&wFoBXN2EL1yK}UU_>|6n1Ibnj~K> z;q8K|NB$sZkDV(4Ibt@hJ^8c0&X#`3tTp@j<})kX7Xl>4=AB8ot$3%~`-`vkvB}sT z_m4bOUg!k&ij)4{fX%lIWA}u3t0O$E9~t)g&9Scw#G>L)r@dXkPJYb<<+FaxrQ63T zu6{;7leO_E-E0wqaeTz1{H|6!$nd_FYq}?SE*U1&yJ(2V`e5sT3)6arUKuz?HUCXR z|NGJ+^5n68###BZCQoY2dizW@cV56IYgHriAP4T7R<6A9LEgrB5etN04Cv%HIb|0; zOM!KI)th?MB74dXJPU!A%$A=W$UGn1F?iWPhCLPgYT2SD*V13|)YY~Cy>h}GaJ;zD zV?TRt&i=~1xS>gUZk(crZ(_1DV3*vGTX`!zR}cHgITZimxoCopF6;857H0#`p|6O8 zbhhu}<+EIE57^*LezJK7uY9wy&b7HV_U4Uu1!Tc;K=-7xBz6k{KPK&C13Dw9+7Tyv z>@DBx_khGF|MlPButhzy0adM#Wv|*C+okT?pTCgN1&EDRi)68_WNO8%3lLv`p5p1! zS0h?fcPJaWz}oJB+~uJi+w+;Wflt0K5;O1SdjjtXRX^qygX;n||xD& zX?;I>IDNz?G4b9r7d$9=;a@VDj{B7`rS1G3AObo;waPTA_7 z)3>jl0b;)~u#X=V>zVZVh*!MnZ{LSjGOk?VtGw&8Pfe8$V|gzd=n*5n?hEh&9-o~~ z51f6rZ421^qTILE@$uDn7-bWA<%7B{A7;}BIodGv*-&}s7nxmv)CGUbm#TaGw*-9i zURJu~4wby!tHV#L+jW@-cDSGP>EZw0p;eoHo}g|D_$qhxy$xOV8g~Ke`ah3;w==d? ze8h$Q_KNEbfq6c&L0f0ucQWn|IWiCKA-Umm7ohfTs#xKjq@UfhLB&d|el`aDl=I3P zJGTc~^pfOWzha~Y+&A`t^YfJnro6S^Cs~^bs(w9#osG)-#`N*<6`%d;OduEnOrdvD{&K}vc3GFcYIf7s`o`a$`eVXVd1h)Y~dP_G!sG zb7(96=J>@9x+;!jv)!8g+SWIAw!YbWanQy}9Ciik26Sohi9h*hPf#{izKqG4l*7-Y zJtq<~K8m5dPKuX%KrO5luP*E2LZ2F{IPhOyD(-D8$1zmH?v!l-I(NcntTuM^m2GqB zx4C3TTl-zc_gca50dk-z3-XuGXp%W9c2Ugrv^VZ zVNaKNy6IH6+KS&@aVB>}-eY2z9JQZI`7dsCiAm{lCY=B60h>K99yxqgRXco=WBbL$ z9Ee-hl=ehxqV5m-Ju|KdE)Co_?uz9=>$B39z%vY=IF(P{57=a`o{@YLPjc0nb#|KX z0@T`F`?}1tNsI7^5nsE&-Jr$e{bDA#E?}p4iMKU+?72Dc4!~yXWwV?w1o*EW^0O&@ zJ}d_K+V`8;jM4S0P5*Pbim{w*4)BQ4)_`4NhDXdQ&!xX&re?+Ic>y~;TjiYJ6(91a z#m5>yt<&EH{CD2wg3`A>{iWbBf!g6eed0-8s<#Kz^;UX&fUysJ*jem^!m>(s`BN)%U9}IAtchlhB{BDQlDX%^^BV{{Kt=-^I)0 z*WH0STh8J42EwSG#n3r@X@J_eI+6BG!r4>iC-Js(v)RXn=LV?N_t}=mN5;OpBNul@ zrdT@bVtBux@+gPyf_B~W#$6)Mlh%EoB_DE7&$BLlL_XQ%X(x?KA05`+7i;mmkKF&- zx+5pu`}9q__t$#PUYlZeSMmEqp0iuRw>6+|C9rqe_hMP<*S%xmUkDBcd_F&LC-O@y z>Gs(bPdz8)0KYqWK9IxGr;oP_kX(q*sX-TzyBx?BBCGPH1^N~P_qF?yEJ(iBZ|+U6ieKjDLP$ zZxG@wU+guH z|I}ezvgD|pW0(Bw3&fTTbuhMzzH@>}`i~dW)*t%Du@n#by8u;u>I`=M?9mwWuja)0 zx;R}mwL4?_tn;U8$=o=mo)Ol?qiRhb#H8L+#0;LETJ!rLzZMwFxm<`dlIywPhQPX9 zc)zIqPe}i%0r`04wRpw+=0M)$>OjE$lKEBX)3Y+ndC$5fh$;QwQ^Wh5;OgM~;PC;y z_S;9#X#qaxqsDTv5Tn^G2a5q4*v8JPe|>ieo%-toG1Y%oK(D{s%|3UmH8pF`o}heT z1Kn&BKlZh8ko(rY-5H~<|8td}%qxN?2PK#N6{F?!%eGe5!!nQTaW|A5@?3hZPoEDZ zBi;V{MPt4qacakVM`QlB>+E%3p-&`6V!ks_AB%ypb>oFV?X`RI*9?!lhfnRE-#dXl z;@|H1^%K~`#;O^6%Xa$tB7au}2LpbHu{q<4KNcLuFgLW;jIC?&)HxJ?Iyc2m zIkKi6GyJqO;Ioo5V2|fr<(mBVOwwyzy^tsV-WAyHUEum`aL3r!1*mFd{LWGKu}Oc@ z8Tq5Z_Btc@)JxTbv#=?ke@n16zys#+oiSWE;$8kYQL`EIM?2{~M$E{dPww62WXMey z%nWUsW9F7KCUb0$d*T&A`Eb;hd-k6Lor^~Y;{CP3HwVuTkTrJ5GoN0Ri-FDMleLmJ zo2;LoalsyawNrEBmaNA|fE=9_TpH|&4(GmNK<~o^JVY;l!qVIEgki5xPl{#bPaOH8 zy(l1u{4PLZN5xElkL^%<_{k3cKZLW>E(PRl4$2lbJS;$J57qu^$yC3sJoj(OE4%Rc zZo#+<(8<{7ESAi&vGuKD;LO~R7i5Oe{m*j<-?*}*>Ysut?myDoDp1D`&sn2Rmg`&IGHUiZp71GQ89 zYEJIdoOedgYWvhoonzyO==Q=Cu5xE=r`@|ua_^V#ouo&>g+``6A;^Az4b!3x8#-@Nya_xIk z*2eS3)4rQ*@2If#c_B|O9-aivrY&7QE6Evq&GBP*z~+jZ*ofmKx$@WYRxNeIp0SKf zACcRxk%9IGWIi^SiDm9LP^Z<`$`M;zeHr$3e?{7|d8O%#^Gbx5-qSPQ9`Fs_mcOh2 zvw^v?=kGEmqxP_E+pzwg;hAfUeseVbZ=>;RM`P!j4Yhwc<5vE^ z&^=q@^~1mQAa`os{A}>``L`R$avzXEj~1U+J!qj~AjV(%;oEOt%-`+jzZ&yBs=ZeP z2tRwYt-iCP4}bm4e^R{uc=)&Q=`Op-AgjjCgYh{5U)&o%JmKG7xb34y|J{jq{`0D@ z6@!wsVUXb%Uoh}g+}o}H6?yls$MdJbkR z59PCY`Pn`2RUUF}9Le4KVNc1J%b0I9{^-Y7ZC3~7tLLV;dEVjU^SR-pyY}+&CqK42 zSF*l8WBD~kFC5m%^8RSvzRNRzMq2aER?UAbd1&{)AY(f5;VFKtXOfoB&aghewI!SV z#`hiCrL?;O>qy+meQ@yPDDs^7$gt?{u#cX_!1SJ=3lO{OT;CnMTOxn!po1QF7>n7= zkIli(;LC%r4!$vXQyBj`_;_$y0)1An9P9}822ThM2HzUIBtY`Xuc}4yUkt7ZkyLsSD4z_RM*1;;A#IM$}3x=lg~+UG#o;fXJ+PygL1HJk&bE zSG9I`#^XOkPsO8hGM_m#juD^vawteh`g6q2Nih;XWZnH=XIH-)=EO}b#jRvNdNg)- zTCX@>nf^FtbRg|#B4%5nr(!m#h8D8UpS5b}%&e~j?y#z(E`3yYuX+A-fjHsS7sE+4 zM`y*VVpMk>o5pt>`?`Q^^6W3a=)EkEXMKLo1!zyuJ{QXV(oOFEhG$#)>^X13@8Z<` zUUz!cO6|GFggx!O@7$q^S!-99dGC{B-`J-fC&h$4{Obb#+RJuvaW-r3V)}TUkx9CD zXWpH0XZDNxiR`Z&vuT~3YTd+ZCpTUp&Oz9akC(eA5S8tbe&5!*I*a?D0;dv~zW z^IqPqwK}Hx)P=9kOy!c^vSnHwu&Ip)`zqgMQ(KGcvhF>1Y!exiV(VRg%v&~9eN`>G zFN!zaBj5LU|J@Yu3$f4p@Ew`+UgHLFj=h)r-jL4w1+NO;5d7HCzAY`hC;0OLf0yRfcS7;a9U7yt)x%(z|!;7nap(WhjHCm&eG;!HbDCV>m{$|#INe0_237%bas&CYdEfGFdQ#Bu_GvgkcxRHVI)lflOjZKoLkn43I!T z5KyU#E7rAYtG0?-7qAw@K*83%h*WEfb#421*T4LK-}l_t$(@JyJ?G41h_?UUpZw;! zm+QXv`+lDHJ!dAx=XbTndN(eM{45<8XMSw^EIZ1sL)o(}^2ae5%c*hQyJLGQ4!tZs zs~ffqfo6<%2sCoWaTw>em&xy0wW4mdu`TN5sL9G_zk_^nnfO5Pa3TGAm-4=3kN4@v1dBocee;)Qe13oj>Q32|zWcQF)VmWo{5cqSJ`928 zzP>&V4xyd_^y2AdZ_l`Yr|NyaCTsop$~La}iwnJcbf-8wbvDJ-+2*%?#s1{f7W@IBYe)f_q|zTwy>{c>faEI;~`ePU;8qi<&T((N69o6hZ@h)adfwj z-M!A*TQRM1#TFgg%m$6E#b0$|yer_-8B@NW7&6ZuwSY$}IrUD$|HYtW4(YRbyr>~4uz^x#zM*_~Y{8Vfg(x+;mcrs}bH>`}|~^l`VZmtF7oReQ$0+@81W7{a4=d%ik1 z)9SLE*>GBLbf9_frr*9<`uVpW-S#g9{HpUx z{`JB0g7PcfmFMEF^!f9td|qcmjejcRy0g^9=>eH)_QL#sEMAu1XW#?>7J}7us2A@U z;y@04Z2hswI3|={`KkASed*(^oTWRdh4swU{cviOfIDJyur+u>@Wlc7F9~i5J{A0a z@aGMGANsKD`}|-b(AVUkYS5SrMt*RsjFoSqf1for9&Y$_S0|2t;rFJFr9Ye#%yu`$r-aL*ncjP=ZlU)gG}8Y^nv zcLy*Rh~c3;7fuZSp*%Ol$b05_fkuD-eqQTmPFC-;vucHnd>0G8s}tw_(Sdllx9VKt zkzePs>Dqgy^F^||D?w)PgTXJW~5r6H{fSqG|YF{r)or@9shd?vNI|Ldz zv+B5fESXE;6({l4$`&;&w(cj*K6Ot|$xe4tLvqQk@q9hc?W@yj_O_nhEh98#P78UpR=V5~s9Bq55L&= z{OYjhXG4wcW6StGZ)4_q8D;N6<|`*;><`)WLX9 zt(V=#WmDO3`xG1aSN<2@^;7uxKR)NqlGf*=>bLHB_S5k|KQoqps5*0&#g)I~SRI== z&!?vZ;`^8YPyas5E_S1J&eX*;S(`KOdFH*le)rX##3#DMO?!A3w?}6@AE*;NWH`ri zColHXwXkWqw$!#g6{}uu|L^4Ya>bbZdY0=@qwGdf8-Mz3OXpX=I5%TK3jC69+kV58LNV;vL^XY?+3`eMdSu@-#My zoA{K!o((>?Y3gnvI2a6p#`ZpL?xih3)#1+Ld=W{;D~7R%?5M z@`tbD#@C|)P5sq+?W^&${doHQ^b~*9dX0yyk#Q*eYOUwLG-GvDGU;%yliS;FUvG;X z^WFQ&(SdO3*YsW1!a9 z`s_Ad41Ikd-*vC)&$`#>xGt#Y9l5Jfql93x#OVP&?E3QTJtmaCZGrp4 zeSSj>s<^SO_Sm;0e+PkW+DDtMYQ!9wUm2V1VNcEdWc#}mCDWbB=JSFZ!%XLwhWdNy zKNra9P2ITU4Vl;Mr_27AXK_#K-<&@G(>`!h{)l-OthV=-EP7_VFNLuqbZ1cc@@x?= zW4?g=tD!Azd}pYbSlbsk+ouJd@Ak?6Tu`$0f$SSve{U!oJvSd4$zt?ig8tI?jILjE zS5BF$wIfaCRXpWnA#jew)ty%mchP zT*;4o);|0v1VfClRxj98}IM+J+1Mwv9F7L86WAG&yshzx(;{W zEITTG-#mwkLrJ}X;iJ;OBJ{4GFNd^uhp+R zs^WRK&1oA0bNIwvU#wr;`eJ>k_m@4Z<@<2gyyJ}bdVd(teXhp+{dIEmikG;}wZ7cf z9pZj)_o(Sp1Lq(AG#>VD3Wh){nQ~Eg3>`zDRj$T4y=!@S<@1ugcLsS*euf>3!NFh% zH18=3QA`gT+^a*Nl@4pw@AaAQKMVe1#_NSUbQW)xR-VPzrtf{K^wX)fsvf;5$jLMu z>gUgrL5Jtly913re*R}@zHW6d0!oJ;#R2KJoL`t`0+HHi0^0KdJ?N}cUZ>2D9b7xuE)VZ0$&3h?M_ zb#}fa1{Uyc4c-_0R8aFhwbqaIpV4GwY2{2GoBl#KW~1lPqucxqq4jQ*?!>l;nY6w6 z^X}GvYoiy3J{afjBv-i~4TBvha;|GgYovC3zqtn!>=aA>7cVT09?_!{y zeb$$AvA!$N)Uf7xU~PM_G0@CuHAm;%Wahr_u(xGgHBO&1($D?xkk@HB6t8Kyyne>~ zG~UCR6JvRhS9#PISI_P}fwmCzxvBW~d3ASb_V&3g-kQfFzcpX^y30bE_a5z@U@q{E zfp?ZoRYQ1J$ofc^J zlUwwz^zC&X?BUDZfjQ>^t@z4A<)q?h&iPtxFB$kY2EDvGw(jFh! zC;x1On&X2rjUEin5BR3_dE^s5bRnqsRJvXm@Uvo=?u2i>{1tQg1+n&g(XSZGL+M04 z|BedBTqqmrXGQGuY`rrOCw=dLH5O;S3(b~59iV(40!`h#GC>#&()h(cdybU+FYDyj zyMlVqdOCimKGJr4`2(=SS(Xd&R5P9xa8|H2*ciAsD!+0C^81CYzcL^wO(@Y0zEx1zwP1oreK=i z=BN2BHexW%Z#J@Ly>=XGjMVk3x_t9Ztele}(E4*Qj+?uskAwS44Ai7ExES!E&X@iD z9x>7QC+F^mg+QM1iphn6wmsMoR1Db&>cf70{3Wa2huwn(@~eM1)N|x3VyL*WcL=nr zgQcMC?|tSk|2GEW>#kMX>XohM2WnaqGrqg4zb4?X7}|^1eznL~HE4~lA<)Fgom8lh}}bAP^fe)sr)0FZs6y{N>kG z!Eu3gc~U>qbkk=)ePT2O+E^bsv-F*pwbG|1FAmh{G<|fHzP<*>`pB83Prc7|^2H7B ztK$rvp9~HLTY{cX%oYN?uW7v7(w7&xu($tr_T)u#PPLwr%l^HA*pV>=n*1cilYEH< zJ~^nniT`x%2{bl|m-^(3@#Vo2f~COu9Rf1#yH_&O@NEuG4pN$v+9881Yxa>x-_1eU zD7HhOjd|2b)#2{+=L34ha|kr@?L*HBwg!0kd0k*_2+WP`&D7-IM773N_S0AP+bf=2 z90Kh~+sJ>q$rUGgX2)rbI*sH<^w+WakMTswbxi2 zYF=#T1N-n*t*PT7(6$HcS0{YJ$0xZE`-KR!Zm!03TpBoY<_|X95UNJ`Q?{sIeKPh1 z=Lh1a(KqYaBYtH=U+3a61mc5gYK~qyb_Lp-ru@Aoe0{y~Ro>J;ee7owzZL`hVtZ8U zU(#s#Q)@NmpZ)CK66_Av_I(`K-uruc=Wp5X4v^O; z1@gEdl*}Pe1C>v50&-EUb-ygX**c5r@$_A9ZWVxUC%Z|MPxt{g) zz2r;MzdOlM*Y6Ep5yoM|^4z}-Ju8B(|6{=S#FoGB>^b{$Y**Z$oJlcruEbT_7Z|H; z=T2;WKk~%bV@}-VO1$;uachv}N&NdgTQWJ;<2_H?7fjQ0LiW(3CcLjL1c##YAyag^ z54Bl3|2lCmo%OD8Q~1@{5NL;D!+(vuvELtF7IVLtzrUO7V_~nD|8nGLVqGzpC-(^c zceK7So~r+Uh~H|4tQIjTB8ISTun9iOqaeL>w%A5LHE=ia|OHJO`s ze&#rmwm10y`}w&xF;LU%L7xlf=YiDb_zbO87wQs^JWs1nwI!|A`?ESeZ&m-~*<-vr zm=87v>Rerj$JoZT&MKKO&A!7uKb}!TpdIS@*`LF5zno<}K0miDi~g*$a#ZF$YrZHO zJOiDh7YF*{^MCR)<(ctsJ?8;WAK&_Xr3U*t>T6I;t<~q|p0BSrd~(psw@3Uv^SlcW zfhHIA*-&ou)%4b&YPy&6^AS9*gB!xDvAyor7nw-w^UWf%*oqzr%ta1=zm>yj_t$sy zLe7pM=8ozVt+>4uhstfBw zpjo%(dC9jL_c?NBu}O~EbRas7<;nQ+HfD+m!As8xqMFMv_6-Y zE>DeO`?<^IPevab$LB(v+5IDd{@%cM3%+|%#|weDd0rn3yj$WK0?j+upp)h-;B#&~ zi{%6sgCWq0$G+;HmHyUXV?cf%-?z1K#rK|!Hw1kw&&XIC`&N5A7xmfg?Dn;CS;pRL zomF>n?@yioOiyA^R9pswG%*=;($;ftvt7LDr6rLS#YCM&=DA$DwL zuYBzZw1q&v+)qQGm0f5bYkJ7wgM5wU44JbB)mD?kkGm&a%jb^VbA#6=;6t0|gZsPI zZtd2Ngbfux`Qh8F8niBMXde%?!4Gw$4%G=BF|}sioYOnTm{ zrts1sZgkVhX8WEUl+881Gjo1t01sVkxjj(Z;(AT6IXEuZ6!1^o;v;_uG;?YT>Q10* zu8qy_4(0=KdVIhS_K`^zo5k{lf%?+K2XE!8?5G$Xl{I#kAJ)atygP#*ACG@aq4rqQ zXCr_5Joa-XZ(3ZuYl#aT{3<{BQ~k8SXcTg}dsvR-zUZ)Kl2 zSO0Kq{ezLM>YW@I0zY3tHM-@tD7&k_JN>PJnlL9$a?a1k2bK4#XLH``7lJy^YMD%X zoISe9BS-$_Yc9ZNznm=wY^76tZwaia5o_kv2i~&RxVM*0hbp(%$+yyfcKT|5Yv8Q& zMJ&{(J$xDaD~D{eUiU@1lh~A8KH-}dFZSOR(DS@tbKp5Dc5Lh8QMQW5%>nt9Q}T^L zJ(8ziImEXm*d5FV#pPT?qEJ(J9+jWA1nrS7d=1ys{(mchw4h74eC%{jroI@ALj(OMUm$$ zeM6vK9oSzvvG;~xY&YA+F=xAZlx_Vwon(mXI41`)Hv}4fU@`OY~{m1NPEsAN~0FYD||g z+u8TzM*U3CoyN`^0=)Du25hshkE^k>T5Bl1J&!SYWUUo{ycY!8F!^)YcC}OEo6?uh z8q;Y^r+C%ap6c&Te?G9zW;*=N)(~jorAEcexdnce?czrs>dsQLTLXLaHwR*AEWf~K zwAWp-$JPRl%Cd#BvqKvuf8Lh^_Sf9@^u_O};F4hM`*=+5U4iDFxIW0^`7`dA z4Z(GR7#9z}UK-T;%hIoSzA}CBq?eEUzcJ|Re;i+X$9{%FF#9+`#BjYPad)R$vz<)A~FAex!W7M64PpoUK7WgQxTY}xed|>Z5r}nc= z8zz4)*SfjB-l~qsEk1VN+1cIu)c4t?R(m^*`}?N1alCg^c*#Kbb$xrb2K-VVo?YA8 zSPYz5)E(RZ?qAi4=O3AD;U67hc1ys2a)&^()}Obs!yG&21N`+YJ&^wPHYZNb177yr z8eAUG?fLoo#E^~s@4(^LJV)ysu}#eQN8+%uIM zI_@@^Mn2u{$|2Cq4LWIR$-C?jXmkJ_R|KNLUNJ!*D9GI#uzy+p?C)~f&6aI}cK>~A ze-9{@_Nx(kos%KZDvxSpAs7M;KfP50)5hYvR!qIa4uQs3xh|bmqt2l|{c6c)2DvBS z8hfo(U8|X!gUY3MgCWq!9(2-5KK|;TmHyUXV?eHWyt$2!3oX5LiHX`B0_{*`mn=Sz z$A>zvC!|lec(4ucSYP>ahY&j(~53~mVMT@366 zHn^)#4d^~pxnz>PmRvPM7uyyBe#wn_HrtP~d27IC_G}31K5#ZbE~|eibiUhnUHZ-# z-|5&FjPEr$)$plle3t}czB@A~&pp4fd{o|Rt>PpO{O@xhFRSIU;-Y@kB%6TkXdgRu zu_M?S;O+U#{*9TJ3wzHBO8$5+U*wA{efr8T_FHrBY!1k>ANYt?e4L${W9xjthJ(Qn zXnZ3ZJv+#+*L|k!5*uf1EgrsZ56G?<=!5td#&IxTaiE93et*S59rKl)Rlj`n-l>LR zU!&zGd8PN3^e+h5GX$Er!QMvs{#TvvY6U;P$SS+^pA;-4(Ci}@rR&;&E%M_t9bUGR zvk;J3eux>H<;Q&G$$qxvpK1Ece5k#0&Q7}e=Z&*SxAXFv056~Dl>4f0_IUP}?wG!! zvvi}=bjwNA9{tYm5NN&r%QEJ#TA8MQT(9KvxoFwJwz2C^Q2tg-Q`z`N)31F^X#z$^9@1N`)}V=-VCp6dcMzR z_}^D{57xi&S}`eIM`cZ`y?d62lNgBE=|S=QW_)MMrGZ@D7|?61?rsY5>-e8}MJPMj zhI%)+AyB);D{lJYb4x&$eRl>C@fmXMFTcn(PX<`KFwofPte8J0AY0w2lOfQ|Iq&Ag z(pcW-12(YpEdgKUT%)_}A&;IR(CE52Fs}`hKbQTizF3QkHjBS_c7#Xn=YpkxZTo}G z0h`HTb3uL12W*$~zm4JM?Asf#n=f|+>Zp7=H~lw$-hK9t`OBZ4vV90N_R781_u1gz z2Gm{`(8*@CXPzzU)S7+9<+HwaMd0`UU%4TF*L((^8lGna&k3BVD+A~FMZtB!!9cCN zB6wBs+JMg22X_Z=3Em#OD|mPCjls7B?+v~y_`cu=gC7olH28_&XM=wid_4Ho;1j{` z1fLH6F!=M}Z-b-ai2r9C+joTeJ(~-ID}t8?cLi??zApHM;N!us2cHT)9sFtVmx2E; z>oJk>$l%0ab8uSVcLiS%TpwLxxjo2mGJe=-te*RIwcL;8v>!ieG&{L;c7OHb z<3?lmY`=a&H$Er*yHXRiZhZG>{HD?P&7<)>qw!lt`NDA;2nZ6O$fK6e?e$nJC2 z&-c0O=ldM?^T%gUzVYRqQ+&zPZf)OOpqb~hcY%_Z?#le;8T0c~=G_%? z1aylRf7O{gjh*l6>@@zG(fDgeJjdK-FzRQ1a=ERik@_Sk!rnUYZGuFd0*`r>>9Mp-kqwNc7?U&QHeoVlw zf7a}9#~OcUH_q^Wd+qa#sJ-9S@!I>{-8jR~+H2pB1$e)w<2C-?Ze0F;U*=Ye$3I_V z{rlHg|A95ue{hZUf3e2;zg%Peht^pC;WgHOWR3NIwZ{6tp0S>EtmJO3`{zd^qwWZK z{ISvaeWUS@kH$YS8vkTBE;}-{@~-FZ^?cYCxZ~Bh_q~4;rkeNMUkrv|d_Ox2B~Q)I zlJ`^VkjLMjZhZaEV4RbB@1sMj^H*n&Ui*J0`=1|rY#aY<8`oX>{x)_d+>PUBqq%x! zipezJ-IZkzIU0LJ&>gcH#CWy!evL%&y)5ut9K>8q)W1AAE9$3mrcTt3-1^*iYM@^1!Bcb7 z>id$ci}M=-@prz+mvc6fIRskOn{~YZBG9i~m5lGsoOahTnb^|%@a>tO3-~}cS?>t_$Q=BV%*motdth_g9c6?ivd5ueNkh6SI)PlFUImWj+0!Q zx4-&iJID3!5I!V*HK?IviDB7Nyyctyl{dbfHyZEGxZhvTE_P_--W}kfYbl^tjC#3S zGVbN{cCcY?#DC&wtbY6bWe0z?I#bhhR}3m1p1J=vi5fpQ**q=g_E*gH+53jTow_Mt z*Ij{TT`OJsJ+E=kYj5$g>*v?7OPqiWYJmQ-O-|L3d2w-0^!eqkC|sO=-52}PKNy@J zs9mk>(dQ!>+TK9kyenK3`d~wjd!6HPzouX7MaS!hJC5i{jO0#JM+-@WFugIY{_^qLH~oPZ#7;0ouRHZ_UYG|cg8jZVmlYq9{3W3=i9T zo*_J$TCw5J^260$?z`H!_Tc^L?CHl3`EU0hKR@HL%fHh`UeEt?BmUpanB3xF`*(l( zJ{h0Mzwy=E^sA%st1{;M!vg-%EeBgOFMs9#mHCCH;xi}5f06$$+QHCi`S|(v|4gg> z?`pjA@-+cF7lLzxe;2_eqnFp)ea%STf66Zz_3OWoaoOj2>fNP2*Pst=V?G(V^MVh?SkH%hQcyeEyu3p_SM~P>{HphvXQuyPLhU`6`c~5=pYF`vfw+o| zGxDJXNXbvy`5W(ZhuilH+2^y+c%S?^KidO)$N8!KAI|=VXMMbXW9G=v z==sI)+0*km8~Dbu)tMTS`~T7IZDaGN2KH#=-g^jgtA6CuXOL$H=3W?FAKVhWCb%=W zCwOP@4Z*hu-y8f;@Z-VzgI@?f9{hUnso>MWp9X&!d?xUF1dj|(3^oUTpWv+EDZ!!|K zYpnnB8tcEZ#`>?WvHojotpEBN>%Xza`fskW{-4%Z|HK;WzqQ8tC)Zg2?KRdvwZ{5? zUSs`t)>!}DHP-*j8tcEe#`=F_XM7=#YeB_+5fYKedWiWt%HvqpQF65k^Sdu_)_s4@B52G*!OE* zHqz+(%XRD<$NR6=v8Q72*Wq2y`T3i5^8M{P`TlO5eE;t{`Tl;Ld|vL?&OvdWKm^~K<#&w1t8Ky^O+&=@iW?Y|JcBQX9qJ0l>diwl?SLHj0 zkd?djH`;d)YGJUD=JV!U;Pd9AqU-w5t=as7(7ymrl;3E?Pw2xMWrumShVm124p5(=QTH>-R`j?=k8f0+nm@78lN$BCs(GKQP~T0U zem02ujsjKV=;lV}8(nDBGsyauM#bNFTchgV*t-epGa>488@jVmxiUVz(I+(OY?=SU zMxWTI?>@}?EQ_Ai=-G`rkLKM8=#v^%E5>q)dX}P3ZuE;AeM+N#7G?c{Mu$c(Z1kc= z)g(Uki>g&r?V^`9`qW1EH~O?jpWf&*8hvJ?&uaA9jXtN*FKP6-jXtkY--*z7S)-RX z>i#l+WusR$dZ5v(8@;AcHIDzuW0m@jec39U*71e8vTk!U)|_y8hve}w>ElPqqjHux<>D4^eY>^ zv(eW#`i4f|*yvr2-reY%8hvx4_cZ#JM&H`#S2g;!M&I7(S2y~OM&H@!yBhtP(9a7V z7Ca(&RNyYy)TlLM>nI+y`1HYjfx0J9_XFx)K-~wZdjOqp)VViy-cjcq-QMWVMo(|_ zj7Fc>=nMt```f7R%ZHu}Csf1=TU)96n(`m>FGpwWNZ=)Y_9Lydm8(R&;H zXrmu%^p_g_kB$CHqrcYZZ#4R!8vU(Cf4kBD-01H%`g@K3w?==z(LZSPj~e}xM*l~n z|EtkIYxFM~{i{a*rqRD^^zR$>^782PH#EAjQU89f`Av;}UZW3d)W5%L{ZWlRy3ykr zJ)zN)8a<`a$2RKU|FwU<(Z$g7Gyd8@^Zudlx%&AJZNE?Ounf{J4<35-q&sl8n}bt=g+T7ic?Y-d9;vl-C+`+g zi?{MvIv;`|t@7wSihlNMY_PXoH7hod&xZ1;^o?zKe0XXt-9xhFuJGq8xyjFp?KRfg zRk!kQNU`mufjE0_tvK;2HaDwY@s_M}(=S=+-cJ_URpZB`Z#*q`FUW$m2RnC1BE}Ci zNA`a-7|ZE%cYK0VcSha)Z^$0)!H(J3&d=qTZ!Zkit3%A@0`>mk)_-j1Lg0?*&%oO< zuDZ2Hy}Q%!YIK`(H=8>uP`g#n^3d!1!Hmh7rSI)oJCgd|)%4f1j{I?ryeV@UUmn(| z`|^MHyK!1Q@bTJU+S;@^xpTj%72kvD_qnsKsexkyHGrqD6E!ielgdHWiFo(A7Mq-2 z*NK_a+{+8OTs`;cJJPz+EDXi_S=E@tBs1;f%G-{ z&HY2hY`s3M##eD%jc2VjF;iP&c3e;~bI%Nc=I$GG(%cz?PMZ5^&`GO07uPzYCCfcG z1X?d^+Wt-9vEO-TlRM6Mu8r*}`PQ!sN>An4_XXPj&GUU{Qp`34Vs>Kiq`+r&wC+6X zV&>kHhlN0^IXN*`@vfZLbH==8zg$e?mB;M?-W|ct)?W(k?_2A}WRtTw@E&(Uz#etL zZhf`tnYk_SbHw?8t^6$BUUsG@Hq3>tW&^(7hOtd$i+cOX!1Jf{v9-7H#ToxC8Ao7Y3U6iA&ioZ%aXMtGxPm!yX-Kf5qpF^cMrI=FU!kAz&}NYyQmi z@v@=jikCg~)n^3xaW_;e~zxXdta>Q9o`BM9) z<-1~oiv9V4SZL(+IbF(_&a0z;ODOs3$DGYd zcZ-YDe|qpGZC>rO>xMv_{ap6;;0=NIK|kmGy5K#*w+G)H{6O#{!H)+&6a0Mei^0bO zXXF#X?*yL?{x~@LsQ4S45u6w73$6{`7<_f`jluT?9}fN?`13#keO2(G;J1Q53m!I? z^A{`zPYAxKqkGf8DR@or&B1pBKN$RY@S#ARx-aF%SrzYyT$$f7WB%DQ=AScTURo3D8S_`qn7?Mm{L5#|-#lYpZA|m)6*J~vIb;6IX3T&2jQLm1m{+IM z?0NN!`Pa;tf9;Ix}s~&X|A4jQMwt<};k!Gj(57eb&6Q{N}(triL~5hMLy; zyrtY%>KeZ|Ed*NK!Q|u9_6FoT?~dLh1MN+LJEy5w(RY02=({uU^N7krulMAvt){om z;}?wh*wWkBpV8wEf!Fh_*I#mdj++(RX}*fvTE5PYboKU&iMB5gM|M;$>8n^*F4;EL z#|C-n<=R^@+?syxYw@kMZ~JIp#fa>RQR&!u2)w&Sy!$flZOU+^)~Ds8VsZLNj(N{u zjc>h7@fqt;r+gB3z+dk>CCgdztUNlGyeM8(ub#^W*3G(|FZd@us`t-xUV&`sn<5aq!~c_J)uV-}3io?3S-F zoMG{QesF!DRUExP@zZ-D`?PzO$>e=g_e}x6$M@P&=K2`2wPHh0?{6PNd~9-eu<4>; z*1n2q)jX<|{fBESIkR;3wwAtq;lC_6G0;l?-OIyC%uAj#!1rxIujk2aep+4ieB-)e zkLLt=bAiSlH9fY&nUd?nwaeaV{(H8uaeN56{n@X|*9Pv-FSsJSM!;;w?Tk zudb%)>El>(%fE4rTkmVUmw)LIkiUNw`OjQKe);*-5g(iT9QM!XXB`5sv)RY5waE6$OTyQIsc@9 zjIBY%=dScm32JZ6-#uggO*7{2nKA$78S`%$&1X3IyuTisZyoI|n{S&jfBTI2J7&zk zZpQpqj^^b=?A%qJO<#~gx+&DzyEb@4pjNEo^-fX!%B8XQS+&`pMe`>Fdjs`31X{_f zJ?1=X=Gt1-N}to>aek|I%l689@vvhp9=x-7%4Yi6uJ(pN8zz5F_o4X7JvHFZj==jn zn@$YKbBB>B7w*fW1M3w}{u_%met96v`{WgYTTC3p^rZn=fcKW*wE-K%#hKQu;VB!3 z^tEB~=W_h%bYGO-7pAY4mx5ki#fKkkC_hS<{d~~uqkEPQ$7W649T!3F$Z7vRs{Iuk zJbMEB7K5rc^`r5zbe8?5$ zvOwRo+PFINa?{7~ri|;|;kD@-lclzeQFd+(*v0k-Vka3(0bi=l*rl=i7Dbizx`1EK zl>6R1-}!B=Vv%k;=gXfFAD6MX6|9RBvCH?t@@GUjQU_!7pAq@4+27kcYs@~ia6zE) zi?0V8rp0nc)^-MSLERNqH{O5l4fw1c#e;uUZ?(?18v}K0?ju3fr&<U_ z&~aVXXVZ#%+4a2e${oAL=h_-yYOO!V*4R>O_4(s=hez zcUM5~_vh@IGv>p$W_)hwi7}wxQ|m9!y0{r@SGWCSI`ih)JY-%hYu~QMhsRkezK1n= zdonjo-*4uN8}DgsM0?xco3-+XTF-S$80ukXtn zo<6t6;*5H~LHUA~Z0Fl}Avir?I~ha%@wkx58MZ!-$>z+}KDM|wzb^ka7vD-}#c#|z zxzocdcjbHSna>=#d?gp}6S{xLOgt|PH1V1b&I?Y8V$a%F$AKN8I|IJJzJOgf2ipTR zRCk)X=+9vOx2-GxRt5XE1a)V4UN~FYLU2v+<@t{iyZIt$daI@@FY?V!l7PF5oje&^v<5 zf-elb4|~Rn-?(=1)>`k6`O??>qfTnRVpw_SAA5&D8zz6=XQMkr?)b>gJ6qrTdClLJ zKD&Q8b;UomOQ*(fx=Q~U=`RMFy6)G`%vc@G1=H$iA@l6r6|m>`ySs>O!ee4=wlu(S0;R%D)?KKm-J&OhJf#F*Y9awddjCsj)p9 zGWM*pZv3CyJ4=nK8JH9c)z&gG6=XZ3FbGIj;((w;tdK11Sn z{>gR5EB8mGueoc?lgaMtlS3Yx$XU&v?O7*p@~$4rPqx+>Q~%Ej<^uVCOc?N78`OP= z|D52lQ`W@S+T*6I$(gmsXN_z*83OIVuz0|jScck-o1f6Um1+~*}{&;1t$cL4Ct2Mrw9Dn(rDd{ zyEB#-by?@%+35GN*S;ap%J1@r-dX;TwG@y|X8GWragJBhQ?Ux$y51FjJm;D&@$nq5 zSXO?{&zwBZhe1p{Z`rQ@o^<9y<;mE7XK^8@{bH&H*zK98ZmfxO?RiT2_6&h`T!81g z;IhCwDI3L(EPKU{t?b?#jBBClE=!X*RQ!!g?b}_Iv1llRV{z-57e7mdphPR$c&aj5}^nm?j z|6=N)Vn{c+>=AEGEdMGHk3Qb~*%fHMXDs{7vu`OVyY$6}jU{JC`jta+#SZ^M(90@Y zdj5JB*%Ds%;#V7LnQk^*6>JXpLGIoFpYIm!!6)bDoINq4Tin^A)mq=5%fMb|VuOXW zs=EW}_h(A{$)daJfIU$+;Ui0vo08!e)+2|dzeSs#!TJ-lg>GEVFr9pDnur@%`_y&p9yGe4l9D z{i8O_i&1_5SNk3lzMe-s<}z1%$o`W!-`gM`wf~#4*6STc<0od^^M8N)ZmagcxBITE z-dD@kH?=kSVvlvYP-g&@D^wiqQxDJ1K05htO+L`tTl4%jU$V*a%-$4e#`K&QY}X&R4rO#1OIjh;;+VjCiPQt z#9V!s-|iWW%)V}ZpxeU^d&nTu*!{uw9l_3kJXns)#>xF9pC<*Sj}B+^)ELQD@;({7 zEI2I?b25tWv~}`rUnk#=Rrq>8V!}%8xPP*3g@EkCZ_nwtoI+X_~ae!altjg^?^p7`j*S52V%4( zFb}r`;^R&!9(LkkU*$gC`+e`nH_r_e#OdCE%-e&@g5OT;*~Vw~@#6_$@T}Pz@Z&(h zZqFt$ct}8o^;?6gQ+vFpmv;#+B0iSJjyRIcCVOI13wzb^{zns^V9%2#_Gg(kLs<)pUU{c zjJ3*TAGcX~*&KfN|FZ&e%Rhd|L)C+r^T(W4dVi|fWgi}Ofro81S9Nq@<}^N&rKvql zEu9kB8!?l-I=B6Oaa6`)y|>|Ds962$;MswFcLZu(eQ4I-7gSvFl1m1DXMa~9kIq@; zQ0x~2`|$4%%I>nkxVMSCil6tJs)2OZ?H_&Oz&>yfx>IJ^>^*)po3nLdH~%y;<+OkP zxiiFpKN=omxsXS>afdlqb=RJjzO$*}uiUMdpFf8pzrRD*(y=45cLs6;@=|t}9R9I^ z-SW@3pBTkb{?t*)6GNaMo)>sNYzjOZUK^OdGoZKU5#upW$tpP~P2rjA>-{ZP#^fyq`29WTlS9>{vwv^!mOyhR z$2@#?kDnLtSvpZJwrd(RHD zeIIN*_R;ry0hzZ2d?9meSJec0L!hz0bbYSkE^m(u*iRSR`napTY4LRj@YNY`=Pm?f zZ3?FGXZn8cPHG0)#Z&C8=NDV6e!@1%m9uw7Fs;UJ z%De>2>5u5AEd**$u2-u)_jJ{sGgP&w4ojXoTMRrqwSLW6v$mdk^x2hfRgdYe=&+xU z&i{^JXJAg_gLu3!aOUf*%J)+eAZvRY*w2re+n2r=?h45B9?q}v_aP;->V%w+24c&u z+XDCI(Sb((LV(|1vOR}9fB5kDM%m@rD@F%`;&rz9!ZtkhjBzK|z07ZG^wzVd5n^^bZDuPTH}-u1W8+e{SLTZTfXTV|SmFOmeEv2hYCx{(?+4zdd`{Xw4iO-`M8F z!n=F%-jw;;Uviz%nydYOzxttVo_*G9OeQ|{b4>W`Hx_IE4`cS%_!Fa_hkX5L{ML-w zUi^QapJlL@zOsuvW6$)`yCZyk+&)cd*Gx-y${mK_W$`e z%XU;e==}XQS9;9-W}9<|l)b-@xrb&<_U1OPUjBLGbq5vii`tyKq2?}cbMB3r`=ZSC zxj1Ds{-ySN*K}?R#73=(qq%W?RgL#~!^bz2-{?Z4Cy&Nk+E~o+@e|$AXstWP=Lh6! za>c&$f(sHP&xtRNarW&D#1yWW(1%Q(L2RX;%(H@vf@cKh1Vd!xzsbGu$DZe&@$7YM&6tjQmf~f{#eu!#v2Wix z_u{>H4I9gzOIG3Q<6X~w=fd901NV+5KVn}zTG=fx_Sds`);@gwKIhiH zdiN+Brs>4n?-c|5mjz;VT|mBh@*WbXLA6nKR($Pwbs&aMOJKz7>7nAp_Wm=vwP!S* zXU^a`Hau4a>Cx|75muXu_t8~e}fWQ^z3EnU|5>OK=U zHlX6;{*vcHDqi%; zpL2GzMZAYV8}nFa$Bk``-{LtRkXtdE#`69ADQj#}PxQu}$!BusziQ&?tvg-4VJo zAe$a>X6NPE!$17iK6}{1uG)8e`g{~Ccia$Y<8^Cz%vUXLO`kme zkVB8$(y4jYo)T0H-7WV9_3XU4_4kL?zCJGGlpWUDeQe!&kNf6ru4`Dvh`q_=NH@f;B1~0kZT|Nj}GW3^V)UD zlt;4I_`>iHq1rI{^Zt72DBc&X!RtON-WN~drSB!pzKV(SQ#s~ymha~yzOj!>tH@w4 zi0Am-Iq4g~ccz{bi~@nve|PIaEyy*Ic#P-k-U(ri>e_V&;Cl2vD( zzs?{#=-wX4zlOJ-0qoOm3g~3Z%c7&?)!oPzXKY76o^?NO*T|?j@zOWP-s>~2vxq+` zCUu6#Jy3iHSK%vN8ybJ<>SHXne8dw`EB04x%}?{&yB(kS$u{+KFc9Oqo9;|MM|koX z*>mQO;IiQK;F`cbJ~~$)4d}d~^XG#ZYg+<#kY|tg2xAa`vR@a-Hy_0B#&jMLTKVYf zy!MkNKV!M(ZwuJ^Yq6hiVsvyc_L=VTmn?O9QBeM|q5Q*Jx_ZCG%shY8Yw_D_Uj2D~ z*1Wyu<&!V$+8p3lyJQr^^h*;9cb0YWsJPCjU(cJ@r_b->gS~;cTI=I_ea7x?wp3i7 zkp5yIM(T2ZQ0F$?Np5Zr6-&Q!Qn6(F34uK&>+JLwf?ERdW>3XiY>e^tXV4s5>kQr$ zUrXNj4BiuF_oO=EqjPyi;Mrk6Tg+EJ-;%y2zG~{_kuAS-ZG3aa;z6JHV)3=VY?N=Y zDSP&$zYxfUec8UkyW0Dac=G>1K);;JtNf5b=dFPllgrka^I2=`)|}m?fLwfaFZB1) zte80C@+pRo3C4Vn&s;r=)M@!H&SFtD)UQzDF^5bVC8eVx3H}=OL7-sJ&v{?=_~+`Z)Jws~PKRjBGJ3d##H*edC<6k!f_v zDLdRN+P>g|fb3I(A<*PgLo283t9Xe$ThwE{yX;DzuFW}<R`Le)TFcD)#D1?A4R|vuu)sJ|?eOMON+MzkJIHKl=G?8K2wc>-psDZ4daJZ7b)c z_{5jY{&|z(%6YTqU9#fF2WMS77Kz!|CqqaBbWuBR_TG93e{Te$;-|^|&TXNH##JG=J$tvF7rr#Oa zL}&T8KmCeD`6Y*NMWCne{zBR5o?;IQ?A{vi)AMH*pJ!Ijr`BH^L)lvX$$@9kVxSgo z&0^)I=Bqx(^WyE!cP_k>v29a>IsLj{Q1&`Y?3xeM{DD9`_&~n1u4c=|dM;G0?aP|j z41qmjp|ADNhKlW6=1VqT_XG<;+0K@-nZI?$#}pr3yMl)V|6)px`ByQzBz=0yKfdy5 zyq>9v-RrgYr101KFT2TPYf*j~*YgkUV27PWzj`xfCfKK_5v&xY=WHUX}?r$|<&!vGg zNXPAgd-3$3U*k{dEZb{c4#)Q6H_spP^~o#%ppNkfPA<%}&pUd^I zKmB@tGObSVmak-x#UE>BFG{!gY-oLFimj&xY~3D+kGm1C_fz9-fjyd>mJWA9*?n#L z9}DQU&L{doO_V%2+Zv$aKZ}pPo^MCSI|I3Oclj(*zL8a*C7qdF!CdewQ_gyw>xuy% z`CdNNy`^roO9E>b2YlHVTo{nguOZN!2dzIBY}M3)I9?X8bDS&lbx+b)@!FHV&ryqk zxXO!$N9@HEj~wFBtck&RjV=5b0!^+r1m>$hjp+ zc#1Jy>R#jHpp(|eu4=nKD|}oC_$l{a7ls}Ghb(to%~bd{h93d z;pyvpSH^0u_Fb4h``D~5Yu?!qAMvQUi_*v2^U0YxO~0PG_VoD`Lps>QZ~YQHU zsX6=kD?VZ^k9fv4R<(5?Yuf|0tzJ>G+1Q_dGAeJCBe9(&e;R+-SL&O5IlIDSw9*Ui zL3Al#7ai_J{ACwk+#}+*7>Muwp!n0B@Q>w}?Dfd!{A1K`g=yq_~?AO z8_OSc>-(=rRb1(OQO12-FC2{@+sUwx-tq&jXObGB*V(->zpvNlnGNORF{9t*`%r$D zuY6(8>$-nal|DKi+9=0?!PVnK51|N^GD-tqw!z;<$W=k=8tnnhn%5X8r|0D zX`yuU=}Yqu`SiLUnsMc)_B(6jI6Go>exOb?HH+`O;PyD_dGN;x!j90LLAn!M5vp3% zfci17rq2ytmwo2c+b4sU1#G0F=euJSzOlYK)8-cfK3)~v6u6(f!?2w{#d}8ji$Q-U zoSm`#YC(>R_ssP1%Afgqw&KOJClE(GHFnml*ZaG9cb%AsMaizaO+D5;KDn;3Tozy5 z$0aYUQ~7FLtjQs-&t?B^RDLJqliZ76*|$4=e$7o;JFBgQeAd2-nK(enQv>26A7XzX z*dCBi|CrCbxoO|M^>rZM?jCi7|46(`%T?XO;ywi0)yrf;`5_1LU$(0UK2{xmefm|0 z&Q?83(T_B~&7taZ8sEXTW^W%Ow#^6P*zd!0ZSb++^5FEK;-Z!=4A{r!z7EuhT&wf) z<)ZY9m;R~^=l`gT@oUz|D<1W{C2+r%tV_}-Ybjvk5NKk!A#k7IDPPQweX({VeBo=^ z%D(c4ea3Rg*YeLfwx-qIvA=l7d#CwdGJ3zA5pkDOaUIuN)!BipIWKbVETLk=rdtE~ zb`HoG$6btP$)Cm__DPM4`Ly>$=TF-g(98bo0($%Rx(p|u?fJycva7$-_G3zu|Nbsi zuf=D+_%2PK@BRJS^N!!^*t#cM%wJrFZK^=pS>6W!$1el;{r|7n?Lqq><3&I!IUiqwL3Y_Mz6%m3>) z?~Uw(TA$Td|MYpb*iZIXwD-<>@7mO@{nPe$U&PH_=kBpj9v_yq-i|-&-W}<&=fXg9 z7R-4MxifyaH=Yq8m1Dkw_+Hog@=c#S+bdTno~H$ygX01|;9(yse{`>xs`2@N-(o|r zTJZP8)Yd}K-#h($#hY$CRYw_47{`!IvdMVEI%E{@8^c>UDt&Bbf9dLF-*pJG?_NcAz3cFc zFKfN)h&OxqCk_!k@wc8AYSp^>BXj)h$<*XI(C5n>zFmR6pUAmq%bviwS_~>S?!l8Y zUI^ImrWn8m{M!PxiNEIjELDx+$Mf_+?HHTqzk8Fdbe)oTn!v;V69fKS8C2}ko%sIdFyrg}7RT|Naep_^F`gST zr}aAab>kiB?+o~^`P`y5$>9rs*(qOQwJXs6WJ)gah#8)2{U`q3COLh+>;B;z-F?13 zkg?}yeV0NHsCVAH3mViBQN5DR|sIlhrPTP z6)QQiw_iIeV}A2zyjC?RzVxw;ymJG-xI^UpK(IZS#h0a(&yxGn7wek?GWk3N8W~3g zJA$39A9BBU7`4Mza_T+8zPX_G;W3swaglG$zY9|Fbq=-!>KdQ<{vN6ry)*%pU%X-~ zw|GBjkS2Ehy#MD8`^@umZ@^En#m5#t{!C|!dHfaM`W#^Y{(ygY%0Dre%i`aYzI^c2 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 diff --git a/pycaml/pycaml.o b/pycaml/pycaml.o deleted file mode 100644 index 8c662e1070899fbf3ab2b87924cbd1458237a8bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34512 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 diff --git a/pycaml/pycaml_ml.o b/pycaml/pycaml_ml.o deleted file mode 100644 index 9716b92877ccaf9a40c011d24798976621657698..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33072 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 literal 0 HcmV?d00001 diff --git a/python/coccilib/elems.pyc b/python/coccilib/elems.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f540d239761d3c6ae1d1896f404e1bd57d8b7f73 GIT binary patch literal 2274 zcmc&#+iKfD5S{fcwp;f?N?S@kz%Q-dO9>@ypn;OY1`74d;z(<3Q>|7{9zS?)}e({|Hgy~uA(M~oKO4&bn)$L`C? zwYk!|oV1UxE*Cz=zc$({%-?CWy5A>lb{sb)rCN(tmM>KzL7VQzh*`BCy1wZsQp*yK zCas;|0YpRU7T6IccexKw5I>RyVn!xibAxxyf;7OP5gN#xs!^%6L!MNO?Od!D&OL*< zrVG*Dp^JS4UsEQvw#!+b3Ow<&Ry{N5=pk^D;nWGU;1?<8^kP+xAn~8EhDT%|kXy9j zwl?+HZYlbR{gN5pn>LDS*R)YC91tJ-5y#7a;S0I)f*`m$`EuH9M~w*nRqvBqmM`3T bgtJ@SHvMS4tG`)?+=Ixk>i%HA`@H`LevH^I literal 0 HcmV?d00001 diff --git a/python/coccilib/org.pyc b/python/coccilib/org.pyc new file mode 100644 index 0000000000000000000000000000000000000000..333eeca5c09f1358ecd08d67782f02fdd1922578 GIT binary patch literal 2500 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 Hwr+m`w#v3q literal 0 HcmV?d00001 diff --git a/python/coccilib/report.pyc b/python/coccilib/report.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b738d33aca00a208c3a0338a7feb107124c3add9 GIT binary patch literal 657 zcmcIgO-lnY5S`t%qD2ur2;KxK?4{-|B7%yFutIw4r61YU2C~Vr$$~=hV*j9j#b4me zY$^Byy6n6>CYd+$=I8ggKmD4%D%gA}o_84G9H9hQ1B{U*P^Pd>V2mV#QND+_ir!M} zW87neO9Xtn0x-bX@sxQ6s{|H3I2+|uRD=`6LAd6Bhqs_IhUlhQxkP#T-=zTjvEt2Hv>&05B|-ti)~Veo6481)wkPC9%g?| CIg{%E literal 0 HcmV?d00001 diff --git a/python/no_pycocci.ml b/python/no_pycocci.ml index 9148edc..6aa57a8 100644 --- a/python/no_pycocci.ml +++ b/python/no_pycocci.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/python/no_pycocci_aux.ml b/python/no_pycocci_aux.ml index de13d3e..fece60d 100644 --- a/python/no_pycocci_aux.ml +++ b/python/no_pycocci_aux.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/python/yes_pycocci.ml b/python/yes_pycocci.ml index e768e31..fa753e9 100644 --- a/python/yes_pycocci.ml +++ b/python/yes_pycocci.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -127,7 +107,7 @@ let pycocci_get_class_type fqn = let pycocci_instantiate_class fqn args = let class_type = pycocci_get_class_type fqn in - let obj = pyobject_callobject(class_type, args) in + let obj = pyeval_callobject(class_type, args) in check_return_value obj; obj @@ -307,7 +287,9 @@ let set_coccifile cocci_file = () let pyrun_simplestring s = - Pycaml.pyrun_simplestring s + let res = Pycaml.pyrun_simplestring s in + check_int_return_value res; + res let py_isinitialized () = Pycaml.py_isinitialized () diff --git a/python/yes_pycocci_aux.ml b/python/yes_pycocci_aux.ml index db6d4df..bac7745 100644 --- a/python/yes_pycocci_aux.ml +++ b/python/yes_pycocci_aux.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/scripts/extract_c_and_res.pl b/scripts/extract_c_and_res.pl index 4b2e6d6..8620f3f 100755 --- a/scripts/extract_c_and_res.pl +++ b/scripts/extract_c_and_res.pl @@ -1,4 +1,6 @@ -# Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen +# Copyright 2010, INRIA, University of Copenhagen +# Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix # This file is part of Coccinelle. # diff --git a/scripts/extract_examples.pl b/scripts/extract_examples.pl index d469294..a474c25 100755 --- a/scripts/extract_examples.pl +++ b/scripts/extract_examples.pl @@ -1,4 +1,6 @@ -# Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen +# Copyright 2010, INRIA, University of Copenhagen +# Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix # This file is part of Coccinelle. # diff --git a/scripts/extractor_README.pl b/scripts/extractor_README.pl index acab1c0..cb5347b 100755 --- a/scripts/extractor_README.pl +++ b/scripts/extractor_README.pl @@ -1,4 +1,6 @@ -# Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen +# Copyright 2010, INRIA, University of Copenhagen +# Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix # This file is part of Coccinelle. # diff --git a/scripts/gather_failed.pl b/scripts/gather_failed.pl index fa5abca..f877d2b 100755 --- a/scripts/gather_failed.pl +++ b/scripts/gather_failed.pl @@ -1,4 +1,6 @@ -# Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen +# Copyright 2010, INRIA, University of Copenhagen +# Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix # This file is part of Coccinelle. # diff --git a/scripts/readme.pl b/scripts/readme.pl index 14758f3..21ba994 100755 --- a/scripts/readme.pl +++ b/scripts/readme.pl @@ -1,4 +1,6 @@ -# Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen +# Copyright 2010, INRIA, University of Copenhagen +# Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix # This file is part of Coccinelle. # diff --git a/scripts/stat_directories.pl b/scripts/stat_directories.pl index 6eb25e0..ae064ff 100755 --- a/scripts/stat_directories.pl +++ b/scripts/stat_directories.pl @@ -1,4 +1,6 @@ -# Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen +# Copyright 2010, INRIA, University of Copenhagen +# Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix # This file is part of Coccinelle. # diff --git a/scripts/stat_directories_complete.pl b/scripts/stat_directories_complete.pl index 3363f22..4327842 100755 --- a/scripts/stat_directories_complete.pl +++ b/scripts/stat_directories_complete.pl @@ -1,4 +1,6 @@ -# Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen +# Copyright 2010, INRIA, University of Copenhagen +# Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix # This file is part of Coccinelle. # diff --git a/scripts/stat_directory_complete.pl b/scripts/stat_directory_complete.pl index e7d0064..03b0904 100755 --- a/scripts/stat_directory_complete.pl +++ b/scripts/stat_directory_complete.pl @@ -1,4 +1,6 @@ -# Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen +# Copyright 2010, INRIA, University of Copenhagen +# Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix # This file is part of Coccinelle. # diff --git a/test.ml b/test.ml index ea77806..a10fce0 100644 --- a/test.ml +++ b/test.ml @@ -1,3 +1,27 @@ +(* + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen + * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix + * This file is part of Coccinelle. + * + * Coccinelle is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, according to version 2 of the License. + * + * Coccinelle is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Coccinelle. If not, see . + * + * The authors reserve the right to distribute this or future versions of + * Coccinelle under other licenses. + *) + + (* * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix diff --git a/testing.ml b/testing.ml index 045c54b..a224807 100644 --- a/testing.ml +++ b/testing.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -43,6 +23,7 @@ open Common +open Sexplib (*****************************************************************************) (* Test framework *) @@ -480,10 +461,11 @@ let test_parse_cocci file = Parse_cocci.process file (Some !Config.std_iso) false in xs +> List.iter Pretty_print_cocci.unparse; Printf.printf "grep tokens\n"; - List.iter (function x -> Printf.printf "%s\n" (String.concat " " x)) - grep_tokens; + (match grep_tokens with + None -> pr "No query" + | Some x -> pr (String.concat " || " x)); match !Flag.scanner with - Flag.NoScanner -> () + Flag.NoScanner | Flag.Grep -> () | Flag.Glimpse | Flag.Google _ -> (match query with None -> pr "No query" diff --git a/testing.mli b/testing.mli index f0822d1..6ebf7b2 100644 --- a/testing.mli +++ b/testing.mli @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -90,7 +70,7 @@ val sp_of_file : (*fresh used after list seeds*) Ast_cocci.meta_name list list list) * Ast_cocci.meta_name list list list * - string list list * + string list option * string list option (* TODO: Remove diff --git a/tests/SCORE_expected.sexp b/tests/SCORE_expected.sexp index de9cd74..b88540e 100644 --- a/tests/SCORE_expected.sexp +++ b/tests/SCORE_expected.sexp @@ -7,7 +7,8 @@ (bad_iso_example.res (Pb "INCORRECT:diff token: ( VS x\nFile \"tests/bad_iso_example.c\", line 2, column 6, charpos = 19\n around = '(', whole content = if ((x = 3)) return;\nFile \"tests/bad_iso_example.res\", line 2, column 6, charpos = 19\n around = 'x', whole content = if (x) return;\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,4 +1,4 @@\n int main() {\n - if ((x = 3)) return;\n + if (x) return;\n }\n \n")) - (bad_ptr_print.res Ok) (bad_typedef.res Ok) (badexp.res Ok) + (bad_kfree.res Ok) (bad_ptr_print.res Ok) (bad_typedef.res Ok) + (badexp.res Ok) (badpos.res (Pb "PROBLEM\n exn = Failure(\"rule starting on line 1: already tagged token:\\nC code context\\nFile \\\"tests/badpos.c\\\", line 5, column 30, charpos = 139\\n around = 'reg_ptr', whole content = \\t (int) -(((struct pt_regs *) reg_ptr)->orig_eax + 2));\")\n")) @@ -17,9 +18,10 @@ (Pb "INCORRECT:diff token: PF_FREEZE VS )\nFile , line 12, column 16, charpos = 390\n around = 'PF_FREEZE', whole content = \t\t\trefrigerator(PF_FREEZE);\nFile \"tests/bugloop.res\", line 8, column 16, charpos = 160\n around = ')', whole content = \t\t\trefrigerator();\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,7 +1,3 @@\n -/* this doesn't work, because on the paths where we don't find refrigerator,\n -we expect to reach Exit without first going through current->flags & PF_FREEZE,\n -but of course any path that goes around the loop does precisely that */\n -\n static int stir_transmit_thread(void *arg)\n {\n \n @@ -9,7 +5,7 @@\n \t{\n \t\t/* if suspending, then power off and wait */\n \t\tif (unlikely(freezing(current))) {\n -\t\t\trefrigerator(PF_FREEZE);\n +\t\t\trefrigerator();\n \n \t\t}\n \t}\n")) (bugon.res Ok) (cards.res Ok) (cast.res Ok) (cast_iso.res Ok) (com.res Ok) - (compare.res Ok) (const.res Ok) (const1bis.res Ok) (const_adding.res Ok) - (const_array.res Ok) (const_implicit_iso.res Ok) (constty.res Ok) - (constx.res Ok) (cs_check.res Ok) (cst.res Ok) (csw.res Ok) + (comments.res Ok) (compare.res Ok) (const.res Ok) (const1bis.res Ok) + (const_adding.res Ok) (const_array.res Ok) (const_implicit_iso.res Ok) + (constty.res Ok) (constx.res Ok) (cs_check.res Ok) (cst.res Ok) + (cst_null.res Ok) (csw.res Ok) (dbg.res (Pb "INCORRECT:diff token: else VS (\nFile , line 8, column 2, charpos = 133\n around = 'else', whole content = \t\telse pr = NULL;(\"PCI\");\nFile \"tests/dbg.res\", line 7, column 5, charpos = 130\n around = '(', whole content = \t\tDBG(\"PCI\");\n\n diff (result(<) vs expected_result(>)) = \n @@ -4,6 +4,6 @@\n \tstruct resource *pr, *r = &dev->resource[idx];\n \n \tif (pr)\n -\t\tDBG\n -\t\telse pr = NULL;(\"PCI\");\n +\t\tDBG(\"PCI\");\n +\telse pr = NULL;\n }\n")) @@ -31,11 +33,12 @@ (decl_split.res (Pb "INCORRECT:diff token: int VS }\nFile \"tests/decl_split.c\", line 2, column 8, charpos = 27\n around = 'int', whole content = int x, y;\nFile \"tests/decl_split.res\", line 2, column 0, charpos = 19\n around = '}', whole content = }\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,3 +1,2 @@\n int func(int i) { \n - int x, y;\n }\n")) - (define_exp.res Ok) (define_param.res Ok) (deftodo.res Ok) - (delete_function.res Ok) (deref.res Ok) (devlink.res Ok) (disjexpr.res Ok) - (disjexpr_ver1.res Ok) (disjexpr_ver2.res Ok) (distribute.res Ok) - (double.res Ok) (double_assign.res Ok) (double_switch.res Ok) - (doublepos.res Ok) (doubleswitch.res Ok) + (decl_star.res Ok) (define_exp.res Ok) (define_param.res Ok) + (deftodo.res Ok) (delete_function.res Ok) (deref.res Ok) (devlink.res Ok) + (disjexpr.res Ok) (disjexpr_ver1.res Ok) (disjexpr_ver2.res Ok) + (distribute.res Ok) (double.res Ok) (double_assign.res Ok) + (double_lines.res Ok) (double_switch.res Ok) (doublepos.res Ok) + (doubleswitch.res Ok) (doundo.res (Pb "INCORRECT:diff token: xxx VS new_foo\nFile , line 7, column 2, charpos = 85\n around = 'xxx', whole content = xxx();\nFile \"tests/doundo.res\", line 7, column 2, charpos = 85\n around = 'new_foo', whole content = new_foo();\n\n diff (result(<) vs expected_result(>)) = \n @@ -4,5 +4,5 @@\n {\n const s8 (*queue_priority_mapping)[2];\n s8 *noevent;\n - xxx();\n + new_foo();\n }\n")) @@ -44,10 +47,11 @@ (enum.res Ok) (exp.res Ok) (expnest.res Ok) (expopt.res Ok) (expopt2.res Ok) (expopt3.res Ok) (expopt3_ver1.res Ok) (expopt3_ver2.res Ok) (fields.res Ok) (fieldsmin.res Ok) (find_long.res Ok) (fix_flow_need.res Ok) - (fn_todo.res Ok) (fnptr.res Ok) (fnret.res Ok) (four.res Ok) (foura.res Ok) - (fp.res Ok) (fsh.res Ok) (fun.res Ok) (gilles-question.res Ok) - (gotobreak.res Ok) (hd.res Ok) (headers.res Ok) (hex.res Ok) (hil1.res Ok) - (if.res Ok) (ifbr.res Ok) (ifdef1.res Ok) (ifdef2.res Ok) + (fn_todo.res Ok) (fnptr.res Ok) (fnret.res Ok) (fnty.res Ok) (four.res Ok) + (foura.res Ok) (fp.res Ok) (fsh.res Ok) (fun.res Ok) + (gilles-question.res Ok) (gotobreak.res Ok) (hd.res Ok) (headers.res Ok) + (hex.res Ok) (hil1.res Ok) (if.res Ok) (ifbr.res Ok) (ifdef1.res Ok) + (ifdef2.res Ok) (ifdef3.res (Pb "PROBLEM\n exn = Lexer_cocci.Lexical(\"unrecognised symbol, in token rule: #\")\n")) @@ -64,8 +68,8 @@ (incl.res Ok) (inclifdef.res Ok) (include.res Ok) (incompatible_value.res Ok) (inherited.res Ok) (inherited_ver1.res Ok) (inhpos.res Ok) (initializer.res Ok) (initializer_many_fields.res Ok) - (inline.res Ok) (isococci.res Ok) (isotest.res Ok) (isotest2.res Ok) - (iterator.res Ok) + (inline.res Ok) (insdef.res Ok) (isococci.res Ok) (isotest.res Ok) + (isotest2.res Ok) (iterator.res Ok) (jloop1.res (Pb "PROBLEM\n exn = Failure(\"minus: parse error: \\n = File \\\"tests/jloop1.cocci\\\", line 10, column 3, charpos = 129\\n around = '...>', whole content = ...>\\n\")\n")) @@ -83,15 +87,19 @@ (metastatement_if.res Ok) (mini_null_ref.res (Pb - "INCORRECT:diff token: if VS struct\nFile , line 6, column 8, charpos = 269\n around = 'if', whole content = if (!pdata) {\nFile \"tests/mini_null_ref.res\", line 6, column 8, charpos = 269\n around = 'struct', whole content = struct w90p910_keypad *keypad;\n\n diff (result(<) vs expected_result(>)) = \n @@ -3,6 +3,8 @@\n const struct w90p910_keypad_platform_data *pdata =\n pdev->dev.platform_data;\n const struct matrix_keymap_data * keymap_data;\n + struct w90p910_keypad *keypad;\n +\n if (!pdata) {\n dev_err(&pdev->dev, \"no platform data defined\\n\");\n return -EINVAL;\n")) + "INCORRECT:diff token: if VS struct\nFile , line 6, column 8, charpos = 268\n around = 'if', whole content = if (!pdata) {\nFile \"tests/mini_null_ref.res\", line 6, column 8, charpos = 269\n around = 'struct', whole content = struct w90p910_keypad *keypad;\n\n diff (result(<) vs expected_result(>)) = \n @@ -2,7 +2,9 @@\n {\n const struct w90p910_keypad_platform_data *pdata =\n pdev->dev.platform_data;\n - const struct matrix_keymap_data *keymap_data;\n + const struct matrix_keymap_data * keymap_data;\n + struct w90p910_keypad *keypad;\n +\n if (!pdata) {\n dev_err(&pdev->dev, \"no platform data defined\\n\");\n return -EINVAL;\n")) (minstruct.res Ok) (minusdots.res Ok) (minusdots_ver1.res Ok) (multi_func1.res (Pb "PROBLEM\n exn = Failure(\"minus: parse error: \\n = File \\\"tests/multi_func1.cocci\\\", line 12, column 2, charpos = 102\\n around = 'fn2', whole content = fn2(...) {\\n\")\n")) (multiplus.res Ok) (multitype.res Ok) (multitypedef.res Ok) - (multivars.res Ok) (nest.res Ok) (nestone.res Ok) (nestseq.res Ok) - (neststruct.res Ok) (nl.res Ok) (nocast.res Ok) (not.res Ok) (notest.res Ok) - (noty.res Ok) (null_type.res Ok) + (multivars.res Ok) (na.res Ok) (nameless.res Ok) (nest.res Ok) + (nestone.res Ok) (nestseq.res Ok) (neststruct.res Ok) (nl.res Ok) + (nocast.res Ok) (not.res Ok) (notest.res Ok) (noty.res Ok) + (null_bool.res + (Pb + "INCORRECT:diff token: ) VS !=\nFile , line 2, column 8, charpos = 22\n around = ')', whole content = if (12) return;\nFile \"tests/null_bool.res\", line 2, column 9, charpos = 23\n around = '!=', whole content = if (12 != NULL) return;\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,6 +1,6 @@\n int main () {\n - if (12) return;\n - if (a && 12 && b) return;\n + if (12 != NULL) return;\n + if (a && 12 != NULL && b) return;\n if (12) return;\n if (a && 12 && b) return;\n x = x + 20;\n")) + (null_type.res Ok) (oddifdef.res (Pb "INCORRECT:diff token: #else\n VS x\nFile , line 10, column 0, charpos = 114\n around = '#else\n', whole content = #else\nFile \"tests/oddifdef.res\", line 10, column 2, charpos = 116\n around = 'x', whole content = x = 0;\n\n diff (result(<) vs expected_result(>)) = \n @@ -7,8 +7,9 @@\n a = 5;\n \n #ifdef FOO\n + x = 0;\n #else\n - \n + x = 0;\n #endif\n }\n \n @@ -21,8 +22,9 @@\n a = 3;\n \n #ifdef FOO\n + x = 0;\n #else\n - \n + x = 0;\n #endif\n }\n \n @@ -35,7 +37,8 @@\n #endif\n \n #ifdef FOO\n + x = 0;\n #else\n - \n + x = 0;\n #endif\n }\n")) @@ -101,7 +109,7 @@ (partial.res Ok) (pb_distribute_type.res (Pb - "INCORRECT:PB parsing only in generated-file\n diff (result(<) vs expected_result(>)) = \n @@ -5,11 +5,11 @@\n \n \n int foo() {\n - int * *x;\n + int **x;\n return 0;\n }\n \n int foo() {\n - int[45] *x;\n + int (*x)[45];\n return 0;\n }\n")) + "INCORRECT:PB parsing only in generated-file\n diff (result(<) vs expected_result(>)) = \n @@ -10,6 +10,6 @@\n }\n \n int foo() {\n - int[45] *x;\n + int (*x)[45];\n return 0;\n }\n")) (pb_distribute_type2.res (Pb "INCORRECT:PB parsing only in generated-file\n diff (result(<) vs expected_result(>)) = \n @@ -1,5 +1,5 @@\n int foo() {\n - int* x;\n + int *x;\n return 0;\n }\n \n @@ -10,6 +10,6 @@\n }\n \n int foo() {\n - int x[45]*;\n + int (*x)[45];\n return 0;\n }\n")) @@ -112,10 +120,7 @@ (posiso.res Ok) (positionc.res Ok) (post.res Ok) (print_return.res Ok) (proto.res Ok) (proto2.res Ok) (proto_ver1.res Ok) (proto_ver2.res Ok) (protoassert.res Ok) (protox.res Ok) (rcu3.res Ok) (regexp.res Ok) - (regexp2.res Ok) (regexp3.res Ok) - (remstruct.res - (Pb - "INCORRECT:not same number of entities (func, decl, ...)\n diff (result(<) vs expected_result(>)) = \n @@ -1,10 +1,3 @@\n -\n - .ack = mpuio_ack_irq,\n - .mask = mpuio_mask_irq,\n - .unmask = mpuio_unmask_irq\n -\n - .b = 15,\n -\n int hello ( String input )\n {\n String input = input.lowercase();\n")) + (regexp2.res Ok) (regexp3.res Ok) (remstruct.res Ok) (replace_typedef.res Ok) (reserved.res Ok) (retmacro.res Ok) (rets.res Ok) (return.res Ok) (return_implicit.res Ok) (retval.res Ok) (same_expr.res Ok) (scope_problem.res @@ -126,10 +131,9 @@ "INCORRECT:diff token: init_MUTEX VS mutex_init\nFile \"tests/serio.c\", line 7, column 1, charpos = 130\n around = 'init_MUTEX', whole content = \tinit_MUTEX(&serio->drv_sem);\nFile \"tests/serio.res\", line 7, column 1, charpos = 130\n around = 'mutex_init', whole content = \tmutex_init(&serio->new_lock);\n\n diff (result(<) vs expected_result(>)) = \n @@ -4,5 +4,5 @@\n \n static void serio_init_port(struct serio *serio)\n {\n -\tinit_MUTEX(&serio->drv_sem);\n +\tmutex_init(&serio->new_lock);\n }\n")) (shared_brace.res Ok) (signed.res Ok) (sis.res Ok) (sizeof.res Ok) (sizeof_julia.res Ok) (sizestar.res Ok) (skip.res Ok) (sp.res Ok) - (spaces.res Ok) (spl.res Ok) - (static.res (Pb "PROBLEM\n exn = Common.Impossible\n")) (stm1.res Ok) - (stm10.res Ok) (stm10_ver1.res Ok) (stm2.res Ok) (stm3.res Ok) (stm4.res Ok) - (stm5.res Ok) (stm6.res Ok) (stm7.res Ok) (stm8.res Ok) (stmt.res Ok) + (spaces.res Ok) (spl.res Ok) (static.res Ok) (stm1.res Ok) (stm10.res Ok) + (stm10_ver1.res Ok) (stm2.res Ok) (stm3.res Ok) (stm4.res Ok) (stm5.res Ok) + (stm6.res Ok) (stm7.res Ok) (stm8.res Ok) (stmt.res Ok) (str_init.res Ok) (strangeorder.res Ok) (string.res Ok) (struct.res Ok) (struct_metavar.res Ok) (struct_typedef.res Ok) (structfoo.res Ok) (substruct.res Ok) (sw.res Ok) (switch.res Ok) (switchdecl.res Ok) diff --git a/tests/SCORE_expected.sexp.save b/tests/SCORE_expected.sexp.save new file mode 100644 index 0000000..de9cd74 --- /dev/null +++ b/tests/SCORE_expected.sexp.save @@ -0,0 +1,162 @@ +((a.res Ok) (a3d.res Ok) (a_and_e.res Ok) (a_and_e_ver1.res Ok) (ab.res Ok) + (addaft.res Ok) (addbefore.res Ok) (addbeforeafter.res Ok) (addelse.res Ok) + (addif.res Ok) (addif1.res Ok) (addif2.res Ok) (addtoo.res Ok) + (after_if.res Ok) (anon.res Ok) (ar.res Ok) (arg.res Ok) (argument.res Ok) + (array_init.res Ok) (array_size.res Ok) (arraysz.res Ok) (b1.res Ok) + (b2.res Ok) + (bad_iso_example.res + (Pb + "INCORRECT:diff token: ( VS x\nFile \"tests/bad_iso_example.c\", line 2, column 6, charpos = 19\n around = '(', whole content = if ((x = 3)) return;\nFile \"tests/bad_iso_example.res\", line 2, column 6, charpos = 19\n around = 'x', whole content = if (x) return;\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,4 +1,4 @@\n int main() {\n - if ((x = 3)) return;\n + if (x) return;\n }\n \n")) + (bad_ptr_print.res Ok) (bad_typedef.res Ok) (badexp.res Ok) + (badpos.res + (Pb + "PROBLEM\n exn = Failure(\"rule starting on line 1: already tagged token:\\nC code context\\nFile \\\"tests/badpos.c\\\", line 5, column 30, charpos = 139\\n around = 'reg_ptr', whole content = \\t (int) -(((struct pt_regs *) reg_ptr)->orig_eax + 2));\")\n")) + (badtypedef.res Ok) (badzero.res Ok) (befS.res Ok) (ben.res Ok) + (bitfield.res Ok) (braces.res Ok) (break.res Ok) (bug1.res Ok) + (bugloop.res + (Pb + "INCORRECT:diff token: PF_FREEZE VS )\nFile , line 12, column 16, charpos = 390\n around = 'PF_FREEZE', whole content = \t\t\trefrigerator(PF_FREEZE);\nFile \"tests/bugloop.res\", line 8, column 16, charpos = 160\n around = ')', whole content = \t\t\trefrigerator();\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,7 +1,3 @@\n -/* this doesn't work, because on the paths where we don't find refrigerator,\n -we expect to reach Exit without first going through current->flags & PF_FREEZE,\n -but of course any path that goes around the loop does precisely that */\n -\n static int stir_transmit_thread(void *arg)\n {\n \n @@ -9,7 +5,7 @@\n \t{\n \t\t/* if suspending, then power off and wait */\n \t\tif (unlikely(freezing(current))) {\n -\t\t\trefrigerator(PF_FREEZE);\n +\t\t\trefrigerator();\n \n \t\t}\n \t}\n")) + (bugon.res Ok) (cards.res Ok) (cast.res Ok) (cast_iso.res Ok) (com.res Ok) + (compare.res Ok) (const.res Ok) (const1bis.res Ok) (const_adding.res Ok) + (const_array.res Ok) (const_implicit_iso.res Ok) (constty.res Ok) + (constx.res Ok) (cs_check.res Ok) (cst.res Ok) (csw.res Ok) + (dbg.res + (Pb + "INCORRECT:diff token: else VS (\nFile , line 8, column 2, charpos = 133\n around = 'else', whole content = \t\telse pr = NULL;(\"PCI\");\nFile \"tests/dbg.res\", line 7, column 5, charpos = 130\n around = '(', whole content = \t\tDBG(\"PCI\");\n\n diff (result(<) vs expected_result(>)) = \n @@ -4,6 +4,6 @@\n \tstruct resource *pr, *r = &dev->resource[idx];\n \n \tif (pr)\n -\t\tDBG\n -\t\telse pr = NULL;(\"PCI\");\n +\t\tDBG(\"PCI\");\n +\telse pr = NULL;\n }\n")) + (dbg1.res + (Pb + "INCORRECT:diff token: E VS (\nFile , line 5, column 2, charpos = 75\n around = 'E', whole content = \t\tE = NULL;(\"PCI\");\nFile \"tests/dbg1.res\", line 4, column 5, charpos = 72\n around = '(', whole content = \t\tDBG(\"PCI\");\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,6 +1,6 @@\n \n static inline void alloc_resource(struct pci_dev *dev, int idx)\n {\n -\t\tDBG\n -\t\tE = NULL;(\"PCI\");\n +\t\tDBG(\"PCI\");\n +\t\tE = NULL;\n }\n")) + (dc_close.res Ok) (debug.res Ok) (dec.res Ok) (decl.res Ok) (decl2.res Ok) + (decl_space.res Ok) + (decl_split.res + (Pb + "INCORRECT:diff token: int VS }\nFile \"tests/decl_split.c\", line 2, column 8, charpos = 27\n around = 'int', whole content = int x, y;\nFile \"tests/decl_split.res\", line 2, column 0, charpos = 19\n around = '}', whole content = }\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,3 +1,2 @@\n int func(int i) { \n - int x, y;\n }\n")) + (define_exp.res Ok) (define_param.res Ok) (deftodo.res Ok) + (delete_function.res Ok) (deref.res Ok) (devlink.res Ok) (disjexpr.res Ok) + (disjexpr_ver1.res Ok) (disjexpr_ver2.res Ok) (distribute.res Ok) + (double.res Ok) (double_assign.res Ok) (double_switch.res Ok) + (doublepos.res Ok) (doubleswitch.res Ok) + (doundo.res + (Pb + "INCORRECT:diff token: xxx VS new_foo\nFile , line 7, column 2, charpos = 85\n around = 'xxx', whole content = xxx();\nFile \"tests/doundo.res\", line 7, column 2, charpos = 85\n around = 'new_foo', whole content = new_foo();\n\n diff (result(<) vs expected_result(>)) = \n @@ -4,5 +4,5 @@\n {\n const s8 (*queue_priority_mapping)[2];\n s8 *noevent;\n - xxx();\n + new_foo();\n }\n")) + (dowhile.res Ok) (dropf.res Ok) (dropparam.res Ok) (edots.res Ok) + (edots_ver1.res Ok) (empty.res Ok) (end_commas.res Ok) (endif.res Ok) + (enum.res Ok) (exp.res Ok) (expnest.res Ok) (expopt.res Ok) (expopt2.res Ok) + (expopt3.res Ok) (expopt3_ver1.res Ok) (expopt3_ver2.res Ok) (fields.res Ok) + (fieldsmin.res Ok) (find_long.res Ok) (fix_flow_need.res Ok) + (fn_todo.res Ok) (fnptr.res Ok) (fnret.res Ok) (four.res Ok) (foura.res Ok) + (fp.res Ok) (fsh.res Ok) (fun.res Ok) (gilles-question.res Ok) + (gotobreak.res Ok) (hd.res Ok) (headers.res Ok) (hex.res Ok) (hil1.res Ok) + (if.res Ok) (ifbr.res Ok) (ifdef1.res Ok) (ifdef2.res Ok) + (ifdef3.res + (Pb + "PROBLEM\n exn = Lexer_cocci.Lexical(\"unrecognised symbol, in token rule: #\")\n")) + (ifdef4.res Ok) (ifdef5.res Ok) (ifdef6.res Ok) (ifdef6a.res Ok) + (ifdefmeta.res Ok) (ifdefmeta1.res Ok) (ifdefmeta2.res Ok) + (ifdefmeta3.res Ok) + (ifdefmeta4.res + (Pb + "PROBLEM\n exn = Unix.Unix_error(20, \"stat\", \"tests/ifdefmeta4.cocci\")\n")) + (ifend.res Ok) (ifzer.res Ok) (inc.res Ok) + (incdir.res + (Pb + "INCORRECT:diff token: x VS 12\nFile \"tests/incdir.c\", line 4, column 6, charpos = 46\n around = 'x', whole content = foo(x);\nFile \"tests/incdir.res\", line 4, column 6, charpos = 46\n around = '12', whole content = foo(12);\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,5 +1,5 @@\n #include \"sub/incdir2.c\"\n \n int main () {\n - foo(x);\n + foo(12);\n }\n")) + (incl.res Ok) (inclifdef.res Ok) (include.res Ok) + (incompatible_value.res Ok) (inherited.res Ok) (inherited_ver1.res Ok) + (inhpos.res Ok) (initializer.res Ok) (initializer_many_fields.res Ok) + (inline.res Ok) (isococci.res Ok) (isotest.res Ok) (isotest2.res Ok) + (iterator.res Ok) + (jloop1.res + (Pb + "PROBLEM\n exn = Failure(\"minus: parse error: \\n = File \\\"tests/jloop1.cocci\\\", line 10, column 3, charpos = 129\\n around = '...>', whole content = ...>\\n\")\n")) + (julia10.res Ok) (julia7.res Ok) (justremove.res Ok) (keep_comma.res Ok) + (km.res Ok) (kmalloc.res Ok) (kmc.res Ok) (ktype.res Ok) + (labels_metastatement.res Ok) (labels_metastatement_ver1.res Ok) + (line_before_last.res Ok) (local.res Ok) (localid.res Ok) (longconst.res Ok) + (longlong.res Ok) (longlongint.res Ok) (loop.res Ok) (lvalue.res Ok) + (macro.res Ok) (macro_int16.res Ok) (match_no_meta.res Ok) (max.res Ok) + (memory.res (Pb "PROBLEM\n exn = Out of memory\n")) + (metahex.res + (Pb + "INCORRECT:diff token: f VS }\nFile \"tests/metahex.c\", line 2, column 2, charpos = 15\n around = 'f', whole content = f(3);\nFile \"tests/metahex.res\", line 2, column 0, charpos = 13\n around = '}', whole content = }\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,4 +1,2 @@\n int main() {\n - f(3);\n - g(0x03);\n }\n")) + (metaruleelem.res Ok) (metastatement2.res Ok) (metastatement_for.res Ok) + (metastatement_if.res Ok) + (mini_null_ref.res + (Pb + "INCORRECT:diff token: if VS struct\nFile , line 6, column 8, charpos = 269\n around = 'if', whole content = if (!pdata) {\nFile \"tests/mini_null_ref.res\", line 6, column 8, charpos = 269\n around = 'struct', whole content = struct w90p910_keypad *keypad;\n\n diff (result(<) vs expected_result(>)) = \n @@ -3,6 +3,8 @@\n const struct w90p910_keypad_platform_data *pdata =\n pdev->dev.platform_data;\n const struct matrix_keymap_data * keymap_data;\n + struct w90p910_keypad *keypad;\n +\n if (!pdata) {\n dev_err(&pdev->dev, \"no platform data defined\\n\");\n return -EINVAL;\n")) + (minstruct.res Ok) (minusdots.res Ok) (minusdots_ver1.res Ok) + (multi_func1.res + (Pb + "PROBLEM\n exn = Failure(\"minus: parse error: \\n = File \\\"tests/multi_func1.cocci\\\", line 12, column 2, charpos = 102\\n around = 'fn2', whole content = fn2(...) {\\n\")\n")) + (multiplus.res Ok) (multitype.res Ok) (multitypedef.res Ok) + (multivars.res Ok) (nest.res Ok) (nestone.res Ok) (nestseq.res Ok) + (neststruct.res Ok) (nl.res Ok) (nocast.res Ok) (not.res Ok) (notest.res Ok) + (noty.res Ok) (null_type.res Ok) + (oddifdef.res + (Pb + "INCORRECT:diff token: #else\n VS x\nFile , line 10, column 0, charpos = 114\n around = '#else\n', whole content = #else\nFile \"tests/oddifdef.res\", line 10, column 2, charpos = 116\n around = 'x', whole content = x = 0;\n\n diff (result(<) vs expected_result(>)) = \n @@ -7,8 +7,9 @@\n a = 5;\n \n #ifdef FOO\n + x = 0;\n #else\n - \n + x = 0;\n #endif\n }\n \n @@ -21,8 +22,9 @@\n a = 3;\n \n #ifdef FOO\n + x = 0;\n #else\n - \n + x = 0;\n #endif\n }\n \n @@ -35,7 +37,8 @@\n #endif\n \n #ifdef FOO\n + x = 0;\n #else\n - \n + x = 0;\n #endif\n }\n")) + (of.res Ok) (oneline.res Ok) (opt.res Ok) (optional_qualifier.res Ok) + (optional_storage.res Ok) (orexp.res Ok) (overshoot.res Ok) (param.res Ok) + (param_end.res Ok) (param_ver1.res Ok) (parameters_dots.res Ok) + (partial.res Ok) + (pb_distribute_type.res + (Pb + "INCORRECT:PB parsing only in generated-file\n diff (result(<) vs expected_result(>)) = \n @@ -5,11 +5,11 @@\n \n \n int foo() {\n - int * *x;\n + int **x;\n return 0;\n }\n \n int foo() {\n - int[45] *x;\n + int (*x)[45];\n return 0;\n }\n")) + (pb_distribute_type2.res + (Pb + "INCORRECT:PB parsing only in generated-file\n diff (result(<) vs expected_result(>)) = \n @@ -1,5 +1,5 @@\n int foo() {\n - int* x;\n + int *x;\n return 0;\n }\n \n @@ -10,6 +10,6 @@\n }\n \n int foo() {\n - int x[45]*;\n + int (*x)[45];\n return 0;\n }\n")) + (pb_distribute_type3.res + (Pb "PROBLEM\n exn = Failure(\"line 7: index 53 53 already used\\n\")\n")) + (pb_distribute_type4.res Ok) (pb_params_iso.res Ok) + (pb_parsing_macro.res Ok) (pb_tag_symbols.res Ok) (pmac.res Ok) + (posiso.res Ok) (positionc.res Ok) (post.res Ok) (print_return.res Ok) + (proto.res Ok) (proto2.res Ok) (proto_ver1.res Ok) (proto_ver2.res Ok) + (protoassert.res Ok) (protox.res Ok) (rcu3.res Ok) (regexp.res Ok) + (regexp2.res Ok) (regexp3.res Ok) + (remstruct.res + (Pb + "INCORRECT:not same number of entities (func, decl, ...)\n diff (result(<) vs expected_result(>)) = \n @@ -1,10 +1,3 @@\n -\n - .ack = mpuio_ack_irq,\n - .mask = mpuio_mask_irq,\n - .unmask = mpuio_unmask_irq\n -\n - .b = 15,\n -\n int hello ( String input )\n {\n String input = input.lowercase();\n")) + (replace_typedef.res Ok) (reserved.res Ok) (retmacro.res Ok) (rets.res Ok) + (return.res Ok) (return_implicit.res Ok) (retval.res Ok) (same_expr.res Ok) + (scope_problem.res + (Pb + "INCORRECT:diff token: } VS a\nFile , line 5, column 2, charpos = 43\n around = '}', whole content = }\nFile \"tests/scope_problem.res\", line 7, column 4, charpos = 49\n around = 'a', whole content = a = 2;\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,7 +1,10 @@\n void main(int i) {\n \n + \n +\n if(1) {\n int a;\n + a = 2;\n }\n \n \n")) + (serio.res + (Pb + "INCORRECT:diff token: init_MUTEX VS mutex_init\nFile \"tests/serio.c\", line 7, column 1, charpos = 130\n around = 'init_MUTEX', whole content = \tinit_MUTEX(&serio->drv_sem);\nFile \"tests/serio.res\", line 7, column 1, charpos = 130\n around = 'mutex_init', whole content = \tmutex_init(&serio->new_lock);\n\n diff (result(<) vs expected_result(>)) = \n @@ -4,5 +4,5 @@\n \n static void serio_init_port(struct serio *serio)\n {\n -\tinit_MUTEX(&serio->drv_sem);\n +\tmutex_init(&serio->new_lock);\n }\n")) + (shared_brace.res Ok) (signed.res Ok) (sis.res Ok) (sizeof.res Ok) + (sizeof_julia.res Ok) (sizestar.res Ok) (skip.res Ok) (sp.res Ok) + (spaces.res Ok) (spl.res Ok) + (static.res (Pb "PROBLEM\n exn = Common.Impossible\n")) (stm1.res Ok) + (stm10.res Ok) (stm10_ver1.res Ok) (stm2.res Ok) (stm3.res Ok) (stm4.res Ok) + (stm5.res Ok) (stm6.res Ok) (stm7.res Ok) (stm8.res Ok) (stmt.res Ok) + (strangeorder.res Ok) (string.res Ok) (struct.res Ok) + (struct_metavar.res Ok) (struct_typedef.res Ok) (structfoo.res Ok) + (substruct.res Ok) (sw.res Ok) (switch.res Ok) (switchdecl.res Ok) + (td.res Ok) (test0.res Ok) (test1.res Ok) (test10.res Ok) + (test10_ver1.res Ok) (test11.res Ok) (test11_ver1.res Ok) (test12.res Ok) + (test2.res Ok) (test3.res Ok) (test4.res Ok) (test5.res Ok) + (test5_ver1.res Ok) (test6.res Ok) (test7.res Ok) (test8.res Ok) + (test9.res Ok) (test_s.res Ok) (test_unsigned_meta.res Ok) + (three_types.res Ok) (threea.res Ok) (top.res Ok) (topdec.res Ok) + (topdec_ver1.res Ok) (topdec_ver2.res Ok) (toplevel_macrostmt.res Ok) + (toplevel_struct.res Ok) (tup.res Ok) (twoproto.res Ok) (ty.res Ok) + (ty1.res Ok) (ty_tyexp.res Ok) (tydisj.res Ok) (tyex.res Ok) (type.res Ok) + (type1.res Ok) (type_annotated.res Ok) (type_ver1.res Ok) + (type_ver2.res + (Pb + "INCORRECT:PB parsing only in generated-file\n diff (result(<) vs expected_result(>)) = \n @@ -1,5 +1,5 @@\n int foo() {\n - int[10] *x;\n + int *x[10];\n return 0;\n }\n \n")) + (typedef.res Ok) + (typedef3.res + (Pb + "INCORRECT:diff token: link VS p_dev\nFile , line 7, column 29, charpos = 137\n around = 'link', whole content = \tunsigned int iobase = info->link.io.BasePort1;\nFile \"tests/typedef3.res\", line 7, column 29, charpos = 137\n around = 'p_dev', whole content = \tunsigned int iobase = info->p_dev->io.BasePort1;\n\n diff (result(<) vs expected_result(>)) = \n @@ -4,7 +4,7 @@\n \n static void should_work(foo *info)\n {\n -\tunsigned int iobase = info->link.io.BasePort1;\n +\tunsigned int iobase = info->p_dev->io.BasePort1;\n }\n \n static void does_work(struct bluecard_info_t *info)\n")) + (typedef_double.res Ok) + (typeof.res + (Pb + "INCORRECT:diff token: x VS sizeof\nFile , line 3, column 4, charpos = 26\n around = 'x', whole content = f(x);\nFile \"tests/typeof.res\", line 3, column 4, charpos = 26\n around = 'sizeof', whole content = f(sizeof(struct foo));\n\n diff (result(<) vs expected_result(>)) = \n @@ -1,4 +1,4 @@\n int main() {\n int x;\n - f(x);\n + f(sizeof(struct foo));\n }\n")) + (useless_cast.res Ok) (varargs.res Ok) (video1bis.res Ok) (void.res Ok) + (vpos.res Ok) (whitespace.res Ok) (wierd_argument.res Ok) + (wierdinit.res + (Pb + "seems incorrect, but only because of code that was not parsablediff token: dev_link_t VS struct\nFile \"tests/wierdinit.c\", line 4, column 1, charpos = 27\n around = 'dev_link_t', whole content = \tdev_link_t *link;\nFile \"tests/wierdinit.res\", line 4, column 1, charpos = 27\n around = 'struct', whole content = \tstruct pcmcia_device *link;\n")) + (ws2.res Ok) (xfield.res Ok) (y2.res Ok) (zero.res Ok)) \ No newline at end of file diff --git a/tests/initializer_many_fields.cocci b/tests/initializer_many_fields.cocci index c560d57..4f711cb 100644 --- a/tests/initializer_many_fields.cocci +++ b/tests/initializer_many_fields.cocci @@ -1,5 +1,5 @@ @@ @@ -struct foo x = { .b = 15, .c = 22, }; +*struct foo x = { .b = 15, .c = 22, }; diff --git a/tests/nameless.c b/tests/nameless.c new file mode 100644 index 0000000..8ad05ae --- /dev/null +++ b/tests/nameless.c @@ -0,0 +1,6 @@ +typedef union { +int foo; +} t_foo; +typedef struct { +int foo; +} t_foo; diff --git a/tests/nameless.cocci b/tests/nameless.cocci new file mode 100644 index 0000000..14df318 --- /dev/null +++ b/tests/nameless.cocci @@ -0,0 +1,5 @@ +@name_all_structs@ +@@ +struct ++ __COCCI__TMP__STRUCTNAME__ +{...} diff --git a/tests/nameless.res b/tests/nameless.res new file mode 100644 index 0000000..9322160 --- /dev/null +++ b/tests/nameless.res @@ -0,0 +1,6 @@ +typedef union { +int foo; +} t_foo; +typedef struct __COCCI__TMP__STRUCTNAME__ { +int foo; +} t_foo; diff --git a/tests/stm1.cocci b/tests/stm1.cocci index 307e513..c3b5c77 100644 --- a/tests/stm1.cocci +++ b/tests/stm1.cocci @@ -5,3 +5,6 @@ statement S; f(); S g(); + +@script:python@ +@@ diff --git a/tests/stm7.cocci b/tests/stm7.cocci index 20ae6bb..16aeb94 100644 --- a/tests/stm7.cocci +++ b/tests/stm7.cocci @@ -6,3 +6,7 @@ statement S; f(); S + + +@script:python@ +@@ diff --git a/tests/str_init.c b/tests/str_init.c new file mode 100644 index 0000000..b1d1739 --- /dev/null +++ b/tests/str_init.c @@ -0,0 +1,7 @@ +struct foo x = { + .aaa = 5, + .rrr = 1, + .xxx= 12, + .bbb = 2, + .ccc = 4, +}; diff --git a/tests/str_init.cocci b/tests/str_init.cocci new file mode 100644 index 0000000..69afb76 --- /dev/null +++ b/tests/str_init.cocci @@ -0,0 +1,8 @@ +@@ +@@ + +struct foo x = { +- ... + .xxx= 12, +- ... +}; diff --git a/tests/str_init.res b/tests/str_init.res new file mode 100644 index 0000000..4712249 --- /dev/null +++ b/tests/str_init.res @@ -0,0 +1,3 @@ +struct foo x = { + .xxx= 12, +}; diff --git a/tools/Makefile b/tools/Makefile index 054bbf7..f5fb408 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -1,4 +1,6 @@ -# Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen +# Copyright 2010, INRIA, University of Copenhagen +# Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix +# Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen # Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix # This file is part of Coccinelle. # diff --git a/tools/alloc_free.ml b/tools/alloc_free.ml index e169d03..865e0a1 100644 --- a/tools/alloc_free.ml +++ b/tools/alloc_free.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/tools/bridge.ml b/tools/bridge.ml index bd967eb..60c29de 100644 --- a/tools/bridge.ml +++ b/tools/bridge.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/tools/dir_stats.ml b/tools/dir_stats.ml index d6e4d96..af1d500 100644 --- a/tools/dir_stats.ml +++ b/tools/dir_stats.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/tools/extract_c_and_res.ml b/tools/extract_c_and_res.ml index 29438e9..9a4a493 100644 --- a/tools/extract_c_and_res.ml +++ b/tools/extract_c_and_res.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/tools/generate_dependencies.ml b/tools/generate_dependencies.ml index 5d5df96..5c31fad 100644 --- a/tools/generate_dependencies.ml +++ b/tools/generate_dependencies.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/tools/gitgrep.ml b/tools/gitgrep.ml index 2c8bfa2..a4f12b1 100644 --- a/tools/gitgrep.ml +++ b/tools/gitgrep.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/tools/gitsort.ml b/tools/gitsort.ml index 03540cf..e3aac33 100644 --- a/tools/gitsort.ml +++ b/tools/gitsort.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/tools/licensify.ml b/tools/licensify.ml index 2cdd797..d981671 100644 --- a/tools/licensify.ml +++ b/tools/licensify.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -43,7 +23,9 @@ let lines = -["Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen"; +["Copyright 2010, INRIA, University of Copenhagen"; +"Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix"; +"Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen"; "Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix"; "This file is part of Coccinelle."; ""; diff --git a/tools/process_isoprofile.ml b/tools/process_isoprofile.ml index cad0204..cfd7735 100644 --- a/tools/process_isoprofile.ml +++ b/tools/process_isoprofile.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * diff --git a/tools/split_patch.ml b/tools/split_patch.ml index 9b058c5..ed7eb02 100644 --- a/tools/split_patch.ml +++ b/tools/split_patch.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * @@ -131,9 +111,9 @@ let split_patch i = else let l = input_line i in cur := l :: !cur; - match Str.split spaces l with - "-"::_ -> read_hunk (msize - 1) psize - | "+"::_ -> read_hunk msize (psize - 1) + match String.get l 0 with + '-' -> read_hunk (msize - 1) psize + | '+' -> read_hunk msize (psize - 1) | _ -> read_hunk (msize - 1) (psize - 1) in try read_diff_or_atat() with End_of_file -> List.rev ((List.rev !cur)::!patches) diff --git a/tools/spp.ml b/tools/spp.ml index 8c13276..f5e2196 100644 --- a/tools/spp.ml +++ b/tools/spp.ml @@ -1,27 +1,7 @@ (* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen - * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix - * This file is part of Coccinelle. - * - * Coccinelle is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, according to version 2 of the License. - * - * Coccinelle is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Coccinelle. If not, see . - * - * The authors reserve the right to distribute this or future versions of - * Coccinelle under other licenses. - *) - - -(* - * Copyright 2005-2010, Ecole des Mines de Nantes, University of Copenhagen + * Copyright 2010, INRIA, University of Copenhagen + * Julia Lawall, Rene Rydhof Hansen, Gilles Muller, Nicolas Palix + * Copyright 2005-2009, Ecole des Mines de Nantes, University of Copenhagen * Yoann Padioleau, Julia Lawall, Rene Rydhof Hansen, Henrik Stuart, Gilles Muller, Nicolas Palix * This file is part of Coccinelle. * -- 2.20.1